确定执行的优先级:
误差分析:
在设计一个复杂的机器学习系统时,可以先用最简单的算法去快速实现它,然后用交叉验证集来看看自己的算法需要在哪些方面提高,除此之外,还可以进行误差分析,来针对性的提高我们的算法。
不对称分类的误差评估:
类偏斜情况表现为我们的训练集中有非常多的同一种类的实例,只有很少或没有其他类的实例。
这样我们并不能简单的从模型的准确度来度量我们的算法是否是一个好的算法。
Precision和Recall:精确度和召回率。
以癌症分类为例:假设y=1表示有癌症,y=0表示没有癌症。
我们的精确度的定义为:TP/(TP+FN),即预测为阳性且是阳性的人占所有预测为阳性的人的比值,显然精确度越高越好。
召回率的定义为:TP/(TP+FP),即预测为阳性且是阳性的人占所有阳性的人的比值,显然召回率越高也越好。
精确度和召回率的权衡:
在实际应用中,人们更希望达到精确度和召回率的一个权衡,比如在面对逻辑回归问题中,我们如果改变输出判定的阈值,模型相应的精确度和召回率就会发生改变,那么如何选择一个最佳的阈值,或者说如何权衡精确度和召回率之间的关系呢?
下图是精确度和召回率大致的关系图,可以看到:在阈值很高的时候,这时候模型的精确度是非常高的,但是相应的召回率却很低,如果阈值很低的话,召回率会很高,但是相应的精确度就会很低。
因此在实际中,我们选择F值来定量的评估一个模型的相对优良程度。其中F为:
在实际模型选择的过程中,我们选择使得F值最大的那个模型就是比较好的模型。
机器学习数据:
机器学习当中有一句有趣的话:在机器学习当中,并不是拥有最好的模型的那个人赢了,而是那个拥有更多数据的人赢了。
通常来说,训练一个模型时,拥有越多的数据是约好的,但是前提是该模型当中的特征值已经足够预测相应的输出;
一种检查办法是,可以先人为判定,如果输入这些特征值,人类能否有信心预测出一个结果,如果可以,代表这些特征值可能已经够了。
如果我们的特征值已经有足够的信息量,且我们有一类很好的函数,这是我们能够保证低偏差的关键,如果我们还有大量的数据集的话,我们又能够保证我们的我们的学习算法拥有较低的方差,那么训练出来的将是一个性能非常高的算法。
下面是一个题目: