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:選擇邏輯迴歸模型中是否會有常數項bb。
  • 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的幾個核來跑程序。

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