2014-07-08 47 views

回答

2

沒有辦法提取cross_val_score中使用的內部交叉驗證拆分,因爲此函數不公開任何關於它的狀態。如documentation中所述,將使用具有k=3的k倍或k倍分層。

然而,如果你需要跟蹤使用交叉驗證分裂的,你可以明確的cross_val_scorecv參數傳遞通過創建自己的cross validation iterators

from sklearn.cross_validation import KFold, cross_val_score 
from sklearn.datasets import load_iris 
from sklearn.svm import SVC 

iris = load_iris() 
kf = KFold(len(iris.target), 5, random_state=0) 
clf = SVC(kernel='linear', C=1) 
scores = cross_val_score(clf, iris.data, iris.target, cv=kf) 

,以便它使用您指定的拆分而不是自己滾動。

+0

我想確定一些東西,在拆分分區時是否有任何隨機性?或者爲相同的kfold設置和目標標籤生成相同的分區? – eman

+1

在由參數''random_state''控制的分割中存在隨機性。如果你沒有指定,將會使用''numpy''的內部隨機狀態,並且多次運行的結果可能會不同。對於''KFold''的情況,只有在''shuffle = True''時纔會使用隨機性。 StratifiedKFold中的 –

+0

沒有名爲「shuffle」或「random_state」的參數,那麼情況如何? – eman

2

cross_val_score的默認交叉驗證器是K = 3的分層KFold用於分類。您可以使用StratifiedKFold來代替交叉驗證迭代器,並按照示例中所示循環遍歷拆分。

+0

是的,我知道我可以做到這一點,但cross_val_score節省了很多努力,所以我正在尋找一種方法來提取褶皺,同時使用它。 – eman

+0

沒有一個。 –

相關問題