python - 如何在sklearn中得到交叉验证的预测结果

标签 python scikit-learn

我正在使用 sklearn 交叉验证来解决二元分类问题。我的代码如下所示。

from sklearn import datasets
iris = datasets.load_iris()
X = iris.data[:, :2]  # we only take the first two features.
y = iris.target

from sklearn.ensemble import RandomForestClassifier
clf=RandomForestClassifier(random_state = 0, class_weight="balanced")

from sklearn.model_selection cross_val_score, cross_validate
cross_val_score(clf, X, y, cv=10, scoring = 'accuracy')

cross_val_score 只输出交叉验证中每个折叠的准确率。但是,我想获取分类器为 X 中每个数据点分配的类标签。

例如,我期望输出如下。

X, predicted_label
x1, 0
x2, 1
x3, 0
x4, 1
x5, 1
x6, 1
.........

我知道sklearn中有一个名为predict_proba的函数。然而,它只输出概率。在我的情况下,我想要预测的类标签。

如果需要,我很乐意提供更多详细信息。

最佳答案

您可以只使用sklearn.model_selection.cross_val_predict ( source )

from sklearn import datasets, linear_model
from sklearn.model_selection import cross_val_predict

diabetes = datasets.load_diabetes()

X = diabetes.data[:150]
y = diabetes.target[:150]

lasso = linear_model.Lasso()
y_pred = cross_val_predict(lasso, X, y, cv=3)

print(y_pred)
[174.26933996 117.6539241  164.60228641 155.65049088 132.68647979
 128.49511245 120.76146877 141.069413   164.18904498 182.37394949]

当然,它也适用于分类。

关于python - 如何在sklearn中得到交叉验证的预测结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59348996/

相关文章:

python - 如何在 Spyder 中显示函数参数?

python - Django Query 根据最新外键时间戳获取对象并对它们进行排序

python - Python中的警报框?

python - scikit-学习 PCA : matrix transformation produces PC estimates with flipped signs

python - 在 IRIS DataSet 上运行 SVM 并得到 ValueError : Unknown label type: 'unknown'

python - 使用Python更新HTML文件中4个值的值

python - 使用 python(字节数组和 numpy)读取 middlebury 'flow' 文件

machine-learning - 使用 scikit-learn Logistic 回归获取特征权重

python - 如何使用 Pandas 数据框获取 tfidf?

python - sklearn中的LinearRegression方法中,fit_intercept参数到底是干什么用的?