首页 文章

使用Python中的Logistic回归的预测向量的准确性分数

提问于
浏览
0

我正在使用Logistic回归方法进行多类分类 . 基本上我知道如果我使用accuracy_score()函数(例如,来自sklearn库),它会计算出不同值的准确性,如下所示:

y_pred = [0, 2, 1, 3]
y_true = [0, 1, 2, 3]
accuracy_score(y_true, y_pred)
0.5

但我希望为每个标签(来自predict_proba)获得顶级Logistic回归预测向量的accuracy_score_new()函数,并计算真实标签是否在此区间内,如下所示:

y_pred = [[0,1,3] [2,1,4], [1,2,5] [3,7,9]]
y_true = [0, 1, 2, 3]
accuracy_score_new(y_true, y_pred)
1

此示例中的accuracy_score_new将等于1,因为分类器预测标签位于区间中 . 如何完成此功能?

2 回答

  • 1

    准确性只是(匹配值/总值) .

    所以在你的情况下它将是这样的:

    def accuracy_score_new(y_pred, y_true):
        matched = 0
        for y_p, y_t in zip(y_pred, y_true):
            if y_t in y_p:
                matched = matched + 1
    
        return (matched / (float) len(y_true))
    
  • 1

    是的,您可以使用sklearn中的make_scorer函数执行此操作 . 我们的想法是你定义你的自定义函数,假设它获得了两个参数y_true和y_pred . 如果需要,您还可以添加任何其他参数 .

    这是一个例子:Custom scoring function

    这是另一个例子:Using MSE and R2 score at the same time

    This answer也可能有所帮助 .

相关问题