一、分类
1、定义:
分类其实是从特定的数据中挖掘模式,做出判断的过程。
分类是在一群已经知道类别标号的样本中,训练一种分类器,让其能够对某种未知的样本进行分类。分类算法属于一种有监督的学习。分类算法的分类过程就是建立一种分类模型来描述预定的数据集或概念集,通过分析由属性描述的数据库元组来构造模型。分类的目的就是使用分类对新的数据集进行划分,其主要涉及分类规则的准确性、过拟合、矛盾划分的取舍等。
2、分类学习主要过程:
(1):训练数据及存在一个类标记号,判断他是正向数据集(起积极作用,不垃圾邮件),还是负向数据集(其抑制作用,垃圾邮件)
(2):然后需要对数据集进行学习训练,并构建一个训练的模型
(3):通过该模型对预测数据集进行预测,并计算其结果的性能
3、常用的分类算法:
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,人工神经网络)算法等。
(1)NBC算法
NBC 模型发源于古典数学理论,有着坚实的数学基础。该算法是基于条件独立性假设的一种算法,当条件独立性假设成立时,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。
NBC算法的优点:
- NBC算法逻辑简单,易于实现;
- NBC算法所需估计的参数很少;
- NBC 算法对缺失数据不太敏感;
- NBC 算法具有较小的误差分类率;
- NBC 算法性能稳定,健壮性比较好;
NBC算法的缺点:
- 在属性个数比较多或者属性之间相关性较大时,NBC 模型的分类效果相对较差;
- 算法是基于条件独立性假设的,在实际应用中很难成立,故会影响分类效果
(2)LR算法
LR 回归是当前业界比较常用的机器学习方法,用于估计某种事物的可能性。它与多元线性回归同属一个家族,即广义线性模型。简单来说多元线性回归是直接将特征值和其对应的概率进行相乘得到一个结果,逻辑回归则是在这样的结果上加上一个逻辑函数。在此选择LR 作为回归分析模型的代表进行介绍。
LR算法的优点:
- 对数据中小噪声的鲁棒性好;
- LR 算法已被广泛应用于工业问题中;
- 多重共线性并不是问题,它可结合正则化来解决。
LR算法的缺点:
- 对于非线性特征,需要转换
- 当特征空间很大时,LR的性能并不是太好
(3)SVM算法(比较常用的)
SVM 算法是建立在统计学习理论基础上的机器学习方法,为十大数据挖掘算法之一。通过学习算法,SVM 可以自动寻找出对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化类与类的间隔,因而有较好的适应能力和较高的分准率。SVM 算法的目的在于寻找一个超平面H,该超平面可以将训练集中的数据分开,且与类域边界的沿垂直于该超平面方向的距离最大,故SVM 法亦被称为最大边缘算法。
SVM算法的优点:
- SVM 模型有很高的分准率;
- SVM 模型有很高的泛化性能;
- SVM 模型能很好地解决高维问题;
- SVM 模型对小样本情况下的机器学习问题效果好。
SVM算法的缺点:
- SVM 模型对缺失数据敏感;
- 对非线性问题没有通用解决方案,得谨慎选择核函数来处理。
(4)ID3算法
ID3 算法是一种基于决策树的分类算法,该算法是以信息论为基础,以信息熵和信息增益为衡量标准,从而实现对数据的归纳分类。信息增益用于度量某个属性对样本集合分类的好坏程度。ID3 算法的时间复杂度为O(n|D|log|D|)。
ID3算法的优点:
- ID3 算法建立的决策树规模比较小;
- 查询速度快。
ID3算法的缺点:
- 不适合处理连续数据;
- 难以处理海量数据集;
- 建树时偏选属性值较大的进行分离,而有时属性值较大的不一定能反应更多的数据信息。
(5)C4.5 算法
C4.5 算法是ID3 算法的修订版,采用信息增益率来加以改进,选取有最大增益率的分割变量作为准则,避免ID3 算法过度的适配问题。
C4.5算法优点:
- C4.5 继承了ID3 优点;
- 在树构造过程中进行剪枝;
- 能对不完整数据进行处理;
- 能够完成对连续属性的离散化处理;
- 产生的分类规则易于理解,准确率较高;
- 用增益率来选择属性,克服了用增益选择属性时偏向选择取值多的属性。
C4.5 算法缺点:
- 构造树时,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效;
- 只适合于能驻留于内存的数据集,当训练集达到内存无法容纳时程序无法运行。
C4.5 用于遥感分类过程中,首先依据通常的方式建立第一个模型。随后建立的第二个模型聚焦于被第一个模型错误分类的记录。以此类推,最后应用整个模型集对样本进行分类,使用加权投票过程把分散的预测合并成综合预测。Boosting 技术对于噪声不大的数据,通常通过建立的多模型来减少错误分类的影响,提高分类精度。
(5)C5.0算法
C5.0 算法是 Quinlan 在C4.5 算法的基础上改进而来的产生决策树的一种更新的算法,它除了包括C4.5 的全部功能外,还引入许多新的技术,其中最重要的技术是提升(Boosting)技术,目的是为了进一步提高决策树对样本的识别率。同时C5.0 的算法复杂度要更低,使用更简单,适应性更强,因此具有更高的使用价值。
C5.0算法的优点:
- C5.0 模型能同时处理连续和离散的数据
- C5.0 模型通常不需要很长的训练时间;
- C5.0 引入Boosting 技术以提高分类的效率和精度;
- C5.0 模型易于理解,模型推出的规则有非常直观的解释;
- C5.0 模型在面对数据遗漏和特征很多的问题时非常稳健。
C5.0算法的缺点:
- 目标字段必须为分类字段。
美国地质调查局(USGS)在进行土地覆盖分类项目过程中研发了支持决策树分类的软件。软件分类模块主要是针对庞大数据量的数据集进行数据挖掘,找出特征,然后建立规则集进行决策分类。在分类模块中采用C5.0 模型来完成决策树分类、形成分类文件,实现遥感影像的分类。
(6)KNN 算法
KNN 算法是Cover 和Hart 于1968 年提出的理论上比较成熟的方法,为十大挖掘算法之一。该算法的思路非常简单直观:如果一个样本在特征空间中的k 个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
KNN算法的优点:
- KNN 算法简单、有效;
- KNN 算法适用于样本容量比较大的类域的自动分类;
- 由于KNN 方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN 方法较其他方法更为适合。
KNN算法的缺点:
- KNN 算法计算量较大;
- KNN 算法需要事先确定K 值;
- KNN 算法输出的可解释不强;
- KNN 算法对样本容量较小的类域很容易产生误分。
(7)ANN 算法
人工神经网络(ANN)算法就是一组连续的输入/输出单元,其中每个连接都与一个权相关。在学习阶段,通过调整神经网络的权,使得能够预测样本的正确类标号来学习。
ANN算法的优点:
- 能处理数值型及分类型的属性;
- 分类的准确度高,分布并行处理能力强;
- 对包含大量噪声数据的数据集有较强的鲁棒性和容错能力。
ANN算法的缺点:
- 不能观察之间的学习过程;
- 学习时间过长,甚至可能达不到学习的目的;
- 对于非数值型数据需要做大量数据预处理工作;
- 输出结果难以解释,会影响到结果的可信度和可接受程度;
- 神经网络需要大量的参数,如网络拓扑结构、权值和阈值的初始值。
小结:
二、聚类
1、定义:
从广义上说,聚类就是将数据集中在某些方面相似的数据成员放在一起。一个聚类就是一些数据实例的集合,其中处于相同聚类中的数据元素彼此相似,但是处于不同居类中的元素彼此不同。由于在聚类中那些数据类别的分类或分组信息是没有的,即这些数据是没有标签的,所以聚类通常被称为无监督学习。
聚类分析是根据在数据中发现的描述对象及其关系的信息,将数据对象分组。目的是,组内的对象相互之间是相似的(相关的),而不同组中的对象是不同的(不相关的)。组内相似性越大,组间差距越大,说明聚类效果越好。也就是说, 聚类的目标是得到较高的簇内相似度和较低的簇间相似度,使得簇间的距离尽可能大,簇内样本与簇中心的距离尽可能小。聚类之后的数据,只能显示出这一类之间的数据有相似性,并不能说明其他问题。
2、聚类的常见算法:
聚类算法分为三大类:
- 原型聚类(包含3个子类算法):(重点)
- K均值聚类算法
- 学习向量量化
- 高斯混合聚类
- 层次聚类(不常见)
- 密度聚类(不常见)
(1)K-means聚类
K均值聚类是最常用的聚类算法,最初起源于信号处理,其目标是将数据点划分为K个类簇,找到每个簇的中心并使其亮度最小化。K均值算法是一种原型聚类算法.
该算法的最大优点是简单、便于理解,运行速度较快,缺点是只能应用于连续性数据,并且要在聚类前指定聚类的类簇数。
K-means聚类算法的分析流程:
- 确定K值,即将数据集聚集成K个类簇或小组。
- 从数据集中随机选择K个数据点作为质心(Centroid)或数据中心。
- 分别计算每个点到每个质心之间的距离,并将每个点划分到离最近质心的小组。
- 当每个质心都聚集了一些点后,重新定义算法选出新的质心。(对于每个簇,计算其均值,即得到新的K个质心点)
- 迭代执行第三步到第四步,直到迭代终止条件满足位置(分类结果不再变化)
K-means聚类方法的优点:
- 解决聚类问题的一种经典算法,简单快速;
- 对处理大数据集,该算法保持可伸缩性和高效率;
- 当结果簇是密集的,他的效果较好。
K-means聚类方法的缺点:
- 在簇的平均值可被定义的情况下才能使用,可能不适用于某些应用;
- 必须实现给出k(要生成的簇的数目),而且对处置敏感,对于不同的初始值,可能会导致不同的结果;
- 不适合于发现非凸形状的簇或者大小差别很大的簇;
- 对噪声和孤立点数据敏感。
在图像处理中,通过k均值聚类算法可以实现图像分割、图像聚类、图像识别等操作。我们通过k均值可以将这些像素点聚类成K个簇,然后使用每个簇内的质心点来替换簇内所有的像素点,这样就能实现在不改变分辨率的情况下量化压缩图像颜色,实现图像颜色层级分割。