机器学习基础算法(机器学习之常用算法基础概念)

一. 机器学习的流程
  • 收集数据
  • 准备输入数据
  • 分析输入数据
  • 训练算法
  • 测试算法
  • 使用算法

机器学习就是计算机利用已有的数据或经验,通过训练得出模型,并使用测试数据对该模型进行评估,若性能达到所需要求,则可用该模型测试其他的数据,否则,调整算法重新训练模型并评估,直到构建出符合性能需求的模型为止。

二、预处理的步骤
  • 数据选取、数据处理、数据集成、数据变换、数据规约。
  1. 数据初步选取。数据选取需要遵循三个基本原则:

(1)选择能够赋予属性名和属性值明确含义的属性数据。

(2)避免选择重复数据。

(3)合理选择与学习内容关联性高的属性数据。

2. 数据清理。数据清理是预处理中最重要的一步,主要处理缺失数据、噪声数据、识别和删除孤立点等。

3. 数据集成。数据集成就是将多个数据源中的数据合并在一起形成一个数据仓库/数据库的技术和过程。需要解决数据中的3个主要问题:多个数据集匹配、数据冗余、数据冲突。

4. 数据变换。数据变换有数据标准化、数据白化处理。

5. 数据归约。数据归约通常采用维归约、数值归约方法实现。维归约指通过减少属性的方式压缩数据量,通过移除不相关的属性,可以提高模型效率。

三、分类学习器基本操作流程
  • 对于构建机器学习应用,通常包括五个部分,分别是数据导入、数据的探索和特征选择、训练模型、比较模型、输出模型。

启动分类学习器。可以通过直接在命令行窗口输入“Classification Learner”,或者在MATLAB的菜单栏中选择“应用程序”选项卡下的分类学习器应用“Classification Learner”。

  1. 输入数据。导入数据的方式有两种,一种是单击CLASSIFICATION LEARNER选项卡下FILE组中的New Session下拉按钮,然后选择From Workspace,其含义是导入MATLAB工作空间的函数数据;另一种是选择From File,其含义是通过数据文件导入数据。

2. 数据的探索和特征的选择。设置训练数据的相关属性、标签及设置验证集,导入数据并设置好交叉验证后单击Start Session按钮。

3. 训练模型。选择一个合适的算法后单击“Train”进行训练。

4. 比较模型。观察每个类预测的准确率。

5. 输出模型。可以在“Export Model”下拉列表中可以选择不同的导出方式。导入工作空间的方法:选择“Export Model”下拉列表中的“Export Compact Model”选项,输入导入模型的名称,采用默认值,单击“确定”按钮。

四、k紧邻算法(KNN算法)
  1. 原理:

如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别。

当无法判定当前待分类点从属于已知分类中的哪一类时,可以依据统计学的理论看它所处的位置特征,衡量它周围邻居的权重,而把它归为到权重更大的那一类,这就是k近邻算法的核心思想。

k紧邻算法使用的模型实际上对应于特征空间的划分。k值的选择、距离度量和分类决策规则是该算法的3个基本要素。

(1)在实际应用中,k值一般选择一个较小的数值,通常采用交叉验证的方法来选择最优的k值。

(2)算法中的分类决策规则往往是多数表决,即由输入实例的k个最邻近的训练实例中的多数类决定输入实例的类别。

(3)距离度量一般采用欧式距离表示,在度量之前,应该将每个属性的值规范化,以防止具有较大初始值域的属性比具有较小初始值域的属性的权重大。

2. 优点:

(1)简单、有效、复杂度低、无须参数估计、无须训练。

(2)精度高、对噪声不敏感。

(3)适用于类域的交叉或重叠较多的待分样本集。

(4)适用于多分类问题,其表现性能比SVM效果更好。

3. 缺点:

(1)计算量大。

(2)可解释性差。

(3)样本不均衡时,如果一个类样本容量很大,而其他样本容量很小时,有可能导致当输入一个新样本时,该样本的k个邻近样本中很可能该类占大多数。

(4)样本容量较小的类域使用该算法容易产生误分。

(5)k值的选取对分类效果有较大影响。

五、决策树
  1. 原理:

决策树是在已知各种情况发生概率的基础上,通过构成决策树来评估项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。在机器学习中,决策树是一个预测模型,其代表的是对象属性与对象值之间的一种映射关系。

决策树可以看作一个树状预测模型,它是由结点和有向分支组成的层次结构。树中包含3种结点:根结点、内部结点、叶子结点。决策树只有一个根结点,是全体训练数据的集合。树中每个内部结点都是一个分裂问题。每个叶子结点都是带有分类标签的数据集合,即为样本所属的分类。

2. 优点:

(1)决策树易于理解和实现。

(2)速度快,计算量相对较小,且容易转化成分类规则。

3. 缺点:在处理大样本集时,易出现过拟合现象,降低分类的准确性。

六、支持向量机(SVM)
  1. 原理:支持向量机将向量映射到一个更高维的空间中,在这个空间中建立一个最大间隔的超平面。在分开数据的超平面的两边建有两个互相平行的临界超平面,建立方向合适的分隔超平面将使两个与之平行的超平面之间的距离最大化。其假定为,平行超平面间的距离或差距越大,分类器的总误差就越小。

2. 优点:

(1)算法专门针对有限样本设计,其目标是获得现有信息下的最优解,而不是样本趋于无穷时的最优解。

(2)算法最终转化为求解一个二次凸规划问题,能求得理论上的全局最优解,解决了一些传统方法无法避免的局部极值问题。

(3)算法将实际问题通过非线性变换映射到高维的特征空间中,在高维特征空间中构造线性最佳逼近来解决原空间中的非线性逼近问题。保证了机器学习具有良好的泛化能力,同时巧妙地解决了维数灾难问题。

3. 缺点:对缺失数据敏感,内存消耗大,难以解释。

七、朴素贝叶斯算法(Bayes算法)
  1. 原理:朴素贝叶斯算法具有分类准确率较高并且运算速度快的特点。对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大就认为此待分类项属于哪个类别。

2. 优点:

(1)算法形式简单,规则清楚易懂,可扩展性强。

(2)算法实施的时间和空间开销小。

(3)算法性能稳定,模型的健壮性比较好。

3. 缺点:

(1)算法假设属性之间都是条件独立的,然而在社会活动中,数据集中的变量之间往往存在较强的相关性,忽视这种性质会对分类结果产生很大影响。

(2)算法将各特征属性对于分类决策的影响程度都看作是相同的,这不符合实际运用的需求。

(3)算法在使用中通常要将定类数据以上测量级的数据离散化,这样很可能会造成数据中有用信息的损失,对分类效果产生影响。

八、线性回归
  1. 原理:线性回归是利用数理统计中回归分析,来确定两种或两种以上变量之间相互依赖的定量关系的一种统计分析方法。其表达式为:y=wT e,e为残差,服从均值为0的正态分布。

2. 优点:

(1)训练速度和预测速度较快。

(2)结果可解释。

(3)当新增数据时,易于更新模型。

3. 缺点:

(1)预测精确度较低。

(2)可能会出现过度拟合。

(3)分离信号和噪声的效果不理想,在使用前需要先去掉不相关的特征。

九、逻辑回归
  1. 原理:逻辑回归是基于线性模型的,为了解决分类问题,把线性模型的输出做一个变换,使用Sogmoid函数,把实数域的输出映射到(0,1)区间,为输出提供了很好的概率解释。但是从本质上来说,逻辑回归还是一种广义的线性模型,采用了交叉熵损失函数。最后为了最小化损失函数,逻辑回归采用了梯度下降方法。综合这3个因素,就构成了逻辑回归算法。

2. 优点:

(1)预测结果的概率为0~1。

(2)可以适用于离散型和连续型变量。

(3)容易使用和解释。

3. 缺点:

(1)对模型中自变量多重共线性较为敏感。

(2)预测结果呈“S”形,导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阈值。

十、神经网络(NN)
  1. 原理:人工神经网络(ANN)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量结点之间相互连接的关系,从而达到处理信息的目的。

2. 优点:

(1)具有较强的非线性映射能力。

(2)具有高度的自学习和自适应的能力。

(3)具有良好的泛化能力和一定的容错能力。

3. 缺点:

(1)存在局部极小化问题。

(2)收敛速度慢。

(3)神经网络结构选择不一。神经网络结构的选择一般只能由经验选定,若选择过大,易出现过度拟合,若选择过小,又可能造成网络不收敛。网络的结构直接影响网络的逼近能力及推广性质。

十一、数据集成(AdaBoost算法)
  1. 原理:AdaBoost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些分类器集合起来,构成一个更强的最终分类器(强分类器)。其自适应性在于:前一个基本分类器分错的样本会得到加强,加权后的全体数据再次被用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小错误率或达到预先指定的最大迭代次数。

2. 优点:泛化错误率低;易编码;可用于绝大部分分类器;无参数调整。

3. 缺点:对离群点敏感。

十二、k均值算法(k-means算法)
  1. 原理:k均值算法是典型的基于距离的动态聚类算法,以距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。使用误差平方和准则作为聚类准则,寻求的是使误差平方和准则函数最小化的聚类结果。

2. 优点:

(1)算法简单、快速。

(2)对大数据集具有较高的效率并且是可伸缩性的。

(3)时间复杂度近于线性,而且适合挖掘大规模数据集。

3. 缺点:

(1)在k-means算法中的k值必须是事先给定的,但是k值的选定是非常难以估计的。

(2)初始聚类中心的选择在k-means算法中是随机的,一旦初始值选择得不合理,就可能无法得到有效的聚类结果。

(3)该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法需要的时间是非常多的。

十三、K中心点算法
  1. 原理:k中心点算法在分类上属于动态聚类算法。算法的基础是在每个簇中选出一个实际的对象来代表该簇,其余的每个对象聚类到与其最相似性的代表性对象所在的簇中,然后重复迭代,直到每个代表对象都成为它所在的簇实际中心点或最靠近中心点的对象为止。

2. 优点:减轻了k均值算法对孤立点的敏感性。

3. 缺点:与k均值算法的缺点相似。

参考教材:《机器学习入门到实战 MATLAB实践应用》(冷雨泉主编)

机器学习基础算法(机器学习之常用算法基础概念)(1)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页