机器学习
常见
算法
的一
种合理
分类:
生成
/
识别,参数
/
非参数,监督
/
无监督
等。例如,
Scikit-Learn
文档页面通过学习机制对算法进行分组
,
产生类别如:
1
,广义线性模型,
2
,支持向量机,
3
,最近邻居法,
4
,决策树,
5
,神经网络,等等
…
但这
样的分类
并不实用。应用机器学习
时
通常不会
直接
想,
“
今天训练一个支持向量机
”
,
而是
通常有一个最终目标,
例如
利用
某算法
来预测结果或分类观察。
图
1
机器学习技术的机器人大脑
机器学习中,有一种叫做
“
没有免费的午餐
”
的定理,意思是说没有任何一种算法可以完美地解决每个问题,这对于
监督式学习(即预测性建模)
尤其重要。例如,你不能说神经网络总是比决策树好,反之亦然。有很多因素在起作用,比如数据集的大小和结构。因此,应该为您的问题尝试许多不同算法,同时使用数据的
“
测试集
”
来评估性能并选择优胜者。
尝试的算法必须适合
该
问题,这是选择正确的机器学习算法的重要性之所在。打个比方,如果你需要清理你的房子,你可以使用真空吸尘器,扫帚或拖把,但是你不会拿出一把铲子然后开始挖掘。
因此,
本文
介绍另一种算法分类的方法,即通过机器学习所负责的任务来分类。
机器学习
的
适应场景
任务
主要有:
回归、分类、聚类
,推荐、图像识别、启发式学习方式。
1.回归
回归
是一种用于建模和预测连续数值变量的监督学习任务。例如预测房地产价格,股价变动或学生考试分数。
回归任务的特征是具有数字目标变量的
标记数据集
。换句话说,对于每个可用于监督算法的观察结果,您都有一些
“
基于事实
”
的数值
。
1.1
(正则化)线性回归
线性回归
是回归任务中最常用的算法之一。它最简单的形式是试图将一个直的超平面整合到你的数据集中(即当你只有两个变量的时候,你只能得到一条直线)。正如您可能猜到的那样,当数据集的变量之间存在线性关系时,它的效果是非常好的。
实际上,简单的线性回归经常被正则化的同类算法(
LASSO
,
Ridge
和
Elastic-Net
)所忽略。正则化是一种惩罚大系数的技术,以避免过度拟合,它应该调整其惩罚的力度。
优点
:线性回归可以直观地理解和解释,并且可以正则化以避免过度拟合。另外,使用随机梯度下降的新数据可以很容易地更新线性模型。
缺点
:当存在非线性关系时,线性回归表现不佳。它们本身并不具有足够的灵活性来捕捉更为复杂的模式,对于添加正确的交互作用项或者多项式来说可能会非常棘手和耗时。
实现:
Python/R
1.2
回归树(集成)
回归树
(决策树的一种)是通过将数据集反复分割成单独的分支来实现分层化学习,从而最大化每个分割信息的增益效果。这种分支结构允许回归树自然地学习非线性关系。
随机森林(
RF
)和梯度增强树(
GBM
)等集成方法结合了许多单独树的特性。我们不会在这里介绍他们的基本机制,但是在实践中,随机森林通常表现地非常好,而梯度增强树则很难调整,但是后者往往会有更高的性能上限。
优点
:回归树可以学习非线性关系,并且对异常值相当敏锐。在实践中,回归树也表现地非常出色,赢得了许多经典(即非深度学习)的机器学习比赛。
缺点
:无约束的单个树很容易过拟合,因为它们可以保持分支直到它们记住了所有的训练数据。但是,这个问题可以通过使用集成的方式来缓解。