加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 簡(jiǎn)單交叉驗(yàn)證
    • K折交叉驗(yàn)證(K-Fold)
    • 留一法交叉驗(yàn)證(LOO-CV)
    • 留P法交叉驗(yàn)證(LPO-CV)
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

極速理解ML交叉驗(yàn)證

10/02 10:55
934
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

交叉驗(yàn)證(Cross Validation)是驗(yàn)證分類器(你訓(xùn)練的模型)性能的一種統(tǒng)計(jì)分析方法。其基本思想是在某種意義下將原始訓(xùn)練數(shù)據(jù)進(jìn)行分組,訓(xùn)練集和驗(yàn)證集。所以對(duì)于一個(gè)大數(shù)據(jù)集,一般我們會(huì)把它按照 6:2:2 分成訓(xùn)練集、驗(yàn)證集和測(cè)試集(簡(jiǎn)易的機(jī)器學(xué)習(xí)過程會(huì)省去驗(yàn)證集)。

首先用訓(xùn)練集對(duì)模型進(jìn)行訓(xùn)練,再利用驗(yàn)證集來測(cè)試訓(xùn)練得到的模型,以此來初步評(píng)價(jià)模型的性能(注意!交叉驗(yàn)證還是處于訓(xùn)練的階段,不是測(cè)試階段)。
常見的交叉驗(yàn)證方法包括簡(jiǎn)單交叉驗(yàn)證、K折交叉驗(yàn)證留一法交叉驗(yàn)證留P法交叉驗(yàn)證。

簡(jiǎn)單交叉驗(yàn)證

就是上面最簡(jiǎn)單的概念,將訓(xùn)練數(shù)據(jù)分為訓(xùn)練集和驗(yàn)證集,訓(xùn)練集訓(xùn)練模型,驗(yàn)證集驗(yàn)證模型,驗(yàn)證得到的準(zhǔn)確率就是模型的性能指標(biāo)。

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( data, target, test_size=.4, random_state=0 )

K折交叉驗(yàn)證(K-Fold)

將訓(xùn)練數(shù)據(jù)分為K組(一般是均分),然后將每個(gè)子集數(shù)據(jù)分別做一次驗(yàn)證集,其余K-1組子集當(dāng)作訓(xùn)練集,所以會(huì)進(jìn)行K次交叉驗(yàn)證,得到K個(gè)模型,將K個(gè)模型最終的驗(yàn)證準(zhǔn)確率取平均值,作為模型的性能指標(biāo),通常設(shè)K大于或等于3。

from sklearn.model_selection import KFold
kf = KFold(n_splits = 10) # k取10

留一法交叉驗(yàn)證(LOO-CV)

留一法交叉驗(yàn)證(leave-one-out cross validation)就是K折交叉驗(yàn)證里K=N的情況,就是每個(gè)子集只由一個(gè)樣本數(shù)據(jù)組成,N個(gè)樣本數(shù)據(jù),所以會(huì)進(jìn)行N次交叉驗(yàn)證,得到N個(gè)模型,將N個(gè)模型最終的驗(yàn)證準(zhǔn)確率取平均值,作為模型的性能指標(biāo)。

from sklearn.model_selection import LeaveOneOut
loo = LeaveOneOut()

留P法交叉驗(yàn)證(LPO-CV)

留P法交叉驗(yàn)證(leave-p-out cross validation)則是從數(shù)據(jù)集中留下P個(gè)數(shù)據(jù)點(diǎn)作為驗(yàn)證集,而其他的數(shù)據(jù)用作訓(xùn)練集。這個(gè)過程會(huì)遍歷所有可能的訓(xùn)練集/驗(yàn)證集分割方式。如果數(shù)據(jù)集有N個(gè)樣本,那么將會(huì)有從N個(gè)樣本中選出P個(gè)樣本的組合方式,對(duì)于每一種組合,訓(xùn)練一次模型并評(píng)估一次性能。由于組合數(shù)可能非常大,這種方法在計(jì)算上通常非常昂貴,特別是當(dāng)數(shù)據(jù)集的大小相對(duì)于P來說較大時(shí)。

from sklearn.model_selection import LeavePOut
lpo = LeavePOut(p=5) #p取5

相關(guān)推薦

電子產(chǎn)業(yè)圖譜