机器学习(三)常见算法优缺点
来源:互联网 发布:网络运维事迹材料 编辑:程序博客网 时间:2024/06/05 21:00
1. K近邻
算法采用测量不同特征值之间的距离的方法进行分类。
1.1 优点
简单好用,容易理解,精度高,理论成熟,既可以用来做分类也可以用来做回归;
可用于数值型数据和离散型数据;
训练时间复杂度为O(n);无数据输入假定;
对异常值不敏感。
1.2 缺点
计算复杂性高;空间复杂性高;
样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);
一般数值很大的时候不用这个,计算量太大。但是单个样本又不能太少 否则容易发生误分。
最大的缺点是无法给出数据的内在含义。
2. 朴素贝叶斯
2.1优点
生成式模型,通过计算概率来进行分类,可以用来处理多分类问题;
对小规模的数据表现很好,适合多分类任务,适合增量式训练,算法也比较简单。
2.2缺点
对输入数据的表达形式很敏感;
由于朴素贝叶斯的“朴素”特点,所以会带来一些准确率上的损失;
需要计算先验概率,分类决策存在错误率。
3. 决策树
3.1 优点
概念简单,计算复杂度不高,可解释性强,输出结果易于理解;
数据的准备工作简单, 能够同时处理数据型和常规型属性,其他的技术往往要求数据属性的单一;
对中间值得确实不敏感,比较适合处理有缺失属性值的样本,能够处理不相关的特征;
应用范围广,可以对很多属性的数据集构造决策树,可扩展性强。决策树可以用于不熟悉的数据集合,并从中提取出一些列规则 这一点强于KNN。
3.2 缺点
容易出现过拟合;
对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征;
信息缺失时处理起来比较困难。 忽略数据集中属性之间的相关性。
4. SVM
4.1 优点
计算开销不大,结果容易解释;
泛化能力比较强,泛化错误率低;
解决小样本情况下的机器学习问题;
可用于线性和非线性分类,也可以用于回归;
可以解决高维问题, 可以避免神经网络结构选择和局部极小点问题;
4.2 缺点
对参数调节和和函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题;
对于核函数的高维映射解释力不强,尤其是径向基函数;
对缺失数据敏感;
5. Logistic回归
根据现有数据对分类边界线建立回归公式,依次进行分类。
5.1 优点
- 实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
- 实现简单,广泛的应用于工业问题上;
- 分类时计算量非常小,速度很快,存储资源低;
- 便利的观测样本概率分数;
- 对逻辑回归而言,多重共线性并不是问题,它可以结合L2正则化来解决该问题;
5.2 缺点
- 容易欠拟合,分类精度可能不高
6. EM算法
只要有一些训练数据,再定义一个最大化函数,采用EM算法,利用计算机经过若干次迭代,就可以得到所需的模型。EM算法是基于模型的聚类方法,是在概率模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量。E步估计隐含变量,M步估计其他参数,交替将极值推向最大
6.1 优点
EM算法是自收敛的分类算法,既不需要事先设定类别也不需要数据见的两两比较合并等操作。比K-means算法计算结果稳定、准确。
6.2 缺点
是当所要优化的函数不是凸函数时,EM算法容易给出局部最佳解,而不是最优解。EM算法比K-means算法计算复杂,收敛也较慢,不适于大规模数据集和高维数据。
7. AdaBoost算法
7.1 优点
很好的利用了弱分类器进行级联。
可以将不同的分类算法作为弱分类器。
AdaBoost具有很高的精度。
相对于bagging算法和Random Forest算法,AdaBoost充分考虑的每个分类器的权重。
7.2 缺点
AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。
数据不平衡导致分类精度下降。
训练比较耗时,每次重新选择当前分类器最好切分点。
8. 人工神经网络
8.1 优点
分类准确度高,学习能力极强。
对噪声数据鲁棒性和容错性较强。
有联想能力,能逼近任意非线性关系。
8.2 缺点
神经网络参数较多,权值和阈值。
黑盒过程,不能观察中间结果。
学习过程比较长,有可能陷入局部极小值。
9. CART分类与回归树
是一种决策树分类方法,采用基于最小距离的基尼指数估计函数,用来决定由该子数据集生成的决策树的拓展形。如果目标变量是标称的,称为分类树;如果目标变量是连续的,称为回归树。分类树是使用树结构算法将数据分成离散类的方法。
9.1 优点
常灵活,可以允许有部分错分成本,还可指定先验概率分布,可使用自动的成本复杂性剪枝来得到归纳性更强的树。
在面对诸如存在缺失值、变量数多等问题时CART 显得非常稳健。
可以生成可以理解的规则。
计算量相对来说不是很大。
可以处理连续和种类字段。
决策树可以清晰的显示哪些字段比较重要
9.2 缺点
对连续性的字段比较难预测。
对有时间顺序的数据,需要很多预处理的工作。
当类别太多时,错误可能就会增加的比较快。
一般的算法分类的时候,只是根据一个字段来分类。
- 机器学习(三)常见算法优缺点
- 常见机器学习算法优缺点
- 常见机器学习算法简述及其优缺点
- 机器学习常见算法优缺点总结
- 机器学习常见算法优缺点总结
- 机器学习常见算法分类,算法优缺点汇总
- 用Python实现常见机器学习算法(三)
- 机器学习算法优缺点总结
- 机器学习算法优缺点总结
- 机器学习算法优缺点比较
- 机器学习算法优缺点比较
- 机器学习自学之路-SVM 算法选择:三种算法优缺点比较(ID3、C4.5、CART)
- 机器学习常见算法
- 机器学习常见算法
- 常见机器学习算法
- 常见机器学习算法
- 机器学习常见算法
- 机器学习常见算法
- 如何解决JavaScript中UUID作为方法参数在方法中无法传递而数字却正常传递的问题
- 【算法】A+B problem 用位运算完成两数相加
- System.getProperty()参数手册
- 框架之Struts2的使用(传参、获取参数及验证输入)
- html中三种路径详谈
- 机器学习(三)常见算法优缺点
- 5分钟搞定android混淆
- Spring Security 与 Oauth2 整合 步骤
- Spring Cloud实战(二)-Spring Cloud Eureka
- DialogFragment在Activity执行onSaveInstanceState完成后调用show报BUG的解决方案
- MongoDB的一些基本操作命令(三)————增删改查和语句块操作
- agile_board(Bootstrap)
- Calendar 获取本周周一、周五时间,以及获取当月第一天
- Via composer create Laravel project