机器学习常见算法优缺点总结
2016-06-12 13:55
337 查看
K近邻:算法采用测量不同特征值之间的距离的方法进行分类。
优点:
1.简单好用,容易理解,精度高,理论成熟,既可以用来做分类也可以用来做回归;
2.可用于数值型数据和离散型数据;
3.训练时间复杂度为O(n);无数据输入假定;
4.对异常值不敏感
缺点:
1.计算复杂性高;空间复杂性高;
2.样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);
3.一般数值很大的时候不用这个,计算量太大。但是单个样本又不能太少 否则容易发生误分。
4.最大的缺点是无法给出数据的内在含义。
朴素贝叶斯
优点:
1.生成式模型,通过计算概率来进行分类,可以用来处理多分类问题,
2.对小规模的数据表现很好,适合多分类任务,适合增量式训练,算法也比较简单。
缺点:
1.对输入数据的表达形式很敏感,
2.由于朴素贝叶斯的“朴素”特点,所以会带来一些准确率上的损失。
3.需要计算先验概率,分类决策存在错误率。
决策树
优点:
1.概念简单,计算复杂度不高,可解释性强,输出结果易于理解;
2.数据的准备工作简单, 能够同时处理数据型和常规型属性,其他的技术往往要求数据属性的单一。
3.对中间值得确实不敏感,比较适合处理有缺失属性值的样本,能够处理不相关的特征;
4.应用范围广,可以对很多属性的数据集构造决策树,可扩展性强。决策树可以用于不熟悉的数据集合,并从中提取出一些列规则 这一点强于KNN。
缺点:
1.容易出现过拟合;
2.对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征。
3. 信息缺失时处理起来比较困难。 忽略数据集中属性之间的相关性。
Svm
优点:
1.可用于线性/非线性分类,也可以用于回归,泛化错误率低,计算开销不大,结果容易解释;
2.可以解决小样本情况下的机器学习问题,可以解决高维问题 可以避免神经网络结构选择和局部极小点问题。
3.SVM是最好的现成的分类器,现成是指不加修改可直接使用。并且能够得到较低的错误率,SVM可以对训练集之外的数据点做很好的分类决策。
缺点:对参数调节和和函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题。
Logistic回归:根据现有数据对分类边界线建立回归公式,依次进行分类。
优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
缺点:容易欠拟合,分类精度可能不高
EM 期望最大化算法-上帝算法
只要有一些训练数据,再定义一个最大化函数,采用EM算法,利用计算机经过若干次迭代,就可以得到所需的模型。EM算法是自收敛的分类算法,既不需要事先设定类别也不需要数据见的两两比较合并等操作。缺点是当所要优化的函数不是凸函数时,EM算法容易给出局部最佳解,而不是最优解。
【参考文献】
机器学习–判别式模型与生成式模型
http://www.cnblogs.com/fanyabo/p/4067295.html
数据挖掘十大算法—-EM算法(最大期望算法)
http://www.tuicool.com/articles/Av6NVzy
各种分类算法的优缺点 - 学习笔记1.0 - 经管之家(原人大经济论坛)
http://bbs.pinggu.org/thread-2604496-1-1.html
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
http://www.cnblogs.com/tornadomeet/p/3395593.html
吴军.数学之美[M].北京:人民邮电出版社,2014.
Peter Harrington,李锐,李鹏,曲亚东,王斌.机器学习实战[M].北京:人民邮电出版社2013.
李航.统计学习方法[M].北京:清华大学出版社 2012.
杉山将,许永伟.图解机器学习[M].北京:人民邮电出版社2015.
斯坦福大学公开课 :机器学习课程
优点:
1.简单好用,容易理解,精度高,理论成熟,既可以用来做分类也可以用来做回归;
2.可用于数值型数据和离散型数据;
3.训练时间复杂度为O(n);无数据输入假定;
4.对异常值不敏感
缺点:
1.计算复杂性高;空间复杂性高;
2.样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);
3.一般数值很大的时候不用这个,计算量太大。但是单个样本又不能太少 否则容易发生误分。
4.最大的缺点是无法给出数据的内在含义。
朴素贝叶斯
优点:
1.生成式模型,通过计算概率来进行分类,可以用来处理多分类问题,
2.对小规模的数据表现很好,适合多分类任务,适合增量式训练,算法也比较简单。
缺点:
1.对输入数据的表达形式很敏感,
2.由于朴素贝叶斯的“朴素”特点,所以会带来一些准确率上的损失。
3.需要计算先验概率,分类决策存在错误率。
决策树
优点:
1.概念简单,计算复杂度不高,可解释性强,输出结果易于理解;
2.数据的准备工作简单, 能够同时处理数据型和常规型属性,其他的技术往往要求数据属性的单一。
3.对中间值得确实不敏感,比较适合处理有缺失属性值的样本,能够处理不相关的特征;
4.应用范围广,可以对很多属性的数据集构造决策树,可扩展性强。决策树可以用于不熟悉的数据集合,并从中提取出一些列规则 这一点强于KNN。
缺点:
1.容易出现过拟合;
2.对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征。
3. 信息缺失时处理起来比较困难。 忽略数据集中属性之间的相关性。
Svm
优点:
1.可用于线性/非线性分类,也可以用于回归,泛化错误率低,计算开销不大,结果容易解释;
2.可以解决小样本情况下的机器学习问题,可以解决高维问题 可以避免神经网络结构选择和局部极小点问题。
3.SVM是最好的现成的分类器,现成是指不加修改可直接使用。并且能够得到较低的错误率,SVM可以对训练集之外的数据点做很好的分类决策。
缺点:对参数调节和和函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题。
Logistic回归:根据现有数据对分类边界线建立回归公式,依次进行分类。
优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
缺点:容易欠拟合,分类精度可能不高
EM 期望最大化算法-上帝算法
只要有一些训练数据,再定义一个最大化函数,采用EM算法,利用计算机经过若干次迭代,就可以得到所需的模型。EM算法是自收敛的分类算法,既不需要事先设定类别也不需要数据见的两两比较合并等操作。缺点是当所要优化的函数不是凸函数时,EM算法容易给出局部最佳解,而不是最优解。
【参考文献】
机器学习–判别式模型与生成式模型
http://www.cnblogs.com/fanyabo/p/4067295.html
数据挖掘十大算法—-EM算法(最大期望算法)
http://www.tuicool.com/articles/Av6NVzy
各种分类算法的优缺点 - 学习笔记1.0 - 经管之家(原人大经济论坛)
http://bbs.pinggu.org/thread-2604496-1-1.html
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
http://www.cnblogs.com/tornadomeet/p/3395593.html
吴军.数学之美[M].北京:人民邮电出版社,2014.
Peter Harrington,李锐,李鹏,曲亚东,王斌.机器学习实战[M].北京:人民邮电出版社2013.
李航.统计学习方法[M].北京:清华大学出版社 2012.
杉山将,许永伟.图解机器学习[M].北京:人民邮电出版社2015.
斯坦福大学公开课 :机器学习课程
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 经典排序算法之冒泡排序(Bubble sort)代码
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例