想问一下根据图片上的五星分类怎么计算准确率召回率和F值

img


抓取数据的分为5星评分,则可假设0-0.2位一星,0.2-0.4位二 星,0.4-0.6为三星,0.6-0.8 为四星,0.8-1.0为五星, 这样我们可以计算它的准确率,召回率,F值,从而评论我的算法的好坏

你需要确定你的评判的标准是什么,比如某个字段的占比,匹配度,以及其他的一些标准,才能进行更好的评判优化。
可以看一下这篇吧。
https://blog.csdn.net/mousever/article/details/48622163

  • 这篇博客: 遥感(4):卫星遥感图像处理中的 遥感数字图像增强的方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 基于直方图进行反差增强(点处理):线性增强(整体线性、分段线性),非线性(对数函数、指数函数、幂函数)
    • 直方图的平坦化:通过一定的方法使每个灰度级包含有大致相等的像素个数,使得图像中像素数多的灰度级或在图像中所占面积较大的地物细节得到增强,而图像中像素数少的灰度级或在图像中所占面积较小的地物细节得到中和
    • 边缘增强:是指图像上灰度变化较大的地方。不同类地物交界线两侧香园灰度值的差别,要比同类地物邻近像元灰度值的差别大。一般方法是选取适当的算子进行卷积运算
  • 以下回答由chatgpt基于相关博客总结生成:

    针对问题,本文需要进行的步骤如下:

    1. 将数据集中五星评分进行转换,将0-0.2表示为一星,0.2-0.4为二星,0.4-0.6为三星,0.6-0.8为四星,0.8-1.0为五星。
    2. 根据转换后的评分,计算准确率、召回率和F值,来评估算法的好坏。

    针对步骤1,代码如下:

    # 对数据集中的评分进行转换
    def rating_conversion(score):
        if score < 0.2:
            return 1
        elif score < 0.4:
            return 2
        elif score < 0.6:
            return 3
        elif score < 0.8:
            return 4
        else:
            return 5
    
    starbucks['Rating'] = starbucks['Star Rating'].apply(rating_conversion)
    

    针对步骤2,代码如下:

    # 计算准确率、召回率和F值
    from sklearn.metrics import accuracy_score, recall_score, f1_score
    
    y_true = starbucks['Rating']
    y_pred = # 根据具体算法得出的预测值
    
    accuracy = accuracy_score(y_true, y_pred)
    recall = recall_score(y_true, y_pred, average='macro')
    f1 = f1_score(y_true, y_pred, average='macro')
    

    其中,y_pred为根据具体算法得出的预测值,需要根据实际情况进行选择。需要注意的是,准确率、召回率和F值的计算都需要根据真实值和预测值,以及样本数进行计算。此外,为了避免类别不均衡导致结果偏差,通常会采用average='macro'来计算宏观指标。