DataWhale一週算法實踐1---模型構建(邏輯迴歸 svm 決策樹)

背景

背景:
報名參加一週帶做算法實踐的小項目

數據:
數據是金融數據, 我們要做的是預測貸款用戶是否會逾期。
表格中, status是標籤: 0表示未逾期, 1表示逾期。

實驗

  • 讀取數據

import pandas as pd
# A.讀取數據
data_all = pd.read_csv('./data_all.csv', encoding='gbk')
data_all.head()

注:數據預處理已經處理好 每個column都是一個feature

  • 劃分數據集

from sklearn.model_selection import train_test_split
features = [x for x in data_all.columns if x not in ['status']] # 特徵
X = data_all[features] # 特徵向量
y = data_all['status'] # labels
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,random_state=2018)
X_train.head()

注如下:

# train_test_split(*array,test_size=0.25,train_size=None,random_state=None,shuffle=True,stratify=None)
# *array:切分數據源(list/np.array/pd.DataFrame/scipy_sparse matrices) 
# test_size和train_size是互補和爲1的一對值 
# shuffle:對數據切分前是否洗牌 
# stratify:是否分層抽樣切分數據( If shuffle=False then stratify must be None.)
  • 構建模型
    • 邏輯迴歸
from sklearn.linear_model import LogisticRegression
log_model = LogisticRegression(random_state =2018) # 邏輯迴歸模型
log_model.fit(X_train, y_train)
log_model.score(X_test, y_test)
  • svm
# C.構建模型--SVM 支持向量機 & 評分
from sklearn.svm import SVC
svc=SVC(random_state =2018)
svc.fit(X_train, y_train)
print(svc.score(X_test, y_test))
  • 決策樹
# C.構建模型--決策樹 & 評分
from sklearn.tree import DecisionTreeClassifier
tre = DecisionTreeClassifier(random_state =2018)
tre.fit(X_train,y_train)
tr_score = tre.score(X_test,y_test)
tr_score

思考:

  1. 爲什麼是 random_state=2018???
    A:沒有設置 random_state=2018,每次取得的結果就不一樣,它的隨機數種子與當前系統時間有關。

  1. 使用的工具是jupyter notebook ,在運行某一個cell的時候,出現一直run 但是不出結果的情況
    A:懷疑數據傾斜 但是當Restart & Run All 的時候就好了,應該是某一個cell的代碼寫的有問題2⃣️不是數據傾斜

  1. 使用SVM和線性迴歸測出得準確率一模一樣 why?
    暫不清楚

4.scikit-learn algorithm cheat-sheetscikit-learn algrithm cheatsheet

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章