我正在使用scikit-learn通过交叉验证运行带有逻辑回归的管道。我从下面的代码中得到每个折叠的分数。我如何得到混淆矩阵?
clf = make_pipeline(MinMaxScaler(), LogisticRegression())
scores = cross_val_score(clf, X_train, y_train, cv=3)
答案 0 :(得分:1)
我认为你想要的是:
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在线文档的3.1.1.2:
函数cross_val_predict具有类似的接口 cross_val_score,但是为输入中的每个元素返回 在测试中为该元素获得的预测 组。只有将所有元素分配给a的交叉验证策略 可以使用一次测试集(否则会引发异常)。
请注意,此计算的结果可能与使用cross_val_score获得的结果略有不同,因为元素以不同方式分组。