一週演算法實踐day1:模型構建
阿新 • • 發佈:2018-12-18
一週演算法實踐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的處理也有困惑。