Scikit learn 获取每个交叉验证折叠的混淆矩阵

Scikit learn 获取每个交叉验证折叠的混淆矩阵,scikit-learn,pipeline,cross-validation,confusion-matrix,Scikit Learn,Pipeline,Cross Validation,Confusion Matrix,我正在使用scikit learn通过交叉验证运行逻辑回归管道。我从下面代码中的每个折叠中获得分数。如何获得混淆矩阵 clf = make_pipeline(MinMaxScaler(), LogisticRegression()) scores = cross_val_score(clf, X_train, y_train, cv=3) 我想你想要的是: clf = make_pipeline(MinMaxScaler(), LogisticRegression()) from sklea

我正在使用scikit learn通过交叉验证运行逻辑回归管道。我从下面代码中的每个折叠中获得分数。如何获得混淆矩阵

clf = make_pipeline(MinMaxScaler(), LogisticRegression())
scores = cross_val_score(clf, X_train, y_train, cv=3)

我想你想要的是:

clf = make_pipeline(MinMaxScaler(), LogisticRegression())

from sklearn.model_selection import cross_val_predict
from sklearn.metrics import confusion_matrix
y_pred = cross_val_predict(clf, X_train, y_train, cv=3)
conf_mat = confusion_matrix(y, y_pred)
来自scikit learn的在线文档:

函数cross_val_predict与 cross_val_score,但对于输入中的每个元素,返回 当该元素在试验中时获得的预测 设置只有将所有元素分配给 测试集只能使用一次(否则会引发异常)

请注意,此计算的结果可能与使用cross_val_分数获得的结果略有不同,因为元素以不同的方式分组


谢谢你的回答@Brian O'Donnell