sklearn.linear_model.LogisticRegression參數說明



sklearn.linear_model.LogisticRegression

LogisticRegression(penalty='l2', dual=False, 
    tol=0.0001, C=1.0, fit_intercept=True, 
    intercept_scaling=1, class_weight=None, 
    random_state=None, solver='warn', max_iter=100,
    multi_class='warn', verbose=0, 
    warm_start=False, n_jobs=None)
  • penalty:懲罰項,可為'l1' or 'l2''netton-cg', 'sag', 'lbfgs'只支持'l2'
  1. 'l1'正則化的損失函數不是連續可導的,而'netton-cg', 'sag', 'lbfgs'這三種算法需要損失函數的一階或二階連續可導。
  2. 調參時如果主要是為了解決過擬合,選擇'l2'正則化就夠了。若選擇'l2'正則化還是過擬合,可考慮'l1'正則化。
  3. 若模型特征非常多,希望一些不重要的特征系數歸零,從而讓模型系數化的話,可使用'l1'正則化。
  • dual:選擇目標函數為原始形式還是對偶形式。

將原始函數等價轉化為一個新函數,該新函數稱為對偶函數。對偶函數比原始函數更易於優化。

  • tol:優化算法停止的條件。當迭代前后的函數差值小於等於tol時就停止。
  • C:正則化系數。其越小,正則化越強。
  • fit_intercept:選擇邏輯回歸模型中是否會有常數項\(b\)
  • intercept_scaling
  • class_weight:用於標示分類模型中各種類型的權重,{class_label: weight} or 'balanced'
  1. 'balanced':類庫根據訓練樣本量來計算權重。某種類型的樣本量越多,則權重越低。
  2. 若誤分類代價很高,比如對合法用戶和非法用戶進行分類,可適當提高非法用戶的權重。
  3. 樣本高度失衡的。如合法用戶9995條,非法用戶5條,可選擇'balanced',讓類庫自動提高非法用戶樣本的權重。
  • random_state:隨機數種子。
  • solver:邏輯回歸損失函數的優化方法。
  1. 'liblinear':使用坐標軸下降法來迭代優化損失函數。
  2. 'lbfgs':擬牛頓法的一種。利用損失函數二階導數矩陣即海森矩陣來迭代優化損失函數。
  3. 'newton-cg':牛頓法的一種。同上。
  4. 'sag':隨機平均梯度下降。每次迭代僅僅用一部分的樣本來計算梯度,適合於樣本數據多的時候。
  5. 多元邏輯回歸有OvR(one-vs-rest)和MvM(many-vs-many)兩種,而MvM一般比OvR分類相對准確一些。但是,'liblinear'只支持OvR。
  • max_iter:優化算法的迭代次數。
  • multi_class'ovr' or 'multinomial''multinomial'即為MvM。
  1. 若是二元邏輯回歸,二者區別不大。
  2. 對於MvM,若模型有T類,每次在所有的T類樣本里面選擇兩類樣本出來,把所有輸出為該兩類的樣本放在一起,進行二元回歸,得到模型參數,一共需要T(T-1)/2次分類。
  • verbose:控制是否print訓練過程。
  • warm_start
  • n_jobs:用cpu的幾個核來跑程序。

sklearn.linear_model.LogisticRegressionCV

  • 相比於LogisticRegressionLogisticRegressionCV使用交叉驗證來選擇正則化系數C。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM