天天看點

LogisticRegressionCV 參數使用以及含義 筆記

第一次接觸LogisticRegressionCV ,記錄一下。

 Logistic回歸是分類算法,不能應用于回歸中(傳入模型的y值,不能是float類型,必須是int類型)

正則化選擇參數 :penalty   

                              ——>  L1 / L2    預設是L2的正則化,一般使用L2就可以了,但是如果還是過拟合,就可以用                                                                         L1,如果特征較多希望略去不重要特征,就有L1。

參數優化方式    :solver     

                             ——> 當penalty為l1的時候,參數隻能是:liblinear(坐标軸下降法),lbfgs和cg都是關于目标函數的二                                                          階泰勒展開,當penalty為l2的時候,參數可以是:lbfgs(拟牛頓法)、newton-cg(牛頓法變種),                                                          seg(minibatch) 、而liblinear通吃L1正則化和L2正則化     

                 次元<10000時,lbfgs法比較好,   次元>10000時, cg法比較好,顯示卡計算的時候,lbfgs和cg都比seg快

                    1.  liblinear:使用了坐标軸下降法來疊代優化損失函數。

          2.  lbfgs:拟牛頓法的一種,利用損失函數二階導數矩陣即海森矩陣來疊代優化損失函數。

          3. newton-cg:也是牛頓法家族的一種,利用損失函數二階導數矩陣即海森矩陣來疊代優化損失函數。

          4.  sag:即随機平均梯度下降,是梯度下降法的變種,和普通梯度下降法的差別是每次疊代僅僅用一部分的樣本來計                          算梯度,适合于樣本資料多的時候,SAG是一種線性收斂算法,這個速度遠比SGD快。關于SAG的了解.

 分類方式參數    :multi_class  

                       ——>ovr(預設)、multinomial;這兩種方式在二進制分類問題中,效果是一樣的,在多元分類問題中,                                                         效果不一樣

                        1. ovr  :one-vs-rest, 對于多元分類的問題,先将其看做二進制分類,分類完成後,再疊代對其中一類繼續進行二進制                                       分類

                         2.multinomial:  many-vs-many(MVM),即Softmax分類效果   

類型權重參數   :class_weight    

                       ——>權重一樣可以不輸入、可以選擇balanced讓類庫自己計算類型權重、或自己輸入                                                                              <class_weight={0:0.9, 1:0.1},這樣類型0的權重為90%,而類型1的權重為10%>,

                        1.選擇balanced,那麼類庫會根據訓練樣本量來計算權重。某種類型樣本量越多,則權重越低,樣本量越少,則                                權重越高。

                        2.

樣本權重參數: sample_weight

                        由于樣本不平衡,導緻樣本不是總體樣本的無偏估計,調用fit函數時,通過sample_weight來自己調節每個樣本權                          重

                       如果上面兩種方法都用到了,那麼樣本的真正權重是class_weight*sample_weight.

交叉驗證參數 :  cv

                      ——>  預設None,使用三折交叉驗證。指定fold數量,預設為3,也可以是yield訓練/測試資料的生成器。

 并行數   : n_jobs

                       ——> int:個數,-1:跟CPU核數一緻, 1:預設值。

疊代終止判據的誤差範圍  :tol