1. 程式人生 > >一週演算法實踐day1:模型構建

一週演算法實踐day1:模型構建

一週演算法實踐day1:模型構建

資料說明

這份資料集是金融資料(非原始資料,已經處理過了),我們要做的是預測貸款使用者是否會逾期。表格中 “status” 是結果標籤:0表示未逾期,1表示逾期。

1任務

  • 將金融資料集三七分,隨機種子2018,呼叫sklearn的包,簡單構建邏輯迴歸、SVM和決策樹3個模型並對每一個模型進行評分,評分方式任意,例如準確度和auc值。(在任務1中不需要考慮資料預處理和模型調參)

2基本要點

  • csv是常用的資料儲存格式,pandas可以方便的讀寫csv檔案
data_all = pd.read_csv('data_all.csv')
  • 使用sklearn庫中的train_test_split進行資料三七分,和設定隨機種子
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=2018)

3完整程式碼及註釋

#匯入包
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.
linear_model import LogisticRegression from sklearn.svm import LinearSVC from sklearn import tree #載入資料 data_all = pd.read_csv('data_all.csv') print("資料行列數",data_all.shape) #資料分析 print(data_all.head())#表頭 print(data_all.describe())#基本統計量 #檢視每列是否有缺失值 print(data_all.isnull().sum()) #劃分資料集 #特徵是除去“status”列的所有值 feature =
[x for x in data_all.columns if x not in ['status']] X = data_all[feature] #'status'列是標籤 y = data_all['status'] X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=2018) #構建模型 #1.邏輯迴歸 lr = LogisticRegression(random_state=2018) lr.fit(X_train,y_train) #2.SVM svc = LinearSVC(random_state=2018) svc.fit(X_train,y_train) #3.tree dt = tree.DecisionTreeClassifier(random_state=2018) dt.fit(X_train,y_train) #評價三種模型在測試集的表現 lr_acc = lr.score(X_test,y_test) svc_acc = svc.score(X_test,y_test) dt_acc = dt.score(X_test,y_test) print("LogisticRegressiom Acc: %f, SVM Acc: %f, tree Acc: %f"%(lr_acc,svc_acc,dt_acc))

4執行結果展示

LogisticRegressiom Acc: 0.748423, SVM Acc: 0.748423, tree Acc: 0.684653

5遇到的問題

  • 模型中引數並沒有理解
  • 在劃分資料集時,X,y的處理也有困惑。