我使用:如何获得在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