K折交叉验证(StratifiedKFold与KFold比较)
文章目錄
- 一、交叉驗證
- 二、K折交叉驗證
- KFold()方法
- StratifiedKFold()方法
一、交叉驗證
交叉驗證的基本思想是把在某種意義下將原始數(shù)據(jù)(dataset)進行分組,一部分做為訓練集(train set),另一部分做為驗證集(validation set or test set),首先用訓練集對分類器進行訓練,再利用驗證集來測試訓練得到的模型(model),以此來做為評價分類器的性能指標。–來自百科
二、K折交叉驗證
KFold()方法
KFold(): KFold 將所有的樣例劃分為 k 個組,稱為折疊 (fold) ,每組數(shù)據(jù)都具有相同的大小。每一次分割會將其中的 K-1 組作為訓練數(shù)據(jù),剩下的一組用作測試數(shù)據(jù),一共會分割K次。
可以通過這張圖直觀的體現(xiàn)出來。(這是四折交叉驗證,即K取4)
代碼示例如下:
StratifiedKFold()方法
StratifiedKFold: 是KFold()的變種,采用分層分組的形式(有點類似分層抽樣), 使每個分組中各類別的比例 同整體數(shù)據(jù)中各類別的比例盡可能的相同。(它相對于KFold()方法更完善)
代碼示例如下:
import numpy as np from sklearn.model_selection import StratifiedKFold X=np.array([[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]]) y=np.array([1,1,1,2,2,2]) skf=StratifiedKFold(n_splits=4)#for循環(huán)中的train_index與test_index是索引而并非我們的訓練數(shù)據(jù) for train_index,test_index in skf.split(X,y):print("Train Index:",train_index,",Test Index:",test_index)X_train,X_test=X[train_index],X[test_index]y_train,y_test=y[train_index],y[test_index]【機器學習100天目錄】
【機器學習第3天:預(yù)測汽車的燃油效率】
【機器學習第4天:預(yù)測1立方米混凝土抗壓強度】
【機器學習第5天:邏輯回歸】
【機器學習第6天:乳腺癌腫瘤預(yù)測】
如有錯誤歡迎指教,有問題的可以加入QQ群(1149530473)向我提問,關(guān)注微信公眾號(明天依舊可好)和我同步學習。
總結(jié)
以上是生活随笔為你收集整理的K折交叉验证(StratifiedKFold与KFold比较)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逻辑回归实例--乳腺癌肿瘤预测
- 下一篇: 机器学习第9天:K-邻近算法模型(KNN