gpt4 book ai didi

python - sklearn RandomizedSearchCV提取不同折叠的混淆矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 14:50:32 24 4
gpt4 key购买 nike

我尝试计算聚合混淆矩阵来评估我的模型:

cv_results = cross_validate(estimator, dataset.data, dataset.target, scoring=scoring,
cv=Config.CROSS_VALIDATION_FOLDS, n_jobs=N_CPUS, return_train_score=False)

但我不知道如何提取不同折叠的单个混淆矩阵。在记分器中我可以计算它:

scoring = {
'cm': make_scorer(confusion_matrix)
}

,但我无法返回混淆矩阵,因为它必须返回一个数字而不是一个数组。如果我尝试它,我会收到以下错误:

ValueError: scoring must return a number, got [[...]] (<class 'numpy.ndarray'>) instead. (scorer=cm)

我想知道是否可以将混淆矩阵存储在全局变量中,但使用没有成功

global cm_list
cm_list.append(confusion_matrix(y_true,y_pred))

在自定义记分器中。

预先感谢您的任何建议。

最佳答案

要返回每个折叠的混淆矩阵,您可以在每次迭代(折叠)中从指标模块调用confusion_matrix,这将为您提供一个数组作为输出。输入将是为每个折叠获得的 y_true 和 y_predict 值。

from sklearn import metrics
print metrics.confusion_matrix(y_true,y_predict)
array([[327582, 264313],
[167523, 686735]])

或者,如果您使用 pandas,那么 pandas 有一个交叉表模块

df_conf = pd.crosstab(y_true,y_predict,rownames=['Actual'],colnames=['Predicted'],margins=True)
print df_conf

Predicted 0 1 All
Actual
0 332553 58491 391044
1 97283 292623 389906
All 429836 351114 780950

关于python - sklearn RandomizedSearchCV提取不同折叠的混淆矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com