Sklearn學習筆記8 雜記

2021-10-10 08:00:53 字數 2169 閱讀 9692

將訓練/測試資料集劃分n_splits個互斥子集,每次只用其中乙個子集當做測試集,剩下的(n_splits-1)作為訓練集,進行n_splits次實驗並得到n_splits個結果。

注:對於不能均等分的資料集,前n_samples%n_spllits子集擁有n_samples//n_spllits+1個樣本,其餘子集都只有n_samples//n_spllits個樣本。(例10行資料分3份,只有乙份可分4行,其他均為3行)

sklearn.model_selection.kfold(n_splits=

3,shuffle=

false

,random_state=

none

)

與kfold最大的差異在於,stratifiedkfold方法是根據標籤中不同類別佔比來進行拆分資料的。

sklearn.model_selection.stratifiedkfold(n_splits=

3,shuffle=

false

,random_state=

none

)

資料集

import numpy as np

from sklearn.model_selection import stratifiedkfold,kfold

x=np.array([[

1,2,

3,4]

,[11,

12,13,

14],[

21,22,

23,24]

,[31,

32,33,

34],[

41,42,

43,44]

,[51,

52,53,

54],[

61,62,

63,64]

,[71,

72,73,

74]])

y=np.array([1

,1,0

,0,1

,1,0

,0])

利用kfold方法交叉取樣:按順序分別取第1-2、3-4、5-6和7-8的資料

#按順序分別取第1-2、3-4、5-6和7-8的資料。

kfolder = kfold(n_splits=

4,random_state=1)

for train, test in kfolder.split(x,y)

:print

('train: %s | test: %s'

%(train, test)

,'\n'

)>>

>

train:[2

3456

7]| test:[0

1]# 訓練集取2,3,4,5,6,7,測試集取0,1

train:[0

1456

7]| test:[2

3]train:[0

1236

7]| test:[4

5]train:[0

1234

5]| test:[6

7]

利用stratifiedkfold方法分層取樣:依照標籤的比例來抽取資料,本案例集標籤0和1的比例是1:1,因此在抽取資料時也是按照標籤比例1:1來提取的

#依照標籤的比例來抽取資料,本案例集標籤0和1的比例是1:1

#因此在抽取資料時也是按照標籤比例1:1來提取的

sfolder = stratifiedkfold(n_splits=

4,random_state=0)

for train, test in sfolder.split(x,y)

:print

('train: %s | test: %s'

%(train, test)

)>>

>

train:[1

3456

7]| test:[0

2] train:[0

2456

7]| test:[1

3]train:[0

1235

7]| test:[4

6]train:[0

1234

6]| test:[5

7]

sklearn學習筆記

1.波士頓房價線性回歸模型 from sklearn import datasets from sklearn.linear model import linearregression boston datasets.load boston data x boston.data y boston.t...

sklearn學習筆記

決策樹一般採用整合,具有隨機,不純度最優 from sklearn import tree from sklearn.datasets import load wine from sklearn.model selection import train test split 用於劃分訓練測試集數目 ...

sklearn學習筆記

from sklearn.datasets import load iris from sklearn.model selection import train test split from sklearn.feature extraction import dictvectorizer from...