机器学习的几个方法总结

来源:互联网 发布:线切割编程入门图 编辑:程序博客网 时间:2024/05/01 04:25

Machine Learning

有监督学习SupervisedLearning 1

1.贝叶斯分类器 1

2.决策树 1

3.SVM支持向量机 2

4.Adaboost 2

5.LogisticRegression 3

6.KNN 3

无监督学习UnsupervisedLearning 4

1.聚类 4





有监督学习SupervisedLearning

利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。用来进行学习的材料就是与被识别对象属于同类的有限数量样本。监督学习中在给予计算机学习样本的同时,还告诉计算各个样本所属的类别,通过有限数量样本的学习,使分类器在对无限多个模式进行分类时所产生的错误概率最小。

1.贝叶斯分类器

贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,然后依据一定的规则利用后验概率进行分类。先验概率与后验概率的转换的公式
朴素贝叶斯即最小错误率贝叶斯分类器:取后验概率大的类作为对象所属类;
最小风险贝叶斯分类器:取可能损失小的类作为对象所属类。

2.决策树

决策树(DecisionTree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。

决策树的各部分分别

 根学习的事例集 枝分类的判定条件 叶分好的各个类

3.SVM支持向量机

支持向量机是一种有监督的方法,广泛的应用于统计分类以及回归分析中。SVM的主要思想可以概括为:

  1. 针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能;(例如1维线性不可分时,把它上升到2维,万一可分呢?

b.它基于结构风险最小化理论之上在特征空间中建构最优分割超平面,使得学习器得到全局最优化,并且在整个样本空间的期望风险以某个概率满足一定上界。

SVM一般只能用在二类问题,对于多类问题效果不好

SVM方法是通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题.简单地说,就是升维和线性化.升维,就是把样本向高维空间做映射,一般情况下这会增加计算的复杂性,甚至会引起维数灾难,因而人们很少问津.但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归).一般的升维都会带来计算的复杂化,SVM方法巧妙地解决了这个难题:应用核函数的展开定理,就不需要知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了维数灾难.这一切要归功于核函数的展开和计算理论.

选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:

线性核函数K(x,y)=x·y

多项式核函数K(x,y)=[(x·y)+1]^d

径向基函数K(x,y)=exp(-|x-y|^2/d^2

二层神经网络核函数K(x,y)=tanh(a(x·y)+b

4.Adaboost

Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器 (强分类器)。算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。使用adaboost分类器可以排除一些不必要的训练数据特,并将关键放在关键的训练数据上面。

它用全部的训练样本进行学习Adaboost算法其实是一个简单的弱分类算法提升过程,这个过程通过不断的训练,可以提高对数据的分类能力。整个过程如下:

1. 先通过对N个训练样本的学习得到第一个弱分类器 ;

2. 将 分错的样本和其他的新数据一起构成一个新的N个的训练样本,通过对这个样本的学习得到第二个弱分类器 ;

3. 将 和 都分错了的样本加上其他的新样本构成另一个新的N个的训练样本,通过对这个样本的学习得到第三个弱分类器 ;

4. 最终经过提升的强分类器 。即某个数据被分为哪一类要通过多数表决。



5.LogisticRegression

Logisticregression是线性回归的一种,线性回归是一种回归。回归其实就是对已知公式的未知参数进行估计。在给定训练样本点和已知的公式后,对于一个或多个未知参数,机器会自动枚举参数的所有可能取值(对于多个参数要枚举它们的不同组合),直到找到那个最符合样本点分布的参数(或参数组合)。回归的前提是公式已知,否则回归无法进行。根据这些公式的不同,回归分为线性回归和非线性回归。线性回归中公式都是一次的(一元一次方程,二元一次方程...),而非线性则可以有各种形式(NN次方程,log方程等等)。

LogisticRegression就是一个被logistic方程归一化后的线性回归这种归一化的方法往往比较合理,能够打压过大和过小的结果(往往是噪音)以保证主流的结果不至于被忽视。

6.KNN

K最近邻(k-Nearest NeighborKNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成正比。

该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。因此可以采用权值的方法(和该样本距离小的邻居权值大)来改进。该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。

无监督学习UnsupervisedLearning

无监督学习的情况下,用全部学习样本可以估计混合概率密度函数,若认为每一模式类的概率密度函数只有一个极大值,则可以根据混合概率密度函数的形状求出用来把各类分开的分界面。

1.聚类

将数据集中的数据分成若干类(簇)使类内相似度尽可能大,类间相似度尽可能小 

  1. k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k < n。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。假设有k个群组Si, i=1,2,...,kμi是群组Si内所有元素xj的重心,或叫中心点。从算法的表现上来说,它并不保证一定得到全局最优解,最终解的质量很大程度上取决于初始化的分组。由于该算法的速度很快,因此常用的一种方法是多次运行k平均算法,选择最优解。

具体过程如下:随机选择k个样本作为k个聚类中心,对剩余的每一个样本,将其划分入距离该样本最近的聚类,然后计算每个聚类的均值作为新的中心,然后重复这个过程。



b.最大期望(EMExpectationMaximization)算法是是基于模型的聚类方法,假设样本分布符合高斯混合模型,算法目的是确定各个高斯部件的参数,充分拟合给定数据,并得到一个模糊聚类,即每个样本以不同概率属于每个高斯分布,概率数值将由以上各个参数计算得到。EM算法在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variabl)。

EM算法的具体流程为重复执行以下两个步骤直到收敛

第一步称为E步骤,是根据参数初始值或上一次迭代所得结果值来计算似然函数:,关于条件分布的期望:

第二步称为M步骤,是将似然函数最大化以获得新的参数值,用更新使最大化。

0 0
原创粉丝点击