【機器學習概述】第二篇、模型評估和驗證

一愉耙、模型評估

混淆矩陣Confusion Matrix

在機器學習領域贮尉,混淆矩陣(confusion matrix),又稱為可能性表格或是錯誤矩陣劲阎。它是一種特定的矩陣用來呈現(xiàn)算法性能的可視化效果绘盟,通常是監(jiān)督學習(非監(jiān)督學習,通常用匹配矩陣:matching matrix)。其每一列代表預測值龄毡,每一行代表的是實際的類別吠卷。這個名字來源于它可以非常容易的表明多個類別是否有混淆(也就是一個class被預測成另一個class)。
Example
假設有一個用來對貓(cats)沦零、狗(dogs)祭隔、兔子(rabbits)進行分類的系統(tǒng),混淆矩陣就是為了進一步分析性能而對該算法測試結(jié)果做出的總結(jié)路操。假設總共有 27只動物:7只貓疾渴, 8條狗, 12只兔子屯仗。結(jié)果的混淆矩陣如下圖:

混淆矩陣.png

這個混淆矩陣中搞坝,實際有 7只貓,但是系統(tǒng)將其中2只預測成了狗魁袜;對于 8條狗桩撮,其中有 2條被預測成了兔子,3條被預測成了貓峰弹。從混淆矩陣中我們可以看出系統(tǒng)對于區(qū)分貓和狗存在一些問題店量,但是區(qū)分兔子和其他動物的效果還是不錯的。所有正確的預測結(jié)果都在對角線上鞠呈,所以從混淆矩陣中可以很方便直觀的看出哪里有錯誤融师,因為他們呈現(xiàn)在對角線外面。
Table of confusion
在預測分析中蚁吝,混淆表格(有時候也稱為混淆矩陣)旱爆,是由false positives,false negatives灭将,true positives和true negatives組成的兩行兩列的表格疼鸟。它允許我們做出更多的分析,而不僅僅是局限在正確率(準確率庙曙,下面會講空镜,ACC)。

假定一個實驗有 P個positive實例捌朴,在某些條件下有 N 個negative實例吴攒。那么上面這四個輸出可以用下面的偶然性表格(或混淆矩陣)來表示:


混淆矩陣2.png

這個表中呈現(xiàn)了所有衡量模式性能的方法,PPV砂蔽,F(xiàn)DR洼怔,F(xiàn)OR,NPV左驾,TPR镣隶,F(xiàn)PR极谊,F(xiàn)NR,TNR以及Accuracy安岂,都是用我們上面的false positives轻猖,false negatives,true positives和true negatives來進行計算的域那。
而其中咙边,F(xiàn)alse Positive被稱為1類錯誤,而False Negative被稱為2類錯誤次员。
除去對角線分類正確的點不說败许,F(xiàn)alse Positive是說本身這個事物是正確的,但是卻判斷為錯誤的淑蔚,F(xiàn)alse Negative是說本身這個事物是錯誤的市殷,但卻判斷為正確的。我們針對不同的場景束倍,重視False Negative或者False Positive的程度不同被丧,比如我們現(xiàn)在已診斷病人的場景為例


混淆矩陣3.png

False Negative是明明生病了,卻診斷為健康的绪妹,F(xiàn)alse Positive是明明是健康的,卻判斷為生病的柿究,哪一個比重多影響嚴重呢邮旷?很明顯,F(xiàn)alse Negative比重大影響更重蝇摸。所以就出現(xiàn)了很多除了acc以外衡量模型的方法婶肩。這中間比較最重要的就是精確率precision和召回率recall。

下一個最先引出的內(nèi)容就是Accuracy

準確率accuracy

可以從上面那個圖很清楚的看到貌夕,
ACC = (所有True Positive + 所有 True Negative)/ 所有點
accuracy = (TP + TN) / (TP + FP + TN + FN)
就是準確率嫌术。換句話說欠痴,就是所有被分類正確的點在所有點中的概率。
肯定很好奇,已經(jīng)有了ACC為什么還有那么多其他的判斷標準弛矛,其實,ACC有很多場景是不適合使用的权谁。
準確率對于分類器的性能分析來說敦跌,并不是一個很好地衡量指標,因為如果數(shù)據(jù)集不平衡(每一類的數(shù)據(jù)樣本數(shù)量相差太大)慧库,很可能會出現(xiàn)誤導性的結(jié)果跷跪。例如,如果在一個數(shù)據(jù)集中有95只貓齐板,但是只有5條狗吵瞻,那么某些分類器很可能偏向于將所有的樣本預測成貓葛菇。整體準確率為95%,但是實際上該分類器對貓的識別率是100%橡羞,而對狗的識別率是0%眯停。那么這個模型也是一個很不好的模型,并沒有真正的正確分類尉姨。
所以又通過混淆矩陣引出了另外的衡量模型的方法:

精確率precision

精確率precision總是和準確率Accuracy一同出現(xiàn)庵朝,但其實表達的并不是一樣的含義
精確率是針對我們預測結(jié)果而言的,它表示的是預測為正的樣本中有多少是真正的正樣本又厉。那么預測為正就有兩種可能了九府,一種就是把正類預測為正類(TP),另一種就是把負類預測為正類(FP)覆致,也就是TPR侄旬。


precision

召回率recall

召回率是針對我們原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確了煌妈。那也有兩種可能儡羔,一種是把原來的正類預測成正類(TP),另一種就是把原來的正類預測為負類(FN)璧诵,也就上面那個總圖對應的PPV汰蜘。

recall

那么用圖示來看下上面兩個的區(qū)別
pre&re.png

精確率和召回率又被稱為查準率和查全率,
查準率=檢索出的相關信息量 / 檢索出的信息總量
查全率=檢索出的相關信息量 / 系統(tǒng)中的相關信息總量

F1 score

有時候我們用召回率之宿,有時候又要用精確率確實比較迷惑族操,所以這時,就引入了F1分數(shù)比被,F(xiàn)1分數(shù)公式如下:
F1 Score:F1 Score = 2*P*R/P+R色难,其中P和R分別為 precision 和
recall
F1的由來主要是因為調(diào)和平均數(shù),調(diào)和平均數(shù)(英語:Harmonic mean)等缀,是求一組數(shù)值的平均數(shù)的方法中的一種枷莉,調(diào)和平均數(shù)永遠小于一般的算數(shù)平均數(shù),所以調(diào)和平均數(shù)尺迂,更接近小一點的那個值笤妙,套入F1公式的話,就是更接近精確率和召回率更小一點的那個值枪狂。

F-beta Score

首先鏈接是F1的鏈接哈危喉,下面有F-beta Score的公式。
這個beta可以理解為偏向某個方向的天平州疾,從下圖可以看出如果beta越小辜限,那么越重視精確率,如果beta越大严蓖,則說明越重視召回率薄嫡。


fb.png

fb2.png

接收者操作特征曲線ROC curve

ROC空間將偽陽性率(FPR)定義為 X 軸氧急,真陽性率(TPR)定義為 Y 軸。

  • TPR:在所有實際為陽性的樣本中毫深,被正確地判斷為陽性之比率吩坝。
    TPR = TP / (TP + FN)
  • FPR:在所有實際為陰性的樣本中,被錯誤地判斷為陽性之比率哑蔫。
    FPR = FP / (FP + TN)
    給定一個二元分類模型和它的閾值钉寝,就能從所有樣本的(陽性/陰性)真實值和預測值計算出一個 (X=FPR, Y=TPR) 座標點。

從 (0, 0) 到 (1,1) 的對角線將ROC空間劃分為左上/右下兩個區(qū)域闸迷,在這條線的以上的點代表了一個好的分類結(jié)果(勝過隨機分類)嵌纲,而在這條線以下的點代表了差的分類結(jié)果(劣于隨機分類)。
ROC空間里的單點腥沽,是給定分類模型且給定閾值后得出的逮走。但同一個二元分類模型的閾值可能設定為高或低,每種閾值的設定會得出不同的FPR和TPR今阳。

  • 同一模型每個閾值 的 (FPR, TPR) 座標都畫在ROC空間里师溅,就成為特定模型的ROC曲線

如下圖盾舌,人體的血液蛋白濃度是呈正態(tài)分布的連續(xù)變數(shù)墓臭,病人的分布是紅色,平均值為A g/dL妖谴,健康人的分布是藍色起便,平均值是C g/dL。健康檢查會測量血液樣本中的某種蛋白質(zhì)濃度窖维,達到某個值(閾值,threshold)以上診斷為有疾病征兆妙痹。研究者可以調(diào)整閾值的高低(將左上圖的B垂直線往左或右移動)铸史,便會得出不同的偽陽性率與真陽性率,總之即得出不同的預測準確率怯伊。

1. 由于每個不同的分類器(診斷工具琳轿、偵測工具)有各自的測量標準和測量值的單位(標示為:“健康人-病人分布圖”的橫軸),所以不同分類器的“健康人-病人分布圖”都長得不一樣耿芹。

2. 比較不同分類器時崭篡,ROC曲線的實際形狀,便視兩個實際分布的重疊范圍而定吧秕,沒有規(guī)律可循琉闪。

3. 但在同一個分類器之內(nèi),閾值的不同設定對ROC曲線的影響砸彬,仍有一些規(guī)律可循:

  • 當閾值設定為最高時颠毙,亦即所有樣本都被預測為陰性斯入,沒有樣本被預測為陽性,此時在偽陽性率 FPR = FP / ( FP + TN ) 算式中的 FP = 0蛀蜜,所以 FPR = 0%刻两。同時在真陽性率(TPR)算式中, TPR = TP / ( TP + FN ) 算式中的 TP = 0滴某,所以 TPR = 0%

  • 當閾值設定為最高時磅摹,必得出ROC座標系左下角的點 (0, 0)。

  • 當閾值設定為最低時霎奢,亦即所有樣本都被預測為陽性户誓,沒有樣本被預測為陰性,此時在偽陽性率FPR = FP / ( FP + TN ) 算式中的 TN = 0椰憋,所以 FPR = 100%厅克。同時在真陽性率 TPR = TP / ( TP + FN ) 算式中的 FN = 0,所以 TPR=100%
    當閾值設定為最低時橙依,必得出ROC座標系右上角的點 (1, 1)证舟。

  • 因為TP、FP窗骑、TN女责、FN都是累積次數(shù),TN和FN隨著閾值調(diào)低而減少(或持平)创译,TP和FP隨著閾值調(diào)低而增加(或持平)抵知,所以FPR和TPR皆必隨著閾值調(diào)低而增加(或持平)。
    隨著閾值調(diào)低软族,ROC點 往右上(或右/或上)移動刷喜,或不動;但絕不會往左下(或左/或下)移動立砸。

    roc.PNG

    以上就是ROC空間和ROC曲線掖疮,但是針對ROC曲線還有一個很重要的性質(zhì),那就是曲線下面積(AUC)颗祝,AUC的意義是:

  • 因為是在1x1的方格里求面積浊闪,AUC必在0~1之間。

  • 假設閾值以上是陽性螺戳,以下是陰性搁宾;

  • 若隨機抽取一個陽性樣本和一個陰性樣本,分類器正確判斷陽性樣本的值高于陰性樣本之機率 = AUC倔幼。

  • 簡單說:AUC值越大的分類器盖腿,正確率越高。
    下面來看下數(shù)據(jù)分步和AUC的關系凤藏,可以明顯看出奸忽,如果不是很好分出的數(shù)據(jù)堕伪,他的auc大概在0.5左右,而如果能完美分類的模型栗菜,他的auc為1.

    auc.png

上面的評估指標都是評估分類模型的欠雌,現(xiàn)在讓我們來學評估回歸模型的指標

平均絕對誤差(Mean absolute error MAE)

其實顧名思義了,直接看圖看公式吧


mae.png

很容易對不對疙筹,誤差的絕對值的總和求平均富俄。
機器學習中我們一般用sklearn的mean_absolute_error函數(shù)來算結(jié)果。


mae2.png

但因為我們是用的絕對值做計算而咆,這種情況我們不能去求導來做梯度下降(梯度下降通過求導的負數(shù)來得出我們的線段的斜率和偏移該怎么變化霍比,或者說是變化方向),那么就引入了下一個誤差方式來方便求導暴备,那就是:

均方誤差Mean squared error MSE

同樣悠瞬,也基本是看到就知道大概意思了,那么我們直接看公式


mse.png

很明顯對不對涯捻,點和線段的偏差的平方求和來求平均


mse2.png

同樣我們常用sklearn的mean_squared_error 函數(shù)來實現(xiàn)這個功能

決定系數(shù)R2 score

另外一個非常重要的判定分數(shù)是R2 score浅妆,又叫Coefficient of determination,R2 score在回歸問題評估上非常常見,R2 score是通過將我們的模型和最簡單的模型相比得出的障癌,
具體計算如下:


R2

上圖可以看出凌外,決定系數(shù)越接近1,這個模型評估也好涛浙。
同樣用sklearn的r2_score函數(shù)計算康辑。


R2.png

二、模型選擇

方差轿亮,偏差疮薇,過擬合和欠擬合

首先要選擇模型,自然要知道什么樣的模型是不好的我注,針對模型來說惦辛,我們有兩種比較不好的模型,一種是過擬合的模型仓手,另一種是欠擬合的模型,而這兩種不好的模型其實反應的是方差和偏差玻淑,這里有非常好的資料可以進行學習嗽冒。

那么我們從頭細細道來:
當我們討論預測模型時,預測誤差可以分解為我們關心的兩個主要子部分內(nèi)容:由于“偏差”引起的誤差和由于“方差”引起的誤差补履。在模型最小化偏差和方差的能力之間存在權(quán)衡添坊。了解這兩種類型的錯誤可以幫助我們診斷模型結(jié)果并避免過擬合或欠擬合。
1箫锤、偏差和方差Bias and Variance
了解不同的誤差源如何導致偏差和方差有助于我們改進數(shù)據(jù)擬合過程贬蛙,從而產(chǎn)生更準確的模型雨女。我們以三種方式定義偏差和方差:概念上,圖形上和數(shù)學上阳准。
概念上:
(1)由偏差引起的誤差:由于偏差引起的誤差被視為我們模型的預期(或平均)預測與我們正確值之間的差異氛堕。當然,你只有一個模型野蝇,所以談論預期或平均預測值可能看起來有點奇怪讼稚。但是,假設您可以多次重復整個模型構(gòu)建過程:每次收集新數(shù)據(jù)并運行新分析創(chuàng)建新模型绕沈。由于基礎數(shù)據(jù)集中的隨機性锐想,所得到的模型將具有一系列預測。偏差衡量這些模型的預測與正確值的距離乍狐。
(2)由方差引起的誤差:由于方差引起的誤差被視為給定數(shù)據(jù)點的模型預測的可變性赠摇。再次,假設您可以多次重復整個模型構(gòu)建過程浅蚪。方差是給定點的預測在模型的不同實現(xiàn)之間變化的程度藕帜。
圖形上:

bias.png

bias

這個靶子目標的中心是一個完美預測正確值的模型。靶子上的點請理解為每一次模型評估后實現(xiàn)掘鄙,可以看到命中點與模型中心的偏差耘戚,最左上的很明顯,偏差和方差都很小的情況下操漠,模型評估幾乎都正中紅心收津,這是一個良好模型的體現(xiàn),而高方差的情況浊伙,點雖然靠近中心撞秋,但有些像四周分散,這就是過擬合的表現(xiàn)嚣鄙,就像一個人比較極端偏執(zhí)吻贿,眼光比較狹隘,極端擬合了一些狀態(tài)哑子,沒有大局觀舅列,而高偏差呢,能看到我們的點并沒有像中心靠攏卧蜓,而是有些偏斜帐要,這就是欠擬合的表現(xiàn),就像一個人想面面俱到的做事情弥奸,比較圓滑榨惠,放任某些錯誤的邏輯繼續(xù)走偏。
從第二張模型復雜度圖(后面講)也能看到,我們variance方差和bias的存在基本是互斥的赠橙,高方差的話偏差就低耽装,高偏差的話方差就低,就像我們的過擬合的狀態(tài)一樣期揪,而我們就是要找到最低的那個error掉奄,盡量去找那個“完美”模型。
我們也可以看下面這個例子横侦,來理解:


fitting.png

2挥萌、模型復雜度圖表
模型復雜性圖比較訓練誤差training errors和交叉驗證誤差cross-validation errors ,以便測量某個模型對給與的數(shù)據(jù)集是否過擬合或者欠擬合枉侧。就像這個圖中所示引瀑,比如第一個使用的是一階線性回歸,對于訓練數(shù)據(jù)有3個錯分類的點榨馁,對于測試數(shù)據(jù)有3個錯分類的點憨栽,這就勾出了曲線的第一個節(jié)點,以此類推翼虫,這樣的一個整體的圖屑柔,就是模型復雜度圖了

模型復雜度.png

以這個圖來看,degree=2是最好的模型珍剑,在這之后的模型測試數(shù)據(jù)判斷失誤開始增多掸宛,圖形趨近于過擬合

K折交叉驗證

首先,什么是Cross-validation交叉驗證招拙?它也叫循環(huán)估計唧瘾,是一種統(tǒng)計學上將數(shù)據(jù)樣本切割成較小子集的實用方法。于是可以先在一個子集上做分析别凤, 而其它子集則用來做后續(xù)對此分析的確認及驗證饰序。 一開始的子集被稱為訓練集。而其它的子集則被稱為驗證集測試集规哪。交叉驗證的目標是在訓練階段定義一組用于“測試”模型的數(shù)據(jù)集求豫,以便減少像過擬合的問題,得到該模型將如何衍生到一個獨立的數(shù)據(jù)集的提示诉稍。
那么同樣k折交叉驗證就是將訓練集分割成K個子樣本蝠嘉,一個單獨的子樣本被保留作為驗證模型的數(shù)據(jù),其他K-1個樣本用來訓練杯巨。交叉驗證重復K次是晨,每個子樣本驗證一次,平均K次的結(jié)果或者使用其它結(jié)合方式舔箭,最終得到一個單一估測。這個方法的優(yōu)勢在于,同時重復運用隨機產(chǎn)生的子樣本進行訓練和驗證层扶,每次的結(jié)果驗證一次箫章,10次交叉驗證是最常用的。
使用sklearn的方法如下

kfold-sklearn.png

學習曲線

學習曲線镜会,是表示通過增長學習經(jīng)驗來觀察學習能力變化的一個圖表檬寂,這是原本的學習曲線的含義。
舉個栗子:


leanring curve

那么在機器學習中戳表,學習曲線的y軸表示的是錯誤error或者是acc正確率桶至,而原來表示經(jīng)驗的x軸可能是用于學習的訓練樣本的數(shù)量或用于優(yōu)化系統(tǒng)模型參數(shù)的迭代次數(shù)等等。


learningcurves.png

可以用以下代碼生成學習曲線:
train_sizes, train_scores, test_scores = learning_curve(
    estimator, X, y, cv=None, n_jobs=1, train_sizes=np.linspace(.1, 1.0, num_trainings))
  • estimator匾旭,是我們針對數(shù)據(jù)使用的實際分類器镣屹,例如 LogisticRegression() 或 GradientBoostingClassifier()。
  • X 和 y 是我們的數(shù)據(jù)价涝,分別表示特征和標簽女蜈。
  • train_sizes 是用來在曲線上繪制每個點的數(shù)據(jù)大小。
  • train_scores 是針對每組數(shù)據(jù)進行訓練后的算法訓練得分色瘩。
  • test_scores 是針對每組數(shù)據(jù)進行訓練后的算法測試得分伪窖。

網(wǎng)格搜索

首先要了解一個概念,超參數(shù)居兆,可能會覺得很奇怪覆山,經(jīng)常聽到參數(shù),超參數(shù)什么泥栖?原文-參數(shù)與超參數(shù)的不同
模型參數(shù)是模型內(nèi)部的配置變量簇宽,可以用數(shù)據(jù)估計模型參數(shù)的值;模型超參數(shù)是模型外部的配置聊倔,必須手動設置參數(shù)的值晦毙。
具體來說,首先耙蔑,我們來看一下“參數(shù)”是什么见妒?
參數(shù)作為模型從歷史訓練數(shù)據(jù)中學到的一部分,是機器學習算法的關鍵 甸陌。

統(tǒng)計學中的“參數(shù)”:
在統(tǒng)計學中须揣,你可以假設一個變量的分布,比如高斯分布钱豁。高斯分布的兩個參數(shù)分別是平均值(μ)和標準差(sigma)耻卡。這在機器學習中是有效的,其中這些參數(shù)可以用數(shù)據(jù)估計得到并用作預測模型的一部分牲尺。

編程中的“參數(shù)”:
編程中可以將參數(shù)傳遞給函數(shù)卵酪。在這種情況下幌蚊,參數(shù)是一個函數(shù)參數(shù),可以有一個值范圍溃卡。在機器學習中溢豆,您正在使用的具體模型就是函數(shù),需要參數(shù)才能對新數(shù)據(jù)進行預測瘸羡。

參數(shù)和模型有什么關系漩仙?
根據(jù)經(jīng)典的機器學習文獻,可以將模型看作假設犹赖,而參數(shù)是根據(jù)特定的數(shù)據(jù)集對假設進行的具體調(diào)整队他。
模型是否具有固定或可變數(shù)量的參數(shù),決定了模型是“參數(shù)”模型或“非參”模型峻村。

什么是模型參數(shù)麸折?
簡單來說,模型參數(shù)就是模型內(nèi)部的配置變量雀哨,可以用數(shù)據(jù)估計它的值磕谅。
具體來講,模型參數(shù)有以下特征:

  • 進行模型預測時需要模型參數(shù)雾棺。
  • 模型參數(shù)值可以定義模型功能膊夹。
  • 模型參數(shù)用數(shù)據(jù)估計或數(shù)據(jù)學習得到。
  • 模型參數(shù)一般不由實踐者手動設置捌浩。
  • 模型參數(shù)通常作為學習模型的一部分保存放刨。

通常使用優(yōu)化算法估計模型參數(shù),優(yōu)化算法是對參數(shù)的可能值進行的一種有效搜索尸饺。
模型參數(shù)的一些例子包括:

  • 人造神經(jīng)網(wǎng)絡中的權(quán)重进统。
  • 支持向量機中的支持向量。
  • 線性回歸或邏輯回歸中的系數(shù)浪听。

什么是模型超參數(shù)螟碎?
模型超參數(shù)是模型外部的配置,其值不能從數(shù)據(jù)估計得到迹栓。
具體特征有:

  • 模型超參數(shù)常應用于估計模型參數(shù)的過程中掉分。
  • 模型超參數(shù)通常由實踐者直接指定。
  • 模型超參數(shù)通晨艘粒可以使用啟發(fā)式方法來設置酥郭。
  • 模型超參數(shù)通常根據(jù)給定的預測建模問題而調(diào)整。

怎樣得到它的最優(yōu)值: 對于給定的問題愿吹,我們無法知道模型超參數(shù)的最優(yōu)值不从。但我們可以使用經(jīng)驗法則來探尋其最優(yōu)值,或復制用于其他問題的值犁跪,也可以通過反復試驗的方法椿息。

模型超參數(shù)的一些例子包括:

  • 訓練神經(jīng)網(wǎng)絡的學習速率歹袁。
  • 支持向量機的C和sigma超參數(shù)。
  • k鄰域中的k寝优。

兩者聯(lián)系:
當針對特定問題調(diào)整機器學習算法時宇攻,例如在使用網(wǎng)格搜索或隨機搜索時,你將調(diào)整模型或命令的超參數(shù)倡勇,以發(fā)現(xiàn)一個可以使模型預測最熟練的模型參數(shù)。許多模型中重要的參數(shù)無法直接從數(shù)據(jù)中估計得到嘉涌。例如妻熊,在K近鄰分類模型中...這種類型的模型參數(shù)被稱為調(diào)整參數(shù),因為沒有可用的分析公式來為其計算一個合適的值仑最。
第64-65頁扔役,應用預測建模,2013

兩者區(qū)分:
模型超參數(shù)通常被稱為模型參數(shù)警医,這種叫法很容易讓人產(chǎn)生誤解亿胸。解決這個問題的一個很好的經(jīng)驗法則如下:如果你必須手動指定一個“模型參數(shù)”,那么它可能就是一個模型超參數(shù)预皇。

那么介紹完了超參數(shù)我們來真正進入網(wǎng)格搜索侈玄,這里有一篇講解的很好的文章,可以進行學習:

網(wǎng)格搜索算法與K折交叉驗證
大致介紹來說吟温,Grid Search是一種調(diào)參手段序仙,是通過窮舉法來找到自己所探索的參數(shù)中,最好的那一套參數(shù)鲁豪,一般結(jié)合交叉驗證來用潘悼。舉例的話上面那個鏈接里寫的就很好了,這里就不說了爬橡。

最后治唤,如何在sklearn中進行使用呢?
在 sklearn 中的網(wǎng)格搜索非常簡單糙申。 我們將用一個例子來說明一下宾添。 假設我們想要訓練支持向量機,并且我們想在以下參數(shù)之間做出決定:

kernel:poly或rbf郭宝。
C:0.1,1 或 10辞槐。

( 注:這些參數(shù)對于你來說,現(xiàn)在可以簡單了解一下粘室,我們將在該納米學位接下來的監(jiān)督學習部分中詳細了解它們榄檬。

具體步驟如下所示:
1. 導入 GridSearchCV

from sklearn.model_selection import GridSearchCV

2.選擇參數(shù):
現(xiàn)在我們來選擇我們想要選擇的參數(shù),并形成一個字典衔统。 在這本字典中鹿榜,鍵 (keys) 將是參數(shù)的名稱海雪,值 (values) 將是每個參數(shù)可能值的列表。

parameters = {'kernel':['poly', 'rbf'],'C':[0.1, 1, 10]}

3.創(chuàng)建一個評分機制 (scorer)
我們需要確認將使用什么指標來為每個候選模型評分舱殿。 這里奥裸,我們將使用 F1 分數(shù)。

from sklearn.metrics import make_scorer
from sklearn.metrics import f1_score
scorer = make_scorer(f1_score)

4. 使用參數(shù) (parameter) 和評分機制 (scorer) 創(chuàng)建一個 GridSearch 對象沪袭。 使用此對象與數(shù)據(jù)保持一致 (fit the data) 湾宙。

# Create the object.
grid_obj = GridSearchCV(clf, parameters, scoring=scorer)
# Fit the data
grid_fit = grid_obj.fit(X, y)

5. 獲得最佳估算器 (estimator)

best_clf = grid_fit.best_estimator_

現(xiàn)在你可以使用這一估算器best_clf來做出預測。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冈绊,一起剝皮案震驚了整個濱河市侠鳄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌死宣,老刑警劉巖伟恶,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異毅该,居然都是意外死亡博秫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門眶掌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挡育,“玉大人,你說我怎么就攤上這事畏线【仓眩” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵寝殴,是天一觀的道長蒿叠。 經(jīng)常有香客問我,道長蚣常,這世上最難降的妖魔是什么市咽? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮抵蚊,結(jié)果婚禮上施绎,老公的妹妹穿的比我還像新娘。我一直安慰自己贞绳,他們只是感情好谷醉,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著冈闭,像睡著了一般俱尼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上萎攒,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天遇八,我揣著相機與錄音矛绘,去河邊找鬼。 笑死刃永,一個胖子當著我的面吹牛货矮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播斯够,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼囚玫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了读规?” 一聲冷哼從身側(cè)響起劫灶,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掖桦,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體供汛,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡枪汪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了怔昨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雀久。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖趁舀,靈堂內(nèi)的尸體忽然破棺而出赖捌,到底是詐尸還是另有隱情,我是刑警寧澤矮烹,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布越庇,位于F島的核電站,受9級特大地震影響奉狈,放射性物質(zhì)發(fā)生泄漏卤唉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一仁期、第九天 我趴在偏房一處隱蔽的房頂上張望桑驱。 院中可真熱鬧,春花似錦莲镣、人聲如沸遏乔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽押框。三九已至,卻和暖如春此衅,著一層夾襖步出監(jiān)牢的瞬間强戴,已是汗流浹背亭螟。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留骑歹,地道東北人预烙。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像道媚,于是被迫代替她去往敵國和親扁掸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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