NNDL 作业2 第二章课后题

习题2-1 

        分析为什么平方损失函数不适用于分类问题,交叉熵损失函数不适用于回归问题

平方损失函数(Mean Squared Error,MSE)是回归问题中常用的一种损失函数。其定义为预测值与真实值之差的平方和的均值,即:

                                            L(y,f(x:\Theta ))=1/2(y-f(x:\Theta ))^{2}

分类问题的输出是离散的,而平方损失函数是一个连续、可导的函数,它的值会随着预测值与真实值之间的差距的平方的增大而增大。对于分类问题,我们需要的是一个指示函数,它将分类结果与真实结果进行比较,确定是否正确分类。这意味着,对于正确分类和错误分类,损失函数应该有明显的差别,而平方损失函数无法提供这种区分。例如,如果我们使用平方损失函数作为损失函数来进行二分类,那么无论分类结果是0或1,损失函数都会有一个值。这意味着,对于错误分类的样本和正确分类的样本,损失函数的值是相同的,这在分类问题中是不合适的。因此,平方损失函数不适用于分类问题。

(平方损失函数计算的是预测值和真实值之差的平方,如果有两个真实值和预测值之差的绝对值相同,那么他们的损失函数的值就是相同的,这样就无法将这两个数据分开,所以,平方损失函数不适用于分类问题。)

交叉熵损失函数(Cross Entropy Loss)是分类任务中的一种常见的损失函数。交叉熵损失函数是测量模型输出的概率分布与真实概率分布之间的距离,即:

                         L(y,f(x;\theta ))=-y_{^{T}}logf(x;\theta ) =-\sum _{c=1}^{C}y_{c}logf(x;\theta )

对于回归问题,目标变量是一个连续的数值,而且通常不存在一个明确的概率分布。在分类问题中,模型的预测结果是一个概率分布,表示输入样本属于不同类别的概率。而实际结果是一个one-hot编码的向量,表示样本属于哪个类别。损失函数通常用于分类问题,其中目标变量是离散的标签,这在回归问题中是不合适的。因此,交叉熵损失函数不适用于分类问题。

(交叉熵损失函数计算的是样本属于不同类别的概率,通过比较不同类别的概率对其分类,这个概率值是离散的,不适用于分类问题。)

习题2-12

对于一个三分类问题,数据集的真实标签和模型的预测标签如下: 

分别计算模型的精确率、召回率、F1值以及它们的宏平均和微平均.

                              

 精确率,也叫精度或查准率,类别c的查准率是所有预测为类别c的样本中预测正确的比例:     

                                                 P_{c}= \frac{TP_{c}}{TP_{c}+FP_{c}}

召回率,也叫查全率,类别c的查全率是所有真实标签类别为类别c的样本中预测正确的比例:

                                                R_{c}=\frac{TP_{c}}{TP_{c}+FN_{c}}

F值是一个综合指标,为精确率和召回率的调和平均:
                                                F_{c}=\frac{(1+\beta ^{2})*P_{c}*R_{c}}{\beta ^{2}*P_{c}+R_{c}}

β=1时的F值称为F1值,是精确率和召回率的调和平均。

宏平均每一类的性能指标的算数平均值:

                                                P_{macro}=\frac{1}{C} \sum_{c=1}^{C}P_{c}

                                               R_{macro}=\frac{1}{C} \sum_{c=1}^{C}R_{c}         

                                               F1_{macro}=\frac{2*P_{macro}*R_{macro}}{P_{macro}+R_{macro}}

微平均每一个样本的性能指标的算数平均值:

                                               P_{macro}=\frac{\sum_{c=1}^{C}TP_{c}}{\sum_{c=1}^{C}TP_{c}+\sum_{c=1}^{C}FP_{c}}

                                               R_{macro}=\frac{\sum_{c=1}^{C}TP_{c}}{\sum_{c=1}^{C}TP_{c}+\sum_{c=1}^{C}FN_{c}}      

                                               F1_{macro}=\frac{2*P_{macro}*R_{macro}}{P_{macro}+R_{macro}}

解题过程:     

         分析数据得到混淆矩阵:

y=1         y=2     y=3
 \hat{y}=1101
\hat{y}=2121
\hat{y}=3012

      精确率: 

                   P_{1}=\frac{1}{1+0+1}=\frac{1}{2}

                   P_{2}=\frac{2}{1+2+1}=\frac{1}{2}

                   P_{3}=\frac{2}{0+1+2}=\frac{2}{3}

      召回率:

                 R_{1}=\frac{1}{1+1+0}=\frac{1}{2} 

                 R_{2}=\frac{2}{0+2+1}=\frac{2}{3} 

                 R_{3}=\frac{2}{1+1+2}=\frac{1}{2} 

      F1值:

               F1_{1}=\frac{2*P_{1}*R_{1}}{1*P_{1}+R_{1}}=\frac{1}{2}

               F1_{2}=\frac{2*P_{2}*R_{2}}{1*P_{2}+R_{2}}=\frac{4}{7}

               F1_{3}=\frac{2*P_{3}*R_{3}}{1*P_{3}+R_{3}}=\frac{4}{7}

      宏平均:  

                P_{macro}=\frac{1}{3}*\left ( \frac{1}{2}+\frac{1}{2}+\frac{2}{3} \right )=\frac{5}{9}

                R_{macro}=\frac{1}{3}*\left ( \frac{1}{2}+\frac{2}{3}+\frac{1}{2} \right )=\frac{5}{9}         

               F1_{macro}=\frac{2*\frac{5}{9}*\frac{5}{9}}{\frac{5}{9}+\frac{5}{9}}=\frac{5}{9}

      微平均:              

                P_{macro}=\frac{1+2+2}{5+4}=\frac{5}{9}

               R_{macro}=\frac{1+2+2}{5+4}=\frac{5}{9}         

               F1_{macro}=\frac{2*\frac{5}{9}*\frac{5}{9}}{\frac{5}{9}+\frac{5}{9}}=\frac{5}{9}

精确率、召回率都是对每个类进行性能估计,宏平均和微平均都是计算分类算法在所有类别上的总体精确率、召回率和F1值,但是宏平均针对的是每一类,微平均针对的是每一个样本。

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值