我想请教一个建议!
我使用kfold交叉验证来分割我的数据集,并评估分类问题的模型。
我想知道是否有办法打印出真实值以及每个折叠对应的预测值,这样我就可以看到模型在kfold的每次迭代中预测的结果。我会先在一个小数据集上尝试实现这个功能,以便了解其工作原理,然后再将其应用到实际代码中。
我在这个网站上搜索过,发现了一个与我的问题相似的提问,但并没有真正帮到我。
我应该将这些值放入一个数组中,并使用“for”函数进行循环,使用“cross_val_predict”函数来获取预测值。
请问有人可以帮助我吗?
回答:
我想这应该能给你想要的结果。你不需要明确地遍历索引,因为cross_val_predict
会为所有在验证集中的点提供预测值(它自动处理k折分割)。
from sklearn.svm import SVCfrom sklearn.model_selection import KFold, cross_val_predictX = #featuresy = #labelsclassifier = SVC(kernel='linear',random_state=0)classifier.fit(X, y)kfold = KFold(n_splits=10)y_pred = cross_val_predict(classifier, X, y, cv=kfold)for i in range(len(y)): print('Predicted value = ' + str(y_pred[i])) print('Real value = ' + str(y[i]))