常用的分类算法主要有决策树,贝叶斯,KNN,SVM,神经网络以及基于规则的分类算法。
本文主要对各种分类算法的特性做一下总结。
1. 决策树算法
- 决策树算法是一种构建分类模型的非参数方法,它不要求任何先验假设,不假定类和其他属性服从一定的概率分布。
- 找到最佳决策树是NP完全问题,许多决策树算法都采取启发式的方法指导对假定空间的搜索。
- 现有的决策树构建技术不需要昂贵的计算代价,即使训练集非常大,也可以快速建立模型。同时,决策树一旦建立,未知样本分类非常快,最坏情况下的时间复杂度为o(w),其中 w是树的最大深度。
- 决策树相对容易理解,并且在很多数据集上,决策树的准确率可以与其他分类算法媲美。
- 决策树是学习离散值函数的代表,但不能很好的推广到某些特定的布尔问题。
- 决策树算法对噪声的干扰有很好的鲁棒性,当采用避免过分拟合的方法后尤其如此。
- 冗余属性不会对决策树的准确率造成不利影响。
- 由于大多数的决策树都采自顶向下的递归方式进行划分,因此沿着树向下,记录会越来越少。在叶节点,记录可能太少,对于叶节点代表的类,不能做出具有统计意义的判决,这就是所谓的数据碎片问题。解决该类问题的一种方法是,当样本数小于某个特定阈值时,停止分裂。
- 子树可能在决策树中重复多次。当决策树的每个内部节点都依赖单个属性的测试条件时(相同的测试条件),就会出现这种情形。
2. 基于规则的分类器算法
- 规则集的表达能力几乎等同于决策树,因为决策树可以用互斥和穷举的规则集表示。基于规则的分类器和决策树分类器都对属性空间进行直线划分,并将类指派到每个划分。
- 基于规则的分类器通常被用来产生易于理解的描述性模型,而模型的性能可以与决策树媲美。
- 基于规则的分类器使用的基于类的规则定序方法非常适用于处理类分布不平衡的数据集。
3. 最近邻分类算法(KNN)
- 最近邻分类属于基于实例的学习技术,他使用具体的训练实例进行预测。
- 最近邻分类属于消极学习方法,不必预先建立模型。但分类测试样例的开销却很大,因为需要逐个计算测试样例和训练样例之间的相似度。相反,积极学习方法通常需要花费大量计算资源来建立模型,模型一旦建立,分类测试样例就会非常快。
- 最近邻分类器基于局部信息进行预测,因此他对噪声数据非常敏感。
- 最近邻分类器可以生成任意形状的决策边界,这样的决策边界与决策树相比,能提供更加灵活的模型表示。
4. 朴素贝叶斯分类算法
- 面对孤立的噪声点,贝叶斯分类器是健壮的,因为从数据中估计条件概率时,这些点被平均。
- 通过在建模和分类时忽略样例,贝叶斯分类器可以处理属性值遗漏问题。
- 面对无关属性,分类器是健壮的。如果x是无关属性,那么p(x|Y)几乎变成的均匀分布,x的条件概率不会对总的后验概率产生影响。
- 相关属性会降低分类器的性能,因为这对于条件独立的假设不成立。
5. 贝叶斯信念网(BNN)
- BNN提供了一种用图形模型来捕获特定领域的先验知识的方法。网络还可以对变量间的因果依赖关系进行编码。
- 构造网络可能既费时又费力。然而一旦网络结构确定下来,新添加变量就十分容易。
- BNN很适合处理不完整的数据,对有属性遗漏的实例可以通过对该属性的所有可能取值的概率求和或者求积分来加以处理。
- 对过分拟合问题非常鲁棒。
因为对人工神经网络没有深入学习过,因此这里引用他人的总结。
人工神经网络
- 至少含有一个隐藏层的多层神经网络是一种普适近似,即可以用来近似任何目标函数。由于ANN具有丰富的假设空间,因此对于给定的问题,选择合适的拓扑结构来防止模型的过分拟合是非常重要的。
- ANN可以处理冗余特征,因为权值在训练过程中自动学习,冗余特征的权值非常小。
- 神经网络对训练数据中的噪声非常敏感。
- ANN权值学习使用的梯度下降方法经常会收敛到局部极小值。
- 训练ANN是非常耗时的。
参考《数据挖掘导论》
时间: 2024-10-13 00:33:15