我试图计算一个聚合混乱矩阵来评估我的模型:
cv_results = cross_validate(estimator, dataset.data, dataset.target, scoring=scoring,
cv=Config.CROSS_VALIDATION_FOLDS, n_jobs=N_CPUS, return_train_score=False)
但我不知道如何提取不同褶皱的单一混淆矩阵。在记分器里我可以计算它:
^{pr2}$,但我不能返回comfusion矩阵,因为它必须返回一个数字而不是数组。如果我尝试它,我会得到以下错误:
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))
在一个定制的记分器。在
提前谢谢你的建议。在
要返回每个fold的混淆矩阵,可以从每个迭代(fold)中的metrics模块调用confusion_matrix,这将为您提供一个数组输出。输入将是一个“y”真值,并且y“U”预测了每个折叠的值。在
或者,如果您使用pandas,那么pandas有一个交叉表模块
^{pr2}$问题是,在RandomizedSearchCV完成后,我无法访问估计器,因为我不知道RandomizedSearchCV实现了一种预测方法。以下是我的个人解决方案:
相关问题 更多 >
编程相关推荐