使用Python中的逻辑回归的预测向量的精度得分



我正在使用逻辑回归方法进行多类分类。基本上,我知道,如果我使用efceracy_score()函数(例如,来自Sklearn库),它将计算出独特价值与独特价值的准确性:

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

,但我想获得每个标签的顶级逻辑回归预测向量(来自Prective_proba)的cecucy_score_new()函数,并计算出true标签是否在此间隔中:

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

在此示例中,准确性_score_new等于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))

是的,您可以使用sklearn中的make_scorer函数来做到这一点。这个想法是,您可以定义自定义功能,假设它获得了两个参数y_true和y_pred。如果需要,还可以添加任何其他参数。

这是一个示例:自定义评分功能

这是另一个示例:同时使用MSE和R2分数

这个答案也可能有所帮助。

相关内容

  • 没有找到相关文章

最新更新