机器学习快速入门:你必须知道的三大算法

96
阿里云云栖社区 96daa9ff 5e2d 4ab8 9769 04a0eb468046
2017.10.23 15:54* 字数 2507

看着“机器学习”这几个字天天霸占新闻头条,热爱学习的你,也上网搜索了一下“机器学习模型”,5分钟后就被各种术语吓坏了。想入门,不如先熟悉下面的这几个算法,这些算法能解决数据科学中的很多问题。

监督学习 vs 非监督学习

基本上,所有的机器学习问题都可以分为监督学习和非监督学习。

在监督学习中,算法会获得一个数据库作为输入,我们也知道正确的输出该是什么样子。回归分析和分类问题都属于监督学习。

在非监督学习来中,我们也不知道正确的输出该是什么样子,而是从数据中寻找结构。聚类算法是非监督学习的代表。

下面我们来看几个真实的例子。

例子1

假设你是个地产商。你有以往售出楼房的数据--总面积、有几间卧室等等——以及它们的售价。你拿到一幢新房的时候,就能根据手头的数据,预测新房的售价。这是一个监督学习问题,更具体来说,是一个回归问题。

例子2

假设你是一个医生。你有很多人的健康数据——各项生理指标、遗传因素、以及他们是非患有某一种疾病的测试结果。测试结果可以用二进制表示为:1代表患有疾病,0代表未患有疾病。当你遇到一个新的测试者,输入他的数据,你就能预测他是否患有疾病。因为输出的形式是已知的(1或者0),这也是监督学习,更具体来说,是分类问题。

例子3

假设你是一个市场经理。你有一些客户的资料——客户年龄、购买产品、购买金额等——你希望找出哪些客户属于相近的群体,可能给他们一些特殊优惠。以上的客户资料可以作为算法的输入,不过你不知道输出会是什么样的,因此这是非监督学习。

现在,我们来看看更具体的算法。

回归

回归不只是一种监督学习技术,而是一个包含很多中技术的重要大类。其中心要素是,我们能根据一些输入变量,预测目标变量。回归中最常见的就是线性回归和逻辑回归。

线性回归

输入变量和目标变量的关系是一条直线。例如,我们有两个输入变量 X1 和 X2,目标变量为 Y,其关系的数学表达为:

Y = a x X1 + b x X2 + c

如果已知 X1 和 X2 的值,我们可以调整 a、b 和 c 的值,让 Y 值与实际结果尽可能接近。

举个例子。鸢尾花数据库统计了不同类型的花中,花瓣与花萼的大小。我们可以使用 R 软件实现一个线性分析,基于花瓣的长 (PetalLength) 和宽 (PetalWidth),预测花萼的大小 (SepalLength)。

SepalLength = a x PetalWidth + b x PetalLength + c

对应的代码如下:


线性回归的结构如下图所示。图中的点代表原始数据,蓝线代表最适合的回归线,a = -0.31955,b = 0.54178,c = 4.19058。现在,我们能根据新的花瓣长、宽信息,预测花萼的大小了。


逻辑回归

逻辑回归的大意与线性回归类似,不同的是,逻辑回归不是一条直线。

逻辑回归的数学表达如下:

Y = g(a x X1 + b x X2)

其中 g( ) 是一个逻辑方程。

由于逻辑函数的特性,Y 是[0,1]之间的一个连续值,可以看成是一个事件发生的可能性。

举个例子。我们有一个汽车的数据库,包括汽油消耗量、汽车设计的各项参数以及32个汽车型号的表现性能。如果已知一辆汽车的 V/S 和耗油量(mpg),我们能预测这辆车是自动变速(am = 0)还是手动变速(am = 1)的可能性:

am = g( a x mpg + b x vs + c)

所需代码如下:


结果显示住以下图表中。其中,点代表原始数据,蓝色线代表最适合的逻辑回归线, a = 0.5359,b = -2.7957, c = -9.9183。

如图所示,逻辑回归的输出只在[0,1]的范围内。


决策树

决策树分为回归和分类两种,可以用在监督学习问题中。

决策树模拟人们做决定的过程,因此非常符合直觉,可以见下图:


基于这样的一个决策树,算法可以决定按照哪一条路走下去。

来一个例子:我们使用 readingSkills 数据库,包括学生的信息以及他们的成绩。我们可以基于多项信息——包括测试成绩、年龄、甚至学生的鞋子尺码等——我们把学生分类为母语(nativeSpeaker = 1)和非母语(nativeSpeaker = 0)。

要用 R 完成这项预测,我们得先安装 party 安装包。


如下所示,第一个分岔标准是测试成绩,因为这与要预测的目标变量非常相关;而鞋子尺码根本就没被考虑过,因为这对预测语言能力毫无帮助。


聚类算法

现在,我们来看看属于非监督学习方法之一的聚类算法。

如果我们有一些初始数据,我们可以把它们分组,每一组的数据都会与其他组不同。我们要学习的算法叫做“k-平均”算法,是最常见的聚类方法之一。

我们再使用之前用过的鸢尾花数据库,将其中的信息制成下图:


x 轴是花瓣长度,y 轴是花瓣宽度。

依据花瓣的数据,我们将数据分为三组,也就是说此处 k = 3。

总体来说,k-平均算法的过程包含以下几步:

1.初始步骤:在 k = 3 的情况下,算法随机选择3个点,作为每一个组的中心点;

2.聚类分组:算法会一个个处理数据点,将每一个点分配到最近的组;

3.移动中心点:分配分组后,每一个组的中心点移动到组内所有点到平均值。

第2、3步会一直重复,直到分组情况不再有变化。用 R 实现很简单,以下是所需的代码:


我们可以看到数据基于花瓣的大小分为了三组。


要注意的是,在任何聚类问题中,要解读分组的意义需要具备这个领域内的专业知识。如果你不懂植物学,你可能不会发现算法把花分成了三个类别:Setosa、Versicolor 和 Virginica。

我们可以根据花的类别再进行一次分组,可以看到非常相似:


算法

总结

我们讨论了回归(线性和逻辑)、决策树和 k-平均聚类。每一种算法都有哪些优点?遇到问题的时候该选择哪一种?

首先,如果选对了适合的问题,这些算法可以很强大。

其次,你得知道你想要的是什么,是计算强度、计算时间还是可解读性?

如果只考虑算法的预测能力,那么以下总结了每一种算法的优缺点:

1.线性回归

优点:

- 容易执行和解读;

- 如果是实数,就能提供预测。

缺点:

- 有很强的统计假设;

- 数据的等分散性,也就是说,不管预测变项分数高低,效标变项的估计标准误均一样大;

- 残差的独立性。

2. 逻辑回归

优点:

- 方差低;

- 提供了结果的可能性。

缺点:

- 偏见高。

3. 决策树

优点:

- 视觉上很容易理解;

- 能轻松处理类别信息;

- 很适合与特征轴平行的问题。

缺点:

- 容易过度拟合。

4. k-平均

优点:

- 很适合大量的数据;

- 容易执行和解读。

缺点:

- 对于超球聚类表现不佳;

- 结果取决于选择什么样的 k。

好,现在可以选一种算法,应用在你的机器学习问题上了!

作者简介


Eleni Markou 是数据服务平台 Blendo 的数据分析师,她的更多文章可见https://www.blendo.co/blog/。

文章原标题《3 Machine Learning Algorithms You Need to Know》,作者: Eleni Markou,译者:炫。

文章为简译,更为详细的内容,请查看原文

本文由用户为个人学习及研究之目的自行翻译发表,如发现侵犯原作者的版权,请与社区联系处理yqgroup@service.aliyun.com

日记本