不知道机器学习的人生是不完整的(内附10种机器学习算法)
发布时间:
2017-03-30
科技的发展与进步,似乎总能超乎我们的想象。从使用大型计算机,到个人电脑,再到现在的云计算、大数据……而未来,机器学习似乎要成为引领未来科技的主导力量~因此,小梦不成熟的认为:不了解或不知道机器学习的人生是不!完!整!的!

科技的发展与进步,似乎总能超乎我们的想象。从使用大型计算机,到个人电脑,再到现在的云计算、大数据……而未来,机器学习似乎要成为引领未来科技的主导力量~因此,小梦不成熟的认为:
不了解或不知道机器学习的人生是
不!完!整!的!

究竟什么是机器学习?
字面上看,它不禁让人联想到一群机器人排排坐上自习的科幻场景,然而,实际上"机器学习"指的是让计算机具备像人一样的学习能力高端技术,从堆积如山的数据中找寻到有用的信息和知识。哇哦,听起来是不是像一种黑科技~~so cool~~
如何进行机器学习?小梦之前从知乎上看过一段特别有意思的话,意思大致如下:
"1+1等于几 ?"
"50"
"笨蛋,多了"
"1+2等于几?"
"20"
"笨蛋,多了"
"3+4等于几"
"7"
"笨蛋,对了"
"6+9等于几"
"13"
"笨蛋,少了"
很多很多次以后……
"2+2等于几"
"4"
"4+5等于几"
"9"
这就是机器学习,准确来说是最常见的一种,监督学习。最开始的几步是对于模型的训练,"多了"或"少了"可以理解为训练时的误差,模型根据误差调整自身参数。这差不多是机器学习最通俗易懂的解释咯~
今天主要的内容呢,是给各位亲亲说说机器学习的主要算法。总的来说,最常用的机器学习算法可以分为10种:线性回归、逻辑回归、决策树 、SVM、朴素贝叶斯、K最近邻算法、K均值算法、随机森林算法、降维算法、Gradient Boost和Adaboost算法。别着急,接下来小梦要逐一为大家介绍哈!由于篇幅较长,小梦把内容分为两部分,今天,咱们先来说说前五种~~
NO.1

线性回归
线性回归通常用于根据连续变量估计实际数值(房价、呼叫次数、总销售额等)。我们通过拟合最佳直线来建立自变量和因变量的关系。这条最佳直线叫做回归线,并且用 Y= a *X + b 这条线性等式来表示。
理解线性回归的最好办法是回顾一下童年。假设在不问对方体重的情况下,让一个五年级的孩子按体重从轻到重的顺序对班上的同学排序,你觉得这个孩子会怎么做?他(她)很可能会目测人们的身高和体型,综合这些可见的参数来排列他们。这是现实生活中使用线性回归的例子。实际上,这个孩子发现了身高和体型与体重有一定的关系,这个关系看起来很像上面的等式。
在这个等式中:
Y:因变量
a:斜率
x:自变量
b :截距
系数 a 和 b 可以通过最小二乘法获得。
参见下例。我们找出最佳拟合直线 y=0.2811x+13.9。已知人的身高,我们可以通过这条等式求出体重。

线性回归的两种主要类型是一元线性回归和多元线性回归。一元线性回归的特点是只有一个自变量。多元线性回归的特点正如其名,存在多个自变量。找最佳拟合直线的时候,你可以拟合到多项或者曲线回归。这些就被叫做多项或曲线回归。

NO.2

逻辑回归
别被它的名字迷惑了!这是一个分类算法而不是一个回归算法。该算法可根据已知的一系列因变量估计离散数值(比方说二进制数值 0 或 1 ,是或否,真或假)。简单来说,它通过将数据拟合进一个逻辑函数来预估一个事件出现的概率。因此,它也被叫做逻辑回归。因为它预估的是概率,所以它的输出值大小在 0 和 1 之间(正如所预计的一样)。
让我们再次通过一个简单的例子来理解这个算法。
假设你的朋友让你解开一个谜题。这只会有两个结果:你解开了或是你没有解开。想象你要解答很多道题来找出你所擅长的主题。这个研究的结果就会像是这样:假设题目是一道十年级的三角函数题,你有 70%的可能会解开这道题。然而,若题目是个五年级的历史题,你只有30%的可能性回答正确。这就是逻辑回归能提供给你的信息。
从数学上看,在结果中,几率的对数使用的是预测变量的线性组合模型。
odds= p/ (1-p) = probability of event occurrence / probability of not event occurrence
ln(odds) = ln(p/(1-p))
logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3....+bkXk
在上面的式子里,p 是我们感兴趣的特征出现的概率。它选用使观察样本值的可能性最大化的值作为参数,而不是通过计算误差平方和的最小值(就如一般的回归分析用到的一样)。
现在你也许要问了,为什么我们要求出对数呢?简而言之,这种方法是复制一个阶梯函数的最佳方法之一。

NO.3

决策树
这是很多攻城狮最喜爱也是最频繁使用的算法之一。这个监督式学习算法通常被用于分类问题。令人惊奇的是,它同时适用于分类变量和连续因变量。在这个算法中,我们将总体分成两个或更多的同类群。这是根据最重要的属性或者自变量来分成尽可能不同的组别。想要知道更多,可以阅读:简化决策树。

在上图中你可以看到,根据多种属性,人群被分成了不同的四个小组,来判断 "他们会不会去玩"。为了把总体分成不同组别,需要用到许多技术,比如说 Gini、Information Gain、Chi-square、entropy。
理解决策树工作机制的最好方式是玩Jezzball,一个微软的经典游戏(见下图)。这个游戏的最终目的,是在一个可以移动墙壁的房间里,通过造墙来分割出没有小球的、尽量大的空间。

因此,每一次你用墙壁来分隔房间时,都是在尝试着在同一间房里创建两个不同的总体。相似地,决策树也在把总体尽量分割到不同的组里去。
NO.4

支持向量机
这是一种分类方法。在这个算法中,我们将每个数据在N维空间中用点标出(N是你所有的特征总数),每个特征的值是一个坐标的值。
举个例子,如果我们只有身高和头发长度两个特征,我们会在二维空间中标出这两个变量,每个点有两个坐标(这些坐标叫做支持向量)。

现在,我们会找到将两组不同数据分开的一条直线。两个分组中距离最近的两个点到这条线的距离同时最优化。

上面示例中的黑线将数据分类优化成两个小组,两组中距离最近的点(图中A、B点)到达黑线的距离满足最优条件。这条直线就是我们的分割线。接下来,测试数据落到直线的哪一边,我们就将它分到哪一类去。
NO.5

朴素贝叶斯
在预示变量间相互独立的前提下,根据贝叶斯定理可以得到朴素贝叶斯这个分类方法。用更简单的话来说,一个朴素贝叶斯分类器假设一个分类的特性与该分类的其它特性不相关。举个例子,如果一个水果又圆又红,并且直径大约是 3 英寸,那么这个水果可能会是苹果。即便这些特性互相依赖,或者依赖于别的特性的存在,朴素贝叶斯分类器还是会假设这些特性分别独立地暗示这个水果是个苹果。
朴素贝叶斯模型易于建造,且对于大型数据集非常有用。虽然简单,但是朴素贝叶斯的表现却超越了非常复杂的分类方法。
贝叶斯定理提供了一种从P(c)、P(x)和P(x|c) 计算后验概率 P(c|x) 的方法。请看以下等式:
10
在这里,
P(c|x) 是已知预示变量(属性)的前提下,类(目标)的后验概率
P(c) 是类的先验概率
P(x|c) 是可能性,即已知类的前提下,预示变量的概率
P(x) 是预示变量的先验概率
例子:让我们用一个例子来理解这个概念。在下面,我有一个天气的训练集和对应的目标变量"Play"。现在,我们需要根据天气情况,将会"玩"和"不玩"的参与者进行分类。让我们执行以下步骤。
步骤1:把数据集转换成频率表。
步骤2:利用类似"当Overcast可能性为0.29时,玩耍的可能性为0.64"这样的概率,创造 Likelihood 表格。
11
步骤3:现在,使用朴素贝叶斯等式来计算每一类的后验概率。后验概率最大的类就是预测的结果。
问题:如果天气晴朗,参与者就能玩耍。这个陈述正确吗?
我们可以使用讨论过的方法解决这个问题。于是 P(会玩 | 晴朗)= P(晴朗 | 会玩)* P(会玩)/ P (晴朗)
我们有 P (晴朗 |会玩)= 3/9 = 0.33,P(晴朗) = 5/14 = 0.36, P(会玩)= 9/14 = 0.64
现在,P(会玩 | 晴朗)= 0.33 * 0.64 / 0.36 = 0.60,有更大的概率。
朴素贝叶斯使用了一个相似的方法,通过不同属性来预测不同类别的概率。这个算法通常被用于文本分类,以及涉及到多个类的问题。
今天的技术讲堂就到这里,童鞋们可以去消化下哈!欲知后五种机器学习算法,敬请关注下一篇~~
关键词: