我使用:如何獲得在sklearn.cross_validation.cross_val_score內部進行分區的摺疊?
sklearn.cross_validation.cross_val_score
做一個交叉驗證,並得到每個運行的結果。
該函數的輸出是分數。
是否有一種方法來獲取在cross_val_score函數內部進行分區的摺疊(分區)本身?
我使用:如何獲得在sklearn.cross_validation.cross_val_score內部進行分區的摺疊?
sklearn.cross_validation.cross_val_score
做一個交叉驗證,並得到每個運行的結果。
該函數的輸出是分數。
是否有一種方法來獲取在cross_val_score函數內部進行分區的摺疊(分區)本身?
沒有辦法提取cross_val_score
中使用的內部交叉驗證拆分,因爲此函數不公開任何關於它的狀態。如documentation中所述,將使用具有k=3
的k倍或k倍分層。
然而,如果你需要跟蹤使用交叉驗證分裂的,你可以明確的cross_val_score
的cv
參數傳遞通過創建自己的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)
,以便它使用您指定的拆分而不是自己滾動。
cross_val_score的默認交叉驗證器是K = 3的分層KFold用於分類。您可以使用StratifiedKFold來代替交叉驗證迭代器,並按照示例中所示循環遍歷拆分。
是的,我知道我可以做到這一點,但cross_val_score節省了很多努力,所以我正在尋找一種方法來提取褶皺,同時使用它。 – eman
沒有一個。 –
我想確定一些東西,在拆分分區時是否有任何隨機性?或者爲相同的kfold設置和目標標籤生成相同的分區? – eman
在由參數''random_state''控制的分割中存在隨機性。如果你沒有指定,將會使用''numpy''的內部隨機狀態,並且多次運行的結果可能會不同。對於''KFold''的情況,只有在''shuffle = True''時纔會使用隨機性。 StratifiedKFold中的 –
沒有名爲「shuffle」或「random_state」的參數,那麼情況如何? – eman