1. 程式人生 > 實用技巧 >資料分析模型之Logistics迴歸

資料分析模型之Logistics迴歸

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)