日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sklearn中的交叉验证(Cross-Validation)

發(fā)布時(shí)間:2025/4/9 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sklearn中的交叉验证(Cross-Validation) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

sklearn中的交叉驗(yàn)證(Cross-Validation)

? ? cross validation大概的意思是:對(duì)于原始數(shù)據(jù)我們要將其一部分分為traindata,一部分分為test data。train data用于訓(xùn)練,test data用于測(cè)試準(zhǔn)確率。在test data上測(cè)試的結(jié)果叫做validation error。將一個(gè)算法作用于一個(gè)原始數(shù)據(jù),我們不可能只做出隨機(jī)的劃分一次train和testdata,然后得到一個(gè)validation error,就作為衡量這個(gè)算法好壞的標(biāo)準(zhǔn)。因?yàn)檫@樣存在偶然性。我們必須多次的隨機(jī)的劃分train data和test data,分別在其上面算出各自的validation error。這樣就有一組validationerror,根據(jù)這一組validationerror,就可以較好的準(zhǔn)確的衡量算法的好壞。crossvalidation是在數(shù)據(jù)量有限的情況下的非常好的一個(gè)evaluate performance的方法。而對(duì)原始數(shù)據(jù)劃分出train data和testdata的方法有很多種,這也就造成了cross validation的方法有很多種。

1.?train_test_split

對(duì)數(shù)據(jù)集進(jìn)行快速打亂(分為訓(xùn)練集和測(cè)試集)

這里相當(dāng)于對(duì)數(shù)據(jù)集進(jìn)行了shuffle后按照給定的test_size?進(jìn)行數(shù)據(jù)集劃分。

2.?cross_val_score

對(duì)數(shù)據(jù)集進(jìn)行指定次數(shù)的交叉驗(yàn)證并為每次驗(yàn)證效果評(píng)測(cè)

調(diào)用方式

sklearn.cross_validation.cross_val_score(estimator, X, y=None, scoring=None, cv=None,n_jobs=1, verbose=0, fit_params=None, pre_dispatch='2*n_jobs')

返回值就是對(duì)于每次不同的的劃分raw data時(shí),在test data上得到的分類的準(zhǔn)確率。

參數(shù)解釋

estimator:是不同的分類器,可以是任何的分類器。比如支持向量機(jī)分類器:estimator = svm.SVC(kernel='linear', C=1)

cv:代表不同的cross validation的方法。如果cv是一個(gè)int,并且如果提供了rawtarget參數(shù),那么就代表使用StratifiedKFold分類方式如果cv是一個(gè)int值,并且沒有提供rawtarget參數(shù),那么就代表使用KFold分類方式也可以給定它一個(gè)CV迭代策略生成器,指定不同的CV方法

scoring:默認(rèn)Nnoe準(zhǔn)確率的算法可以通過score_func參數(shù)指定如果不指定的話,是用estimator默認(rèn)自帶的準(zhǔn)確率算法。

3.?KFold? (K折交叉驗(yàn)證)

  • 將數(shù)據(jù)集平均分割成K個(gè)等份
  • 使用1份數(shù)據(jù)作為測(cè)試數(shù)據(jù),其余作為訓(xùn)練數(shù)據(jù)
  • 計(jì)算測(cè)試準(zhǔn)確率
  • 使用不同的測(cè)試集,重復(fù)2、3步驟
  • 對(duì)測(cè)試準(zhǔn)確率做平均,作為對(duì)未知數(shù)據(jù)預(yù)測(cè)準(zhǔn)確率的估計(jì)
  • 最基礎(chǔ)的CV算法,也是默認(rèn)采用的CV策略?。主要的參數(shù)包括兩個(gè),一個(gè)是樣本數(shù)目,一個(gè)是k-fold要?jiǎng)澐值姆輸?shù)。

    1 fromsklearn.model_selection import KFold 2 X= np.array([[1, 2], [3, 4], [1, 2], [3, 4]]) 3 y= np.array([1, 2, 3, 4]) 4 kf= KFold(n_splits=2) 5 kf.get_n_splits(X)#給出K折的折數(shù),輸出為2 6 print(kf) 7 #輸出為:KFold(n_splits=2, random_state=None,shuffle=False) 8 for train_index, test_index in kf.split(X): 9 print("TRAIN:",train_index, "TEST:", test_index) 10 X_train,X_test = X[train_index], X[test_index] 11 y_train,y_test = y[train_index], y[test_index] 12 #輸出:TRAIN: [2 3] TEST: [0 1] 13 # TRAIN: [0 1] TEST: [2 3]

    ##這里kf.split(X)返回的是X中進(jìn)行分裂后traintest的索引值令X中數(shù)據(jù)集的索引為0123;第一次分裂,先選擇test,索引為01的數(shù)據(jù)集為test,

    剩下索引為23的數(shù)據(jù)集為train;第二次分裂,先選擇test,索引為23的數(shù)據(jù)集為test,剩下索引為01的數(shù)據(jù)集為train。

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/yxh-amysear/p/9447722.html

    總結(jié)

    以上是生活随笔為你收集整理的sklearn中的交叉验证(Cross-Validation)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。