資料分析模型之Logistics迴歸
阿新 • • 發佈:2020-10-25
Logistic迴歸
研究的是分類問題(是或否),跟之前的線性迴歸、嶺迴歸、Lasso迴歸不同(連續型或有規律的資料)也稱之為廣義線性迴歸公式層面上就是由多元線性迴歸公式做Logit變換得到。
混淆矩陣
ROC曲線
KS曲線
Logistics函式說明
LogisticRegression(tol=0.0001, fit_intercept=True,class_weight=None, max_iter=100)
tol:⽤於指定模型跌倒收斂的閾值
fit_intercept:bool型別引數,是否擬合模型的截距項,預設為True
class_weight:⽤於指定因變數類別的權重,如果為字典,則通過字典的形式{class_label:weight}傳
遞每個類別的權重;如果為字串'balanced',則每個分類的權重與實際樣本中的⽐例成反⽐,當各分
類存在嚴重不平衡時,設定為'balanced'會⽐較好;如果為None,則表示每個分類的權重相等
max_iter:指定模型求解過程中的最⼤迭代次數,預設為100
Logistics程式碼
# 導⼊第三⽅模組 Import pandas as pd Import numpy as np from sklearn import linear_model # 讀取資料 sports = pd.read_csv(r'RunorWalk.csv') # 利⽤訓練集建模 sklearn_logistic=linear_model.LogisticRegression() sklearn_logistic.fit(X_train,y_train) # 返回模型的各個引數 print(sklearn_logistic.intercept_,sklearn_logistic.coef_) # 導⼊第三⽅模組 from sklearn import metrics # 混淆矩陣 cm = metrics.confusion_matrix(y_test,sklearn_predict,labels=[0,1]) # y得分為模型預測正例的概率 y_score = sklearn_logistic.predict_proba(X_test)[:,1] # 計算不同閾值下,fpr和tpr的組合值,其中fpr表示1-Specificity,tpr表示Sensitivity fpr,tpr,threshold = metrics.roc_curve(y_test, y_score) # 繪製⾯積圖 plt.stackplot(fpr, tpr, color='steelblue', alpha = 0.5, edgecolor = 'black') # 新增ROC曲線的輪廓 plt.plot(fpr, tpr, color='black', lw = 1) # 新增對⻆線 plt.plot([0,1],[0,1], color = 'red', linestyle = '--') # 顯示圖形 plt.show() # 調⽤⾃定義函式,繪製K-S曲線 plot_ks(y_test = y_test, y_score = y_score, positive_flag = 1)