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'
。算法
'l1'
正則化的損失函數不是連續可導的,而'netton-cg', 'sag', 'lbfgs'
這三種算法須要損失函數的一階或二階連續可導。- 調參時若是主要是爲了解決過擬合,選擇
'l2'
正則化就夠了。若選擇'l2'
正則化仍是過擬合,可考慮'l1'
正則化。- 若模型特徵很是多,但願一些不重要的特徵係數歸零,從而讓模型係數化的話,可以使用
'l1'
正則化。
dual
:選擇目標函數爲原始形式仍是對偶形式。dom
將原始函數等價轉化爲一個新函數,該新函數稱爲對偶函數。對偶函數比原始函數更易於優化。函數
tol
:優化算法中止的條件。當迭代先後的函數差值小於等於tol時就中止。C
:正則化係數。其越小,正則化越強。fit_intercept
:選擇邏輯迴歸模型中是否會有常數項\(b\)。intercept_scaling
:class_weight
:用於標示分類模型中各類類型的權重,{class_label: weight} or 'balanced'
。優化
'balanced'
:類庫根據訓練樣本量來計算權重。某種類型的樣本量越多,則權重越低。- 若誤分類代價很高,好比對合法用戶和非法用戶進行分類,可適當提升非法用戶的權重。
- 樣本高度失衡的。如合法用戶9995條,非法用戶5條,可選擇
'balanced'
,讓類庫自動提升非法用戶樣本的權重。
random_state
:隨機數種子。solver
:邏輯迴歸損失函數的優化方法。spa
'liblinear'
:使用座標軸降低法來迭代優化損失函數。'lbfgs'
:擬牛頓法的一種。利用損失函數二階導數矩陣即海森矩陣來迭代優化損失函數。'newton-cg'
:牛頓法的一種。同上。'sag'
:隨機平均梯度降低。每次迭代僅僅用一部分的樣原本計算梯度,適合於樣本數據多的時候。- 多元邏輯迴歸有OvR(one-vs-rest)和MvM(many-vs-many)兩種,而MvM通常比OvR分類相對準確一些。可是,
'liblinear'
只支持OvR。
max_iter
:優化算法的迭代次數。multi_class
:'ovr' or 'multinomial'
。'multinomial'
即爲MvM。rest
- 如果二元邏輯迴歸,兩者區別不大。
- 對於MvM,若模型有T類,每次在全部的T類樣本里面選擇兩類樣本出來,把全部輸出爲該兩類的樣本放在一塊兒,進行二元迴歸,獲得模型參數,一共須要T(T-1)/2次分類。
verbose
:控制是否print訓練過程。warm_start
:n_jobs
:用cpu的幾個核來跑程序。code
LogisticRegression
,LogisticRegressionCV
使用交叉驗證來選擇正則化係數C。