通过这篇文章,你可以对机器学习的常见算法有一个常识性的了解。没有代码,没有复杂的理论推导,一张图就知道这些算法是什么。它们是Howtoapplyit,例子主要是分类问题。每个算法我看了几个视频,挑出最清晰有趣的,方便科普。以后有时间再深入分析一个算法。今天的算法如下:决策树随机森林算法逻辑回归SVM朴素贝叶斯K最近邻算法K均值算法Adaboost算法神经网络马尔可夫1.决策树根据一些特征进行分类,每个节点提出一个问题,并通过判断,将数据分为两类,然后继续提问。这些问题是在已有数据的基础上学习的,当输入新的数据时,可以根据树上的问题将数据划分到合适的叶子上。2、随机森林从源数据中随机选取数据,组成若干个子集:S矩阵为源数据,有1-N条数据,A、B、C为特征,最后一列C为类别:M个子集从S矩阵中随机生成:这M个子集得到M个决策树:将新数据放入这M棵树中,得到M个分类结果,统计看哪个类别的预测数最多,将这个类别作为最后的预测结果。3.Logistic回归当预测目标是概率时,取值范围需要大于等于0小于等于1,这时候简单的线性模型做不到,因为当定义域为不在一定范围内,值域也超出指定范围。所以这个时候最好需要这样一个模型:那么如何得到这样一个模型呢?这个模型需要满足“大于等于0”和“小于等于1”两个条件。对于大于等于0的模型,可以选择绝对值,平方值,这里使用指数函数,必须大于0;如果小于等于1,用除法,分子是自己,分母是自己加1,那么一定小于1。再变换一下,得到逻辑回归模型:对应的系数可以是通过对源数据的计算得到:最后得到logistic图:4.SVM需要将两种类型分开,想要得到一个超平面,最优的超平面是直到两种类型的margin达到最大值。边距是超平面和离它最近的点之间的距离。如下图,Z2>Z1,所以绿色超平面比较好。将这个超平面表示为一个线性方程,直线上方一个大于等于1,一个小于等于-1:点到面的距离按图中公式计算:所以totalmargin的表达式如下,目标是最大化这个margin,需要最小化分母,所以就变成了一个优化问题:比如三点,找到最优超平面,定义weightvector=(2,3)-(1,1):得到权重向量为(a,2a),将两点代入方程,代入(2,3)及其值=1,代入(1,1)及其value=-1,求出a并截取时刻w0的值,然后得到超平面的表达式。得到a后,代入(a,2a)得到支持向量,将a和w0代入超平面的方程就是支持向量机。5.朴素贝叶斯在NLP中给出一个应用:给一段文本,返回情感分类,这段文本的态度是积极的还是消极的:为了解决这个问题,只能看其中的一些词:thistext,the仅由一些单词及其计数表示:原问题是:给定一个句子,它属于哪一类?通过贝叶斯规则就变得更简单更容易得到问题了:问题就变成了,Thissentenceinthiscategory出现的概率是多少?当然,别忘了公式中的另外两个概率。例子:“love”这个词在positive的情况下出现的概率是0.1,在negative的情况下出现的概率是0.001。6、当K近邻算法给出一个新的数据时,在距离它最近的k个点中,哪个类别多,这个数据就属于哪个类别。例子:区分“猫”和“狗”,如果用“爪子”和“声音”这两个特征来判断,圆形和三角形是已知的分类,那么这个“星星”代表的是哪一类呢?当?k=3时,这三条线连接的点是最近的三个点,所以圆圈比较多,所以这个星是猫的。7、K-means算法首先将一组数据分为三类,粉色值大,黄色值小。一开始先初始化,选择最简单的3,2,1作为各种类型的初始值。剩下的数据中,三个初始值分别计算距离,然后归类到离它最近的初始值的类别中。分类后,计算每类的平均值作为新一轮的中心点:几轮后,分组不再变化,可以停止:8.Adaboostadaboost是boosting的方法之一。Bosting就是把几个分类效果不好的分类器组合起来得到一个更好的分类器。下图中,左右两棵决策树单独来看效果不是很好,但是将相同的数据放入其中,将两个结果相加会增加可信度。以adaboost为例,在手写识别中,可以在画板上抓取到很多特征,比如起点的方向,起点到终点的距离等等。在训练过程中,将获得每个特征的权重。比如2和3的开头很相似。这个特征对分类影响不大,权重会小一些。而这个alpha角具有很强的识别性,这个特征的权重会比较大,最终的预测结果是这些特征综合考虑的结果。9.网络神经网络NeuralNetworks适用于一个输入,可能至少分为两类:NN由几层神经元和它们之间的连接组成。第一层是输入层,最后一层是输出层。隐藏层和输出层都有自己的分类器。输入被输入到网络中并被激活,计算出的分数被传递给下一层激活后续的神经层。最后,输出层节点上的分数代表属于每个类别的分数。下图例子得到分类结果为class1;同样的输入传递到不同的节点,之所以会得到不同的结果,是因为每个节点的权值和偏置不同,这就是前向传播。10.马尔可夫链由状态和转移组成。例如,根据句子'thequickbrownfoxjumpsoverthelazydog',得到马尔可夫链。步骤,首先给每个词设置一个状态,然后计算状态间转移的概率。这是一个句子计算出来的概率。当你使用大量的文本进行统计时,你会得到一个更大的状态转移矩阵,比如the之后可以连接的单词,以及对应的概率。生活中,键盘输入法的替代结果也是同样的原理,模型会更高级。
