2018年你应该知道的十大机器学习算法

AiTechYun

编辑:nanan

本文简要介绍一些最常用的机器学习算法,没有代码,没有抽象理论,只有图片和一些如何使用它们的例子。

本文涵盖的算法列表包括:

决策树

随机森林

逻辑回归

支持向量机

朴素贝叶斯

k-最近邻

k-均值

Adaboost

神经网络

Markov

1.决策树

使用某些属性将一组数据分类为不同的组中,在每个节点上执行测试,通过brach判断,进一步将数据拆分两个不同的组,此次等等。测试是基于现有的数据进行的,当添加新数据时,可以将其分类为相应的组。

根据某些特征对数据进行分类,每当过程进入下一步时,就会有一个判断分支,并且判断将数据分为两部分,然后过程继续。当对现有数据进行测试时,新数据可以通过现有数据了解这些问题,当有新的数据出现时,计算机可以将数据归类到正确的分支中。

2.随机森林

从原始数据中随机选择,并形成不同的子集。

矩阵S是原始数据,它包含1-N数据行,而A,B,C是特征,最后一个C代表类别。

从S中创建随机子集,假设我们有M组子集。

我们从这些子集得到M组决策树:将新的数据放入这些树中,我们可以得到M组的结果,并且我们计算出在所有M组中哪个结果是最多的,我们可以把这看作是最终结果。

3.逻辑回归

当预测目标的概率大于0且小于或等于1时,简单的线性模型不能满足预测目标的概率。因为当定义的域不在一定级别时,范围将超过指定的间隔。

我们最好使用这种模型。

那么我们如何得到这个模型呢?

这个模型需要满足两个条件:“大于或等于0”,“小于或等于1”。

我们变换公式,得到逻辑回归模型:

通过计算原始数据,我们可以得到相应的系数。

我们得到逻辑模型图:

4.支持向量机

为了将这两个类从超平面中分离出来,最好的选择是在两个类中最大限度地保留最大边距的超平面。因为Z2>Z1,所以绿色的更好。

使用线性方程表示超平面,线上方的类大于或等于1,另一个类小于或等于-1。

利用图中的方程计算出点到曲面之间的距离:

所以我们得到了下面的总边际的表达式,目的是最大化边际,我们需要做的是最小化分母:

例如,我们用3个点来找到最优的超平面,定义权向量=(2,3)- (1,1):

并获得权重向量(a,2a),将这两个点代入方程:

当a被确认时,使用(a,2a)的结果为支持向量,代入a和w0的方程为支持向量机。

5.朴素贝叶斯

下面是NLP的一个例子:给出一段文字,检查文本的态度是积极的还是消极的:

为了解决这个问题,我们只能看一些单词:

而这些话,只会代表一些单词和它们的数量:

原来的问题是:给你一个句子,它属于哪一类?

通过使用贝叶斯规则,这将是一个简单的问题。

问题是,在这个课堂上,这个句子出现的概率是多少?记住不要忘记方程中的其它两个概率。

例如:“爱”一词的出现概率在正类中为0.1,在负类中为0.001。

6.k-最近邻

当出现一个新的数据时,哪个类别有最接近它的点,它属于哪个类别。

例如:为了区分“狗”和“猫”,我们从“爪子”和“声音”两个特征来判断。圆圈和三角形是已知的类别,“星星”代表疑问:

当K = 3时,这三条线连接最近的3个点,圆圈更多,所以“星”属于“猫”。

7.k-均值

将数据分为3类,粉色部分最大,黄色最小。

选择3、2、1作为默认值,并计算其余数据与默认值之间的距离,并将其分类为具有最短距离的类。

分类后,计算每个类的方法,并将其设置为新中心。

经过几轮之后,我们可以在类不再更改时停止。

8.Adaboost

Adaboost是提高的一种方法。

促进是收集没有得到满意结果的分类器,并生成一个可能具有更好效果的分类器。

如下图所示,树1和树2分别没有好的效果,但是如果我们输入相同的数据,并对结果进行总结,最终的结果会更有说服力。

以adaboost为例,在手写识别中,面板可以提取许多特征,例如开始方向,起点和终点之间的距离等。

在训练机器时,它会得到每个特征的重量,比如2和3,它们的起始点非常相似,所以这个特征对分类没有什么影响,因此它的重量很小。

但是这个角度有很大的可识别性,所以这个特征的重量是很大的。最后的结果将是考虑所有这些特性的结果。

9.神经网络

在NN中,输入可能会被至少分成两个类。

神经网络是由网络和网络连接形成的。

第一层是输入层,最后一层是输出层。

在隐藏层和输出层中,它们都有自己的分类器。

当输入进入网络并被激活时,计算得分将传递到下一层。输出层显示的分数是每个班级的分数。下面的例子得到第1类的结果:

传递给不同节点的相同输入产生不同的分数,这是因为在每个节点中,它具有不同的权重和偏差,这是传播。

10.马尔可夫链

马尔可夫链由状态和转换组成。

例如,基于“快速的棕色狐狸跳过懒狗”获得马尔可夫链。

首先,我们需要将每个单词设置在一个状态下,并且我们需要计算状态转换的概率。

这些是由一个句子计算出来的概率。当你使用大量的文本数据来训练计算机时,你会得到一个更大的状态转换矩阵,比如可以跟随“the”的单词,以及它们对应的概率。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180402A0YJE900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券