目录
这段时间把《机器学习》看了一遍,总的来说,除了前两章是基础,其余章节都是介绍模型方法,应用场景、理论推导、优化过程、算法等,每章都可独立阅读而不受其他章节影响。
如果只是每一章都看完,顶多就是了解了一种方法,相互之间是割裂的,这样当碰到一个实际问题,仍然无法思路完整的求解,因而有必要在阅读时就要有意识甚至刻意的建立起知识架构。实际上,所谓的机器学习,是面对一个具体的问题,从给定的数据中产生模型的算法,也就是说脱离了实际问题谈机器学习算法是毫无意义的。
参考本书的章节内容,加上自己在读书、工作中的一些理解,简单总结一下基于机器学习的一般性问题解决方法。
前面提到,脱离实际问题谈机器学习是毫无意义的,那么在给定数据集(所谓大数据)和具体问题的前提下,一般解决问题的步骤可以概括如下:
1、数据抽象
将数据集和具体问题抽象成数学语言,以恰当的数学符号表示。这样做自然是为了方便表述和求解问题,而且也更加直观。
2、设定性能度量指标
机器学习是产生模型的算法,一般来说模型都有误差。如果模型学的太好,把训练样本自身的一些特点当成所有样本具有的潜在一般性质,这种情况称为过拟合,这样的模型在面对新样本时就会出现较大误差,专业表述就是导致模型的泛化性能下降。
与之相对的是欠拟合,模型对样本的一般性质都没学好,这种情况一般比较好解决,扩充数据集或者调整模型皆可。
而一般来说无论是机器学习还是现在很火的深度学习,面对的主要问题都是过拟合。那么为了保证模型的泛化能力足够强,必须要有衡量模型泛化能力的评价标准,也就是性能度量的设定。
很显然不同的性能度量会导致不同的评判结果,好的性能度量能够直观的显示模型的好坏,同时也能看到不同模型,或者模型在不同参数下对解决问题的程度好坏。
进一步,有的问题可以直接基于设定的性能度量直接做最优化,得出该问题的一般求解模型。
比如回归任务最常用的性能度量就是均方误差,目标就是让均方误差最小,这就直接转化成了一个最优化问题。
其他一些常用的有错误率与精度、查准率、查全率、ROC与AOC等。
当然更为重要的是,仅仅设定好性能度量是不够的,不同模型或者不同参数下得到的性能度量结果一般是不同的,一般来说不能简单的比较结果,而应该基于统计假设检验来做效果判定。也就是说通过