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

答:
 平方损失函数:

L=\frac{1}{m}\sum_{i=1}^{m}({y_i}-{\hat{y}_i})^2

       平方损失函数较为容易理解,它直接测量机器学习模型的输出与实际结果之间的距离,{y_i}为学习模型的输出,{\hat{y}_i}为实际结果。

交叉熵损失函数:

L=-\sum_{i=1}^{n}p(x_{i})log(q(x_{i}))

        交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。p(x_i)是真实分布的概率,q(x_i)是模型通过数据计算出来的概率估计。

        从平方损失函数运用到多分类场景下,可知平方损失函数对每一个输出结果都十分看重,而交叉熵损失函数只对正确分类的结果看重。交叉熵损失函数只和分类正确的预测结果有关。而平方损失函数还和错误的分类有关,平方损失函数除了让正确分类尽量变大,还会让错误分类都变得更加平均,但实际中后面的这个调整使没必要的。但是对于回归问题这样的考虑就显得重要了,因而回归问题上使用交叉熵并不适合。

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

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

 答:首先先引入真正例、假正例、假反例、真反例的概念。

预测结果
真实情况TP(真正例)FN(假反例)
FP(假正例)TN(真反例)

精确率(查准率):

P=\frac{TP}{TP+FP}

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

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

P_{3}=\frac{TP_{3}}{TP_{3} +FP_{3} } =\frac{2}{2+1}=\frac{2}{3}

 召回率(查全率)

P=\frac{TP}{TP+FN}

R_{1}=\frac{TP_{1}}{TP_{1} +FN_{1} } =\frac{1}{1+1}=\frac{1}{2}

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

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

F值(综合评价指标):   F值是精确率和召回率的加权调和平均。

F=\frac{(a^{2}+1)P*R}{a^2(P+R)}

当参数α=1时,就是最常见的F1。

F1_1=\frac{(1^2+1)P_1*R_1}{1^2(P_1*R_1)}=\frac{2*\frac{1}{2}*\frac{1}{2}}{1*(\frac{1}{2}+\frac{1}{2})}=\frac{1}{2}

 F1_2=\frac{(1^2+1)P_2*R_2}{1^2(P_2*R_2)}=\frac{2*\frac{1}{2}*\frac{2}{3}}{1*(\frac{1}{2}+\frac{2}{3})}=\frac{4}{7}

F1_3=\frac{(1^2+1)P_3*R_3}{1^2(P_3*R_3)}=\frac{2*\frac{2}{3}*\frac{1}{2}}{1*(\frac{2}{3}+\frac{1}{2})}=\frac{4}{7}

 宏平均(每一类性能指标的算术平均):

宏查准率: 

P_{macro}=\frac{1}{n}\sum_{i=1}^{n}P_{i}=\frac{1}{3}*(\frac{1}{2}+\frac{1}{2}+\frac{2}{3})=\frac{5}{9}

宏查全率: 

R_{macro}=\frac{1}{n}\sum_{i=1}^{n}R_{i}=\frac{1}{3}*(\frac{1}{2}+\frac{2}{3}+\frac{1}{2})=\frac{5}{9}

F1: 

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

 微平均(每个样本的性能指标的算术平均值):

P_{micro}=\frac{ {\textstyle \sum_{i=1}^{n}}TP_{i}}{ {\textstyle \sum_{i=1}^{n}}TP_{i}+ {\textstyle \sum_{i=1}^{n}}FP_{i}}=\frac{1+2+2}{(1+2+2)+(1+2+1)}=\frac{5}{9}

R_{micro}=\frac{ {\textstyle \sum_{i=1}^{n}}TP_{i}}{ {\textstyle \sum_{i=1}^{n}}TP_{i}+ {\textstyle \sum_{i=1}^{n}}FN_{i}}=\frac{1+2+2}{(1+2+2)+(1+1+2)}=\frac{5}{9}

F1_{micro}=\frac{2*P_{micro}*R_{micro}}{\beta ^{2}*P_{micro}+R_{micro}}=\frac{2*\frac{5}{9}*\frac{5}{9}}{\frac{5}{9}+\frac{5}{9}}=\frac{5}{9}

收获:学会了使用公式写博客,比原想的要简单,但是打了好久,大概两个多小时?主要还是用的不够熟练,以后有用到公式的地方就不用截图了。了解了交叉损失函数的计算以及特点。复习了TP等的概念,这次试验可以说获益匪浅。

 参考内容:

平方损失函数与交叉熵损失函数

机器学习:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线

更多推荐