【zt】LogisticRegression 調(diào)參 & GridSearchCV

資料目錄:

1. LogisticRegression()參數(shù)解析

2.?sklearn-GridSearchCV,CV調(diào)節(jié)超參使用方法

=====================================================================

C: float, optional (default=1.0)

Inverse of regularization strength; must be a positive float. Like in support vector machines, smaller values specify stronger regularization.

C為正則化系數(shù)λ的倒數(shù),必須為正數(shù),默認(rèn)為1沈堡。和SVM中的C一樣价捧,值越小酷宵,代表正則化越強(qiáng)钩乍。

class_weight: {dict, ‘a(chǎn)uto’}, optional考慮類不平衡溺拱,類似于代價(jià)敏感

Over-/undersamples the samples of each class according to the given weights. If not given, all classes are supposed to have weight one. The ‘a(chǎn)uto’ mode selects weights inversely proportional to class frequencies in the training set.

penalty :正則化參數(shù):’l1’,’l2’.默認(rèn)是’l2’卤档。

在調(diào)參時(shí)如果我們主要的目的只是為了解決過擬合蝙泼,一般penalty選擇L2正則化就夠了。但是如果選擇L2正則化發(fā)現(xiàn)還是過擬合劝枣,即預(yù)測(cè)效果差的時(shí)候汤踏,就可以考慮L1正則化织鲸。? 另外,如果模型的特征非常多溪胶,我們希望一些不重要的特征系數(shù)歸零搂擦,從而讓模型系數(shù)稀疏化的話,也可以使用L1正則化哗脖。

penalty參數(shù)的選擇會(huì)影響我們損失函數(shù)優(yōu)化算法的選擇瀑踢。即參數(shù)solver的選擇。

solver:邏輯回歸損失函數(shù)的優(yōu)化方法才避,有四種算法供選擇

‘newton-cg’:坐標(biāo)軸下降法來迭代優(yōu)化損失函數(shù)?

‘lbfgs’:, ‘liblinear’:牛頓法變種?

‘sag’:隨機(jī)梯度下降

其中‘newton-cg’, ‘lbfgs’, ‘sag’只適用于L2懲罰項(xiàng)的優(yōu)化橱夭,liblinear兩種都適用。因?yàn)長(zhǎng)1正則化的損失函數(shù)不是連續(xù)可導(dǎo)的桑逝,而{‘newton-cg’, ‘lbfgs’,‘sag’}這三種優(yōu)化算法時(shí)都需要損失函數(shù)的一階或者二階連續(xù)導(dǎo)數(shù)棘劣。而‘liblinear’并沒有這個(gè)依賴。

當(dāng)樣本數(shù)目比較大時(shí)楞遏,使用sag效果較好茬暇,因?yàn)樗皇褂靡徊糠謽颖具M(jìn)行訓(xùn)練。

a) liblinear:使用了開源的liblinear庫(kù)實(shí)現(xiàn)寡喝,內(nèi)部使用了坐標(biāo)軸下降法來迭代優(yōu)化損失函數(shù)糙俗。

b) lbfgs:擬牛頓法的一種,利用損失函數(shù)二階導(dǎo)數(shù)矩陣即海森矩陣來迭代優(yōu)化損失函數(shù)拘荡。

c) newton-cg:也是牛頓法家族的一種臼节,利用損失函數(shù)二階導(dǎo)數(shù)矩陣即海森矩陣來迭代優(yōu)化損失函數(shù)。

d) sag:即隨機(jī)平均梯度下降珊皿,是梯度下降法的變種网缝,和普通梯度下降法的區(qū)別是每次迭代僅僅用一部分的樣本來計(jì)算梯度,適合于樣本數(shù)據(jù)多的時(shí)候蟋定。

小結(jié):

從上面的描述可以看出粉臊,newton-cg、lbfgs和sag這三種優(yōu)化算法時(shí)都需要損失函數(shù)的一階或者二階連續(xù)導(dǎo)數(shù)驶兜,因此不能用于沒有連續(xù)導(dǎo)數(shù)的L1正則化扼仲,只能用于L2正則化。而liblinear通吃L1正則化和L2正則化抄淑。

同時(shí)屠凶,sag每次僅僅使用了部分樣本進(jìn)行梯度迭代,所以當(dāng)樣本量少的時(shí)候不要選擇它肆资,而如果樣本量非常大矗愧,比如大于10萬(wàn),sag是第一選擇郑原。但是sag不能用于L1正則化唉韭,所以當(dāng)你有大量的樣本夜涕,又需要L1正則化的話就要自己做取舍了。要么通過對(duì)樣本采樣來降低樣本量属愤,要么回到L2正則化女器。

但是liblinear也有自己的弱點(diǎn)!我們知道住诸,邏輯回歸有二元邏輯回歸和多元邏輯回歸驾胆。對(duì)于多元邏輯回歸常見的有one-vs-rest(OvR)和many-vs-many(MvM)兩種。而MvM一般比OvR分類相對(duì)準(zhǔn)確一些只壳。而liblinear只支持OvR俏拱,不支持MvM,這樣如果我們需要相對(duì)精確的多元邏輯回歸時(shí)吼句,就不能選擇liblinear了。也意味著如果我們需要相對(duì)精確的多元邏輯回歸不能使用L1正則化了事格。


multi_class?

{‘ovr’, ‘multinomial’}, default: ‘ovr’

OvR的思想很簡(jiǎn)單惕艳,無(wú)論你是多少元邏輯回歸,我們都可以看做二元邏輯回歸驹愚。multinomial相對(duì)復(fù)雜远搪。

官網(wǎng)有個(gè)對(duì)比兩種分類方式的例子:鏈接地址

ovr即one-vs-rest(OvR)逢捺,multinomial是many-vs-many(MvM)谁鳍。如果是二元邏輯回歸,ovr和multinomial并沒有任何區(qū)別劫瞳,區(qū)別主要在多元邏輯回歸上倘潜。

ovr不論是幾元回歸,都當(dāng)成二元回歸來處理志于。mvm從從多個(gè)類中每次選兩個(gè)類進(jìn)行二元回歸涮因。如果總共有T類,需要T(T-1)/2次分類伺绽。

OvR相對(duì)簡(jiǎn)單养泡,但分類效果相對(duì)略差(大多數(shù)樣本分布情況)。而MvM分類相對(duì)精確奈应,但是分類速度沒有OvR快澜掩。

如果選擇了ovr,則4種損失函數(shù)的優(yōu)化方法liblinear杖挣,newton-cg,lbfgs和sag都可以選擇肩榕。但是如果選擇了multinomial,則只能選擇newton-cg, lbfgs和sag了。

class_weight:類型權(quán)重參數(shù)程梦。

用于標(biāo)示分類模型中各種類型的權(quán)重点把。默認(rèn)不輸入橘荠,即所有的分類的權(quán)重一樣。選擇‘balanced’自動(dòng)根據(jù)y值計(jì)算類型權(quán)重郎逃。自己設(shè)置權(quán)重哥童,格式:{class_label: weight}。例如0,1分類的er'yuan二元模型褒翰,設(shè)置class_weight={0:0.9, 1:0.1}贮懈,這樣類型0的權(quán)重為90%,而類型1的權(quán)重為10%优训。

n_jobs=1?: 并行數(shù)

int:個(gè)數(shù)朵你;-1:跟CPU核數(shù)一致;1:默認(rèn)值揣非。

其他參數(shù):

dual=False: 對(duì)偶或者原始方法抡医。Dual只適用于正則化相為l2的‘liblinear’的情況,通常樣本數(shù)大于特征數(shù)的情況下早敬,默認(rèn)為False忌傻。

fit_intercept=True: 是否存在截距,默認(rèn)存在搞监。

intercept_scaling=1: 僅在正則化項(xiàng)為‘liblinear’水孩,且fit_intercept設(shè)置為True時(shí)有用。

max_iter=100: 算法收斂的最大迭代次數(shù)琐驴。

tol=0.0001: 迭代終止判據(jù)的誤差范圍俘种。

verbose=0: 日志冗長(zhǎng)度int:冗長(zhǎng)度;0:不輸出訓(xùn)練過程绝淡;1:偶爾輸出宙刘; >1:對(duì)每個(gè)子模型都輸出

warm_start=False: 是否熱啟動(dòng),如果是够委,則下一次訓(xùn)練是以追加樹的形式進(jìn)行(重新使用上一次的調(diào)用作為初始化)荐类。布爾型,默認(rèn)False茁帽。

LogisticRegression類的常用方法

fit(X, y, sample_weight=None)

擬合模型玉罐,用來訓(xùn)練LR分類器,其中X是訓(xùn)練樣本潘拨,y是對(duì)應(yīng)的標(biāo)記向量

返回對(duì)象吊输,self。

fit_transform(X, y=None, **fit_params)

fit與transform的結(jié)合铁追,先f(wàn)it后transform季蚂。返回X_new:numpy矩陣。

predict(X)

用來預(yù)測(cè)樣本,也就是分類扭屁,X是測(cè)試集算谈。返回array。

predict_proba(X)

輸出分類概率料滥。返回每種類別的概率然眼,按照分類類別順序給出。如果是多分類問題葵腹,multi_class="multinomial"高每,則會(huì)給出樣本對(duì)于每種類別的概率。

返回array-like践宴。

score(X, y, sample_weight=None)

返回給定測(cè)試集合的平均準(zhǔn)確率(mean accuracy)鲸匿,浮點(diǎn)型數(shù)值。

對(duì)于多個(gè)分類返回阻肩,則返回每個(gè)類別的準(zhǔn)確率組成的哈希矩陣带欢。

注意:在訓(xùn)練模型之前,可以優(yōu)化一下模型參數(shù)烤惊,用GridSearchCV()函數(shù)【即找到最優(yōu)的超參】——詳見GridSearchCV()相關(guān)資料


上述內(nèi)容匯總自不同網(wǎng)站洪囤,但多數(shù)內(nèi)容來自于這個(gè)鏈接:http://www.reibang.com/p/e51e92a01a9c

-----------------------------------------------------------------------------------------------

【其他】

sklearn-GridSearchCV,CV調(diào)節(jié)超參使用方法:https://blog.csdn.net/u012969412/article/details/72973055

GridSearchCV 簡(jiǎn)介:

GridSearchCV,它存在的意義就是自動(dòng)調(diào)參撕氧,只要把參數(shù)輸進(jìn)去,就能給出最優(yōu)化的結(jié)果和參數(shù)喇完。但是這個(gè)方法適合于小數(shù)據(jù)集伦泥,一旦數(shù)據(jù)的量級(jí)上去了,很難得出結(jié)果锦溪。這個(gè)時(shí)候就是需要?jiǎng)幽X筋了不脯。數(shù)據(jù)量比較大的時(shí)候可以使用一個(gè)快速調(diào)優(yōu)的方法——坐標(biāo)下降。它其實(shí)是一種貪心算法:拿當(dāng)前對(duì)模型影響最大的參數(shù)調(diào)優(yōu)刻诊,直到最優(yōu)化防楷;再拿下一個(gè)影響最大的參數(shù)調(diào)優(yōu),如此下去则涯,直到所有的參數(shù)調(diào)整完畢复局。這個(gè)方法的缺點(diǎn)就是可能會(huì)調(diào)到局部最優(yōu)而不是全局最優(yōu),但是省時(shí)間省力粟判,巨大的優(yōu)勢(shì)面前亿昏,還是試一試吧,后續(xù)可以再拿bagging再優(yōu)化档礁〗枪常回到sklearn里面的GridSearchCV,GridSearchCV用于系統(tǒng)地遍歷多種參數(shù)組合,通過交叉驗(yàn)證確定最佳效果參數(shù)递礼。

GridSearchCV官方網(wǎng)址:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html

常用參數(shù)解讀:

estimator:所使用的分類器惨险,如estimator=RandomForestClassifier(min_samples_split=100,min_samples_leaf=20,max_depth=8,max_features='sqrt',random_state=10), 并且傳入除需要確定最佳的參數(shù)之外的其他參數(shù)。每一個(gè)分類器都需要一個(gè)scoring參數(shù)脊髓,或者score方法辫愉。

param_grid:值為字典或者列表,即需要最優(yōu)化的參數(shù)的取值供炼,param_grid =param_test1一屋,param_test1 = {'n_estimators':range(10,71,10)}。

scoring :準(zhǔn)確度評(píng)價(jià)標(biāo)準(zhǔn)袋哼,默認(rèn)None,這時(shí)需要使用score函數(shù)冀墨;或者如scoring='roc_auc',根據(jù)所選模型不同涛贯,評(píng)價(jià)準(zhǔn)則不同诽嘉。字符串(函數(shù)名),或是可調(diào)用對(duì)象弟翘,需要其函數(shù)簽名形如:scorer(estimator, X, y)虫腋;如果是None,則使用estimator的誤差估計(jì)函數(shù)稀余。scoring參數(shù)選擇如下:

參考地址:http://scikit-learn.org/stable/modules/model_evaluation.html

cv?:交叉驗(yàn)證參數(shù)悦冀,默認(rèn)None,使用三折交叉驗(yàn)證睛琳。指定fold數(shù)量盒蟆,默認(rèn)為3,也可以是yield訓(xùn)練/測(cè)試數(shù)據(jù)的生成器师骗。

refit?:默認(rèn)為True,程序?qū)?huì)以交叉驗(yàn)證訓(xùn)練集得到的最佳參數(shù)历等,重新對(duì)所有可用的訓(xùn)練集與開發(fā)集進(jìn)行,作為最終用于性能評(píng)估的最佳模型參數(shù)辟癌。即在搜索參數(shù)結(jié)束后寒屯,用最佳參數(shù)結(jié)果再次fit一遍全部數(shù)據(jù)集。

iid:默認(rèn)True,為True時(shí)黍少,默認(rèn)為各個(gè)樣本fold概率分布一致寡夹,誤差估計(jì)為所有樣本之和,而非各個(gè)fold的平均仍侥。

verbose:日志冗長(zhǎng)度要出,int:冗長(zhǎng)度,0:不輸出訓(xùn)練過程农渊,1:偶爾輸出患蹂,>1:對(duì)每個(gè)子模型都輸出或颊。

n_jobs:?并行數(shù),int:個(gè)數(shù),-1:跟CPU核數(shù)一致, 1:默認(rèn)值传于。

pre_dispatch:指定總共分發(fā)的并行任務(wù)數(shù)囱挑。當(dāng)n_jobs大于1時(shí),數(shù)據(jù)將在每個(gè)運(yùn)行點(diǎn)進(jìn)行復(fù)制沼溜,這可能導(dǎo)致OOM平挑,而設(shè)置pre_dispatch參數(shù),則可以預(yù)先劃分總共的job數(shù)量系草,使數(shù)據(jù)最多被復(fù)制pre_dispatch次

常用方法:

grid.fit():運(yùn)行網(wǎng)格搜索

grid_scores_:給出不同參數(shù)情況下的評(píng)價(jià)結(jié)果

best_params_:描述了已取得最佳結(jié)果的參數(shù)的組合

best_score_:成員提供優(yōu)化過程期間觀察到的最好的評(píng)分

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末通熄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子找都,更是在濱河造成了極大的恐慌唇辨,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件能耻,死亡現(xiàn)場(chǎng)離奇詭異赏枚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)晓猛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門饿幅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人戒职,你說我怎么就攤上這事栗恩。” “怎么了洪燥?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵摄凡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蚓曼,道長(zhǎng),這世上最難降的妖魔是什么钦扭? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任纫版,我火速辦了婚禮,結(jié)果婚禮上客情,老公的妹妹穿的比我還像新娘其弊。我一直安慰自己,他們只是感情好膀斋,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布梭伐。 她就那樣靜靜地躺著,像睡著了一般仰担。 火紅的嫁衣襯著肌膚如雪糊识。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音赂苗,去河邊找鬼愉耙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拌滋,可吹牛的內(nèi)容都是我干的朴沿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼败砂,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼赌渣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起昌犹,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤坚芜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后祭隔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體货岭,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年疾渴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了千贯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡搞坝,死狀恐怖搔谴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情桩撮,我是刑警寧澤敦第,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站店量,受9級(jí)特大地震影響芜果,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜融师,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一右钾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旱爆,春花似錦舀射、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至房待,卻和暖如春邢羔,著一層夾襖步出監(jiān)牢的瞬間驼抹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工张抄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留砂蔽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓署惯,卻偏偏與公主長(zhǎng)得像左驾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子极谊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容