gpt4 book ai didi

Python Scikit - 调用 sklearn.metrics. precision_recall_curve 时输入形状错误

转载 作者:行者123 更新时间:2023-11-30 09:32:06 33 4
gpt4 key购买 nike

我正在尝试为 CatBoostClassifier 构建 PRC(精确召回曲线) 。

但是当我打电话sklearn.metrics.precision_recall_curve(y_test, y_score)时我得到ValueError: bad input shape (11912, 2) .

我当前的方法可能有什么问题?我需要在这里修复什么才能提供正确的形状?

import sklearn 
from sklearn import metrics
y_score = model.predict_proba(X_test)
prc_auc = sklearn.metrics.precision_recall_curve(y_test, y_score)

//这是我构建模型的方法

model = CatBoostClassifier( 
iterations=50,
random_seed=63,
learning_rate=0.15,
custom_loss=['Accuracy', 'Precision', 'Recall', 'AUC']
)

model.fit(
X_train, y_train,
cat_features=cat_features,
eval_set=(X_test, y_test),
verbose=10,
plot=True
);

最佳答案

简单的答案是 CatBoostClassifier.model.predict_proba 返回一个二维数组; sklearn.model. precision_recall_curve 需要一个一维数组(或一个包含一列的二维数组,以两者为准)。

CatBoostClassifier 的文档表示 predict_proba() 返回 numpy.array,并且没有提供有关此方法的其他信息。所以我现在讨厌这个包的文档。

浏览一些注释不当的代码让我:

    if prediction_type == 'Probability':
predictions = np.transpose([1 - predictions, predictions])
return predictions

我猜测第 0 列是第 0 类的概率,第 1 列是第 1 类的概率。因此,请选择与您的测试相符的那些内容并仅使用该列。

prc_auc = sklearn.metrics.precision_recall_curve(y_test, y_score[:, 1])

关于Python Scikit - 调用 sklearn.metrics. precision_recall_curve 时输入形状错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53711790/

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