交叉驗(yàn)證的優(yōu)點(diǎn):
原始采用的train_test_split方法,數(shù)據(jù)劃分具有偶然性;交叉驗(yàn)證通過多次劃分,大大降低了這種由一次隨機(jī)劃分帶來(lái)的偶然性,同時(shí)通過多次劃分,多次訓(xùn)練,模型也能遇到各種各樣的數(shù)據(jù),從而提高其泛化能力
與原始的train_test_split相比,對(duì)數(shù)據(jù)的使用效率更高,train_test_split,默認(rèn)訓(xùn)練集,測(cè)試集比例為3:1,而對(duì)交叉驗(yàn)證來(lái)說(shuō),如果是5折交叉驗(yàn)證,訓(xùn)練集比測(cè)試集為4:1;10折交叉驗(yàn)證訓(xùn)練集比測(cè)試集為9:1.數(shù)據(jù)量越大,模型準(zhǔn)確率越高!
交叉驗(yàn)證的缺點(diǎn):
這種簡(jiǎn)答的交叉驗(yàn)證方式,從上面的圖片可以看出來(lái),每次劃分時(shí)對(duì)數(shù)據(jù)進(jìn)行均分,設(shè)想一下,會(huì)不會(huì)存在一種情況:數(shù)據(jù)集有5類,抽取出來(lái)的也正好是按照類別劃分的5類,也就是說(shuō)第一折全是0類,第二折全是1類,等等;這樣的結(jié)果就會(huì)導(dǎo)致,模型訓(xùn)練時(shí)。沒有學(xué)習(xí)到測(cè)試集中數(shù)據(jù)的特點(diǎn),從而導(dǎo)致模型得分很低,甚至為0,為避免這種情況,又出現(xiàn)了其他的各種交叉驗(yàn)證方式。
Stratifidk-foldcrossvalidation
分層交叉驗(yàn)證(Stratifiedk-foldcrossvalidation):首先它屬于交叉驗(yàn)證類型,分層的意思是說(shuō)在每一折中都保持著原始數(shù)據(jù)中各個(gè)類別的比例關(guān)系,比如說(shuō):原始數(shù)據(jù)有3類,比例為1:2:1,采用3折分層交叉驗(yàn)證,那么劃分的3折中,每一折中的數(shù)據(jù)類別保持著1:2:1的比例,這樣的驗(yàn)證結(jié)果更加可信。
通常情況下,可以設(shè)置cv參數(shù)來(lái)控制幾折,但是我們希望對(duì)其劃分等加以控制,所以出現(xiàn)了KFold,KFold控制劃分折,可以控制劃分折的數(shù)目,是否打亂順序等,可以賦值給cv,用來(lái)控制劃分。
以上內(nèi)容為大家介紹了python交叉驗(yàn)證,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。