svm多分类_数据挖掘算法——常用部分分类算法

分类算法

分类是在一群已经知道类别标号的样本中,训练一种分类器,让其能够对某种未知的样本进行分类。分类算法属于一种有监督的学习。分类算法的分类过程就是建立一种分类模型来描述预定的数据集或概念集,通过分析由属性描述的数据库元组来构造模型。分类的目的就是使用分类对新的数据集进行划分,其主要涉及分类规则的准确性、过拟合、矛盾划分的取舍等。分类算法分类效果如图所示。

svm多分类_数据挖掘算法——常用部分分类算法_第1张图片

常用的分类算法包括:NBC(Naive Bayesian Classifier,朴素贝叶斯分类)算法、LR(Logistic Regress,逻辑回归)算法、ID3(Iterative Dichotomiser 3 迭代二叉树3 代)决策树算法、C4.5 决策树算法、C5.0 决策树算法、SVM(Support Vector Machine,支持向量机)算法、KNN(K-Nearest Neighbor,K 最近邻近)算法、ANN(Artificial Neural Network,人工神经网络)算法等。

NBC算法

NBC 模型发源于古典数学理论,有着坚实的数学基础。该算法是基于条件独立性假设的一种算法,当条件独立性假设成立时,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。

NBC算法的优点

NBC算法逻辑简单,易于实现;

NBC算法所需估计的参数很少;

NBC 算法对缺失数据不太敏感;

NBC 算法具有较小的误差分类率;

NBC 算法性能稳定,健壮性比较好;

ID3算法:ID3算法是一个由Ross Quinlan发明的用于决策树的算法。这个算法便是建立在上述所介绍的奥卡姆剃刀的基础上:越是小型的决策树越优于大的决策树(be simple简单理论)。

重要衡量标准:熵和信息增益。

熵(entropy),它刻画了任意样例集的纯度(purity)。给定包含关于某个目标概念的正反样例的样例集S,那么S相对这个布尔型分类的熵为。举个例子对于含有14个样例的集合,它包含9个正例和5个反例,那么S的焍可以计算为,如计算公式所示:

 Entropy([9+,5-])=-(9/14)log2(9/14)-(5/14)log2(5/14)=0.940。

信息增益,可以定义为属性分类训练的效力的度量标准。我们选取一个划分后即可计算信息增益:

                 svm多分类_数据挖掘算法——常用部分分类算法_第2张图片

我们按照这个信息增益即可度量选择的划分节点是否好,及可选的划分顺序的。这就是ID3算法。

C4.5 算法:

    可是ID3算法依然面临着一些问题,比如它更倾向于选择那些值较多的纬度进行划分,然后再取得划分后的节点。比如两种划分方法,一种将元素划分为均分的两份,另外一种将元素划分为1个和剩余的很多。显然情况都差不多的情况下,第二种更好的。(其实我的理解是,它还会对不均衡的划分进行惩罚的)

svm多分类_数据挖掘算法——常用部分分类算法_第3张图片

CART算法:

    基尼指数,也是一种衡量不纯度的方法。计算划分的时候也是类似信息增益,计算两个划分带来的增益。

其实我们可以总结发现这些算法的特性:

信息增益倾向于选择多值属性,增益率倾向于选择不平衡的划分,基尼指数倾向于多值属性。

ANN 算法

人工神经网络(ANN)算法就是一组连续的输入/输出单元,其中每个连接都与一个权相关。在学习阶段,通过调整神经网络的权,使得能够预测样本的正确类标号来学习。

ANN算法的优点

1.能处理数值型及分类型的属性;

2.分类的准确度高,分布并行处理能力强;

3.对包含大量噪声数据的数据集有较强的鲁棒性和容错能力。

ANN算法的缺点

1.不能观察之间的学习过程;

2.学习时间过长,甚至可能达不到学习的目的;

3.对于非数值型数据需要做大量数据预处理工作;

4.输出结果难以解释,会影响到结果的可信度和可接受程度;

5.神经网络需要大量的参数,如网络拓扑结构、权值和阈值的初始值。

SVM算法

SVM 算法是建立在统计学习理论基础上的机器学习方法,为十大数据挖掘算法之一。通过学习算法,SVM 可以自动寻找出对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化类与类的间隔,因而有较好的适应能力和较高的分准率。SVM 算法的目的在于寻找一个超平面H,该超平面可以将训练集中的数据分开,且与类域边界的沿垂直于该超平面方向的距离最大,故SVM 法亦被称为最大边缘算法。

SVM算法的优点

1.SVM 模型有很高的分准率;

2. SVM 模型有很高的泛化性能;

3. SVM 模型能很好地解决高维问题;

4. SVM 模型对小样本情况下的机器学习问题效果好。

SVM算法的缺点

1.SVM 模型对缺失数据敏感;

2.对非线性问题没有通用解决方案,得谨慎选择核函数来处理。

你可能感兴趣的:(svm多分类)