机器学习从零开始系列01:机器学习概述

学习目标

  • 机器学习概述

一、机器学习概述

随着大数据的发展和计算机运算能力的不断提升,人工智能在最近几年取得了令人瞩目的成就。目前在很多行业中,都有企业开始应用机器学习技术,从而获取更深刻的洞察,为企业经营或日常生活提供帮助,提升产品服务水平。机器学习已经广泛应用于数据挖掘、搜索引擎、电子商务、自动驾驶、图像识别、量化投资、自然语言处理、计算机视觉、医学诊断、信用卡欺诈检测、证券金融市场分析、游戏和机器人等领域,机器学习相关技术的进步促进了人工智能在各个领域的发展。

机器学习(Machine Learning)是计算机科学的子领域,也是人工智能的一个分支和实现方式。汤姆·米切尔(Tom Mitchell)在1997年出版的Machine Learning一书中指出,机器学习这门学科所关注的是计算机程序如何随着经验积累,自动提高性能。他同时给出了形式化的描述:对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么就称这个计算机程序在从经验E学习。

机器学习主要的理论基础涉及概率论、数理统计、线性代数、数学分析、数值逼近、最优化理论和计算复杂理论等,其核心要素是数据、算法和模型。

(一)机器学习主要流派

在人工智能的发展过程中,随着人们对智能的理解和现实问题的解决方法演变,机器学习大致出现了符号主义、贝叶斯、联结主义、进化主义、行为类推主义五大流派。

1. 符号主义

符号主义起源于逻辑学、哲学,实现方法是用符号表示知识,并用规则进行逻辑推理,其中专家系统和知识工程是这一学说的代表性成果。符号主义流派认为知识是信息符号的表示,是人工智能的基础,将这些符号输入到计算机中进行模拟推理,从而实现人工智能。

2. 贝叶斯派

贝叶斯定理是概率论中的一个定理,其中P(A|B)是在事件B发生的情况下事件A发生的可能性(条件概率)。贝叶斯学习已经被应用于许多领域。例如,自然语言中的情感分类、自动驾驶和垃圾邮件过滤等。

3. 联结主义

联结主义起源于神经科学,主要算法是神经网络,由大量神经元以一定的结构组成。神经元是一种看起来像树状的细胞,它由细胞体和细胞突起构成,在长的轴突上套有一层鞘,组成神经纤维,它的末端的细小分支叫作神经末梢。每个神经元可以有一或多个树突,可以接受刺激并将兴奋传入细胞体。每个神经元只有一个轴突,可以把兴奋从胞体传送到另一个神经元或其他组织,神经元之间是互相连接的,这样形成了一个大的神经网络,人类所学会的知识几乎都存在其中,如图所示:
在这里插入图片描述

在神经网络中,将n个相连接的神经元的输出作为当前神经元的输入,进行加权计算,并加一个偏置值(Bias)之后通过激活函数来实现变换,激活函数的作用是将输出控制在一定的范围以内。以Sigmoid函数为例,输入从负无穷到正无穷,经过激活之后映射到(0,1)区间。

人工神经网络是以层(Layer)形式组织起来的,每一层中包含多个神经元,层与层之间通过一定的结构连接起来,对神经网络的训练目的就是要找到网络中各个突触连接的权重和偏置值。作为一种监督学习算法,神经网络的训练过程是通过不断反馈当前网络计算结果与训练数据之间的误差来修正网络权重,使误差足够小,这就是反向传播算法。

4. 进化主义

1850年,达尔文发现进化论。在微观上,DNA是线性串联编码,进化过程是基因交叉、突变的过程。宏观上,进化过程是生物个体适应环境的优胜劣汰过程。智能要适应不断变化的环境,通过对进化的过程进行建模,产生智能行为。进化算法(Evolutionary Algorithm,EA)是在计算机上模拟进化过程,基于“物竞天择,适者生存”的原则,不断迭代优化,直到找到最佳的结果。进化算法包括基因编码、种群初始化、交叉变异算子等基本操作,是一种比较成熟的具有广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够有效地处理传统优化算法难以解决的复杂问题(例如NP难优化问题)。

遗传算法的优化要视具体情况进行算法选择,也可以与其他算法相结合,对其进行补充。对于动态数据,用遗传算法求最优解可能会比较困难,种群可能会过早收敛。本书第9章将对遗传算法进行详细介绍。

5. 行为类推主义

根据约束条件来优化函数,行为类推主义者倾向于通过类比推理获得知识和理论,将未知情况与已知情况建立对应关系,在实际应用中,就是计算它们之间的相似度,然后定义关联关系。

(二)机器学习、人工智能和数据挖掘

机器学习、人工智能和数据挖掘容易被混淆。从本质上看,数据科学的目标是通过处理各种数据促进人们的决策,机器学习的主要任务是使机器模仿人类的学习,从而获得知识。而人工智能借助机器学习和推理最终是形成具体的智能行为。
机器学习与人工智能的关系

1.人工智能

人工智能是让机器的行为看起来像人所表现出的智能行为一样,人工智能的先驱们希望机器具有与人类似的能力:感知、语言、思考、学习、行动等。最近几年人工智能风靡全球的主要原因就是,随着机器学习的发展,人们发现机器具有了一定的感知(图像识别)和学习等方面的能力,很容易认为目前已经达到了人工智能发展过程中的奇点。实际上,人工智能包括计算智能、感知智能和认知智能等层次,目前人工智能还介于前两者之间。

因此,目前人工智能所处的阶段还在“弱人工智能”(Narrow AI)阶段,距离“强人工智能”(General AI)阶段还有较长的路要走。例如,目前人类对于知识的获取和推理并不需要大量的数据进行反复迭代学习,只需要看一眼自行车的照片就能大致区分出各式各样的自行车。因此,要达到强人工智能的阶段可能要在计算机基础理论方面进行创新,实现类人脑的结构设计。
通常来说,人工智能是使机器具备类似人类的智能性,人工智能的典型系统包括以下几个方面:

  1. 博弈游戏(如深蓝、Alpha Go、Alpha Zero等)
  2. 机器人相关控制理论(运动规划、控制机器人行走等)
  3. 机器翻译
  4. 语音识别
  5. 计算机视觉系统
  6. 自然语言处理(自动程序)

2.数据挖掘

数据挖掘使用机器学习、统计学和数据库等方法在相对大量的数据集中发现模式和知识,它涉及数据预处理、模型与推断、可视化等。数据挖掘包括以下几类常见任务。

(1)异常检测

异常检测(anomaly detection)是对不符合预期模式的样本、事件进行识别。异常也被称为离群值、偏差和例外等。异常检测常用于入侵检测、银行欺诈、疾病检测、故障检测等。

(2)关联分析

关联规则学习(Association rule learning)是在数据库中发现变量之间的关系(强规则)。例如,在购物篮分析中,发现规则{面包,牛奶}→{酸奶},表明如果顾客同时购买了面包和牛奶,很有可能也会买酸奶,利用这些规则可以进行营销。

(3)聚类

聚类是一种探索性分析,在未知数据结构的情况下,根据相似性把样本分为不同的簇或子集,不同簇的样本具有很大的差异性,从而发现数据的类别与结构。

(4)分类

分类是根据已知样本的某些特征,判断一个新样本属于哪种类别。通过特征选择和学习,建立判别函数以对样本进行分类。

(5)回归

回归是一种统计分析方法,用于了解两个或多个变量之间的相关关系,回归的目标是找出误差最小的拟合函数作为模型,用特定的自变量来预测因变量的值。

数据挖掘在大数据相关技术的支持下,随着数据存储(非关系型NoSQL数据库)、分布式数据计算(Hadoop/Spark等)、数据可视化等技术的发展,数据挖掘对事务的理解能力越来越强,如此多的数据堆积在一起,增加了对算法的要求,所以数据挖掘一方面要尽可能获取更多、更有价值、更全面的数据,并从这些数据中提取价值。

数据挖掘在商务智能方面的应用较多,特别是在决策辅助、流程优化、精准营销等方面。广告公司可以使用用户的浏览历史、访问记录、点击记录和购买信息等数据,对广告进行精准推广。利用舆情分析,特别是情感分析可以提取公众意见来驱动市场决策。例如,在电影推广时对社交评论进行监控,寻找与目标观众产生共鸣的元素,然后调整媒体宣传策略迎合观众口味,吸引更多人群。

3.三者关系

机器学习是人工智能的一个分支,作为人工智能的核心技术和实现手段,通过机器学习的方法解决人工智能面对的问题。机器学习是通过一些让计算机可以自动“学习”的算法,从数据中分析获得规律,然后利用规律对新样本进行预测。

机器学习是人工智能的重要支撑技术,其中深度学习就是一个典型例子。深度学习的典型应用是选择数据训练模型,然后用模型做出预测。例如,博弈游戏系统(Deep Blue)重于探索和优化未来的解空间(Solution Space),而深度学习则是在博弈游戏算法(例如Alpha Go)的开发上付诸努力,取得了世人瞩目的成就。

(三)机器学习算法

机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的方法,可以分成下面几种类别:监督学习、无监督学习、强化学习。

(1)监督学习是从有标记的训练数据中学习一个模型,然后根据这个模型对未知样本进行预测。其中,模型的输入是某一样本的特征,函数的输出是这一样本对应的标签。常见的监督学习算法包括回归分析和统计分类。监督学习包括分类和数字预测两大类别,前者包括逻辑回归、决策树、KNN、随机森林、支持向量机、朴素贝叶斯等,后者包括线性回归、KNN、Gradient Boosting和AdaBoost等。

(2)无监督学习又称为非监督式学习,它的输入样本并不需要标记,而是自动从样本中学习特征实现预测。常见的无监督学习算法有聚类和关联分析等,在人工神经网络中,自组织映射(SOM)和适应性共振理论(ART)是最常用的无监督学习。

(3)强化学习是通过观察来学习做成什么样的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断。强化学习强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。

根据机器学习的任务分类,可以分为回归、分类、聚类三大常见机器学习任务。某些机器学习算法可能同时属于不同的分类,如深度学习算法可能存在于监督学习,也可能用于强化学习,在实践过程中可依据实际需要进行选择。

1.分类算法

分类算法是应用分类规则对记录进行目标映射,将其划分到不同的分类中,构建具有泛化能力的算法模型,即构建映射规则来预测未知样本的类别。分类算法包括预测和描述两种,经过训练集学习的预测模型在遇到未知记录时,应用规则对其进行类别划分,而描述型的分类主要是对现有数据集中特征进行解释并进行区分,例如对动植物的各项特征进行描述,并进行标记分类,由这些特征来决定其属于哪一类目。

主要的分类算法包括决策树、支持向量机(Support Vector Machine,SVM)、最近邻(K-Nearest Neighbor,KNN)算法、贝叶斯网络(Bayes Network)和神经网络等。

(1)决策树

顾名思义,决策树是一棵用于决策的树,目标类别作为叶子节点,特征属性的验证作为非叶子节点,而每个分支是特征属性的输出结果。决策树擅长对人物、位置、事物的不同特征、品质、特性进行评估,可应用于基于规则的信用评估、比赛结果预测等。决策过程是从根节点出发,测试不同的特征属性,按照结果的不同选择分支,最终落到某一叶子节点,获得分类结果。主要的决策树算法有ID3、C4.5、C5.0、CART、CHAID、SLIQ、SPRINT等。

决策树的构建过程是按照属性的优先级或重要性来逐渐确定树的层次结构,使其叶子节点尽可能属于同一类别,一般采用局部最优的贪心(贪婪)策略来构建决策树。

(2)支持向量机

支持向量机(Support Vector Machine,SVM)是由瓦普尼克(Vapnik)等人设计的一种分类器,其主要思想是将低维特征空间中的线性不可分进行非线性映射,转化为高维空间的线性可分。此外,应用结构风险最小理论在特征空间优化分割超平面,可以找到尽可能宽的分类边界,特别适合两分类的问题,例如,在二维平面图中某些点是杂乱排布的,无法用一条直线分为两类,但是在三维空间中,可能通过一个平面将其划分。

为了避免在低维空间向高维空间的转化过程中增加计算复杂性和“维数灾难”,支持向量机应用核函数,不需要关心非线性映射的显式表达式,直接在高维空间建立线性分类器,优化了计算复杂度。支持向量机常见的核函数有线性核函数、多项式核函数、径向基函数和二层神经网络核函数等。

支持向量机的目标变量以二分类最佳,虽然可以用于多分类,但效果不好。与其他分类算法相比,支持向量机对小样本数据集的分类效果更好。

(3)最近邻算法

对样本应用向量空间模型表示,将相似度高的样本分为一类,对新样本计算与之距离最近(最相似)的样本的类别,那么新样本就属于这些样本中类别最多的那一类。可见,影响分类结果的因素分别为距离计算方法、近邻的样本数量等。

最近邻算法支持多种相似度距离计算方法:欧氏距离(Euclidean Distance)、曼哈顿距离(Manhattan Distance)、切比雪夫距离(Chebyshew Distance)、闵可夫斯基距离(Minkowski Distance)、标准化欧氏距离(Standardized Euclidean distance)、马氏距离(Mahalanobis Distance)、巴氏距离(Bhattacharyya Distance)、汉明距离(Hamming distance)、夹角余弦(Cosine)、杰卡德相似系数(Jaccard similarity coefficient)、皮尔逊系数(Pearson Correlation Coefficient)。

最近邻算法的主要缺点有:①在各分类样本数量不平衡时误差较大;②由于每次比较要遍历整个训练样本集来计算相似度,所以分类的效率较低,时间和空间复杂度较高;③近邻的数量选择不合理可能会导致结果的误差较大;④在原始近邻算法中没有权重的概念,所有特征采用相同的权重参数,这样计算出来的相似度易产生误差。

(4)贝叶斯网络

贝叶斯网络又称为置信网络(Belief Network),是基于贝叶斯定理绘制的具有概率分布的有向弧段图形化网络,其理论基础是贝叶斯公式,网络中的每个点表示变量,有向弧段表示两者间的概率关系。

与神经网络相比,贝叶斯网络中的节点都具有实际的含义,节点之间的关系比较明确,可以从贝叶斯网络中直观看到变量之间的条件独立和依赖关系,可以进行结果和原因的双向推理。在贝叶斯网络中,随着网络中节点数量增加,概率求解的过程非常复杂并难以计算,所以在节点数较多时,为减少推理过程和降低复杂性,一般选择朴素贝叶斯算法或推理的方式实现以减少模型复杂度。

(5)神经网络

神经网络包括输入层、隐藏层、输出层,每一个节点代表一个神经元,节点之间的连线对应权重值,输入变量经过神经元时会运行激活函数,对输入值赋予权重并加上偏置,将输出结果传递到下一层中的神经元,而权重值和偏置在神经网络训练过程中不断修正。

神经网络的训练过程主要包括前向传输和逆向反馈,将输入变量逐层向前传递最后得到输出结果,并对比实际结果,逐层逆向反馈误差,同时对神经元中权重值和偏置进行修正,然后重新进行前向传输,依此反复迭代直到最终预测结果与实际结果一致或在一定的误差范围内。

与神经网络相关的基础概念有感知器、反向传播算法、Hopfield神经网络、自组织映(SOM)、学习矢量量化(LVQ)等。

BP神经网络的结果准确性与训练集的样本数量和质量有关,如果样本数量过少可能会出现过拟合的问题,无法泛化新样本;而且BP神经网络对训练集中的异常点比较敏感,需要分析人员对数据做好预处理,例如数据标准化、去除重复数据、移除异常数据,从而提高BP神经网络的性能。

由于神经网络是基于历史数据构建的模型,因此,随着新的数据不断产生,需要进行动态优化,例如随着时间变化,应用新的数据对模型重新训练,调整网络的结构和参数值。

2. 聚类算法

聚类是基于无监督学习的分析模型,不需要对原始数据进行标记,按照数据的内在结构特征进行聚集形成簇群,从而实现数据的分离。聚类与分类的主要区别是其并不关心数据是什么类别,而是把相似的数据聚集起来形成某一类簇。

在聚类的过程中,首先选择有效特征构成向量,然后按照欧氏距离或其他距离函数进行相似度计算,并划分聚类,通过对聚类结果进行评估,逐渐迭代生成新的聚类。

聚类应用领域广泛,可以用于发现不同的企业客户群体特征、消费者行为分析、市场细分、交易数据分析、动植物种群分类、医疗领域的疾病诊断、环境质量检测等,还可用于互联网和电商领域的客户分析、行为特征分类等。在数据分析过程中,可以先用聚类对数据进行探索,发现其中蕴含的类别特点,然后再用分类等方法分析每一类的特征。

聚类方法可分为基于层次的聚类(Hierarchical Method)、基于划分的聚类(Partitioning Method,PAM)、基于密度的聚类、基于约束的聚类、基于网络的聚类等。

基于层次的聚类是将数据集分为不同的层次,并采用分解或合并的操作进行聚类,主要包括BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies)CURE(Clustering Using Representatives)等。

基于划分的聚类是将数据集划分为k个簇,并对其中的样本计算距离以获得假设簇中心点,然后以簇的中心点重新迭代计算新的中心点,直到k个簇的中心点收敛为止。基于划分的聚类有k-均值等。

基于密度的聚类是根据样本的密度不断增长聚类,最终形成一组“密集连接”的点集,其核心思想是只要数据的密度大于阈值就将其合并成一个簇,可以过滤噪声,聚类结果可以是任意形状,不必为凸形。基于密度的聚类方法主要包括DBSCAN(Density-Based Spatial Clustering of Application with Noise)、OPTICS(Ordering Points To Identify the Clustering Structure)等。

(1)BIRCH算法

BIRCH算法是指利用层次方法来平衡迭代规则和聚类,它只需要扫描数据集一次便可实现聚类,它利用了类似B+树的结构对样本集进行划分,叶子节点之间用双向链表进行连接,逐渐对树的结构进行优化获得聚类。

BIRCH算法的主要优点是空间复杂度低,内存占用少,效率较高,能够对噪声点进行滤除。缺点是其树中节点的聚类特征树有个数限制,可能会产生与实际类别个数不一致的情况;而且对样本有一定的限制,要求数据集的样本是超球体,否则聚类的效果不佳。

(2)CURE算法

传统的基于划分聚类的方法得到的是凸形的聚类,对异常数据较敏感,而CURE算法是使用多个代表点来替换聚类中的单个点,算法更加稳健。另外,在处理大数据时采用分区和随机取样,使其处理大数据量的样本集时效率更高,且不会降低聚类质量。

(3)k-均值算法

传统的k-均值算法的聚类过程是在样本集中随机选择k个聚类中心点,对每个样本计算候选中心的距离进行分组,在得到分组之后重新计算类簇的中心,循环迭代直到聚类中心不变或收敛。k-均值存在较多改进算法,如初始化优化k-均值算法、距离优化Elkan k-Means算法、k-Prototype算法等。

k-均值算法的主要优点是可以简单快速处理大数据集,并且是可伸缩的,当数据集中类之间区分明显(凸形分布)时,聚类效果最好。这种算法的缺点是需要用户给出k值,即聚类的数目,而聚类数目事先很难确定一个合理的值。此外,k-均值算法对k值较敏感,如果k值不合理可能会导致结果局部最优。

(4)DBSCAN算法

DBSCAN算法是基于样本之间的密度实现空间聚类,基于核心点、边界点和噪声点等因素对空间中任意形状的样本进行聚类。与传统的k-均值相比,DBSCAN通过邻域半径和密度阈值自动生成聚类,不需要指定聚类个数,支持过滤噪声点。但是当数据量增大时,算法的空间复杂度较高,DBSCAN不适用于样本间的密度不均匀的情况,否则聚类的质量较差。对于高维的数据,一方面密度定义比较难,另一方面会导致计算量较大,聚类效率较低。

(5)OPTICS算法

在DBSCAN算法中,用户需要指定ε(邻域半径)和minPts(ε邻域最小点数)两个初始参数,用户手动设置这两个参数会对聚类结果产生比较关键的影响。而OPTICS解决了上述问题,为聚类分析生成一个增广的簇排序,代表了各样本点基于密度的聚类结构。

3. 关联分析

关联分析(Associative Analysis)是通过对数据集中某些项目同时出现的概率来发现它们之间的关联关系,其典型的应用是购物篮分析,通过分析购物篮中不同商品之间的关联,分析消费者的购买行为习惯,从而制定相应的营销策略,为商品促销、产品定价、位置摆放等提供支持,并且可用于对不同消费者群体的划分。关联分析主要包括Apriori算法和FP-growth算法。

(1)Apriori算法

Apriori算法主要实现过程是首先生成所有频繁项集,然后由频繁项集构造出满足最小置信度的规则。由于Apriori算法要多次扫描样本集,需要由候选频繁项集生成频繁项集,在处理大数据量数据时效率较低。

(2)FP-growth算法

为了改进Apriori算法的低效问题,韩家炜等人提出基于FP树生成频繁项集的FP-growth算法,该算法只进行两次数据集扫描且不使用候选项集,直接按照支持度来构造一个频繁模式树,用这棵树生成关联规则,在处理比较大的数据集时效率比Apriori算法大约快一个数量级,对于海量数据,可以通过数据划分、样本采样等方法进行再次改进和优化。

(3)Eclat算法

Eclat算法是一种深度优先算法,采用垂直数据表示形式,基于前缀的等价关系将搜索空间划分为较小的子空间,可以快速挖掘频繁项集。与FP-growth 和Apriori算法不同,Eclat算法的核心思想是倒排,将事务数据中的事务主键与项目(item)进行转换,用项目作为主键,这样就可以直观看到每个项目对应的事务ID有哪些,方便计算项目的频次,从而快速获得频繁项集。

在Eclat算法中,通过计算项集的交集,并对结果进行裁剪,可快速得到候选集的支持度。但是,因为求交集的操作耗时较长,所以这一过程的时间复杂度较高,效率较低。此外,这一算法的空间复杂度也比较高,会消耗大量的内存空间。

4. 回归分析

回归分析是一种研究自变量和因变量之间关系的预测模型,用于分析当自变量发生变化时因变量的变化值,要求自变量相互独立。回归分析的分类如下。

(1)线性回归

应用线性回归进行分析时要求自变量是连续型,线性回归用直线(回归线)建立因变量和一个或多个自变量之间的关系。

线性回归主要的特点如下。

  1. 自变量与因变量之间呈现线性关系。
  2. 多重共线性、自相关和异方差对多元线性回归的影响很大。
  3. 线性回归对异常值非常敏感,其能影响预测值。
  4. 在处理多个自变量时,需要用逐步回归的方法来自动选择显著性变量,不需要人工干预,其思想是将自变量逐个引入模型中,并进行F检验、t检验等来筛选变量,当新引入的变量对模型结果没有改进时,将其剔除,直到模型结果稳定。

逐步回归的目的是选择重要的自变量。用最少的变量去最大化模型的预测能力,它也是一种降维技术,主要的方法有前进法和后退法,前者是以最显著的变量开始,逐渐增加次显著变量;后者是逐渐剔除不显著的变量。

(2)逻辑回归

逻辑(Logistic)回归是数据分析中的常用算法,其输出的是概率估算值,将此值用Sigmoid函数进行映射到[0,1]区间,即可用来实现样本分类。逻辑回归对样本量有一定要求,在样本量较少时,概率估计的误差较大。

(3)多项式回归

在回归分析中有时会遇到线性回归的直线拟合效果不佳,如果发现散点图中数据点呈多项式曲线时,可以考虑使用多项式回归来分析。使用多项式回归可以降低模型的误差,但是如果处理不当易造成模型过拟合,在回归分析完成之后需要对结果进行分析,并将结果可视化以查看其拟合程度。

(4)岭回归

岭回归在共线性数据分析中应用较多,也称为脊回归,它是一种有偏估计的回归方法,是在最小二乘估计法的基础上做了改进,通过舍弃最小二乘法的无偏性,使回归系数更加稳定和稳健。其中R方值会稍低于普通回归分析方法,但回归系数更加显著,主要用于变量间存在共线性和数据点较少时。

(5)LASSO回归

LASSO回归的特点与岭回归类似,在拟合模型的同时进行变量筛选和复杂度调整。变量筛选是逐渐把变量放入模型从而得到更好的自变量组合。复杂度调整是通过参数调整来控制模型的复杂度,例如减少自变量的数量等,从而避免过拟合。LASSO回归也是擅长处理多重共线性或存在一定噪声和冗余的数据,可以支持连续型因变量、二元、多元离散变量的分析。

5. 深度学习

深度学习方法是通过使用多个隐藏层和大量数据来学习特征,从而提升分类或预测的准确性,与传统的神经网络相比,不仅在层数上较多,而且采用了逐层训练的机制来训练整个网络,以防出现梯度扩散。深度学习包括受限玻尔兹曼机(RBM)、深度信念网(DBN)、卷积神经网络(CNN)、层叠自动编码器(SAE)、深度神经网络(DNN)、循环神经网络(RNN)、对抗神经网络(GAN)以及各种变种网络结构。这些深度神经网络都可以对训练集数据进行特征提取和模式识别,然后应用于样本的分类。

受限玻尔兹曼机(RBM)主要解决概率分布问题,是一种玻尔兹曼机的变体,基于物理学中的能量函数实现建模,“受限”是指层间存在连接,但层内的单元间不存在连接。RBM应用随机神经网络来解释概率图模型(Probabilistic Graphical Model),所谓“随机”是指网络中的神经元是随机神经元,输出状态只有未激活和激活两种,处于哪种状态是根据概率统计来决定的。

深度信念网络(DBN)是杰弗里·希尔顿(Geoffrey Hinton)在2006年提出的,作为早期深度生成式模型的代表,目标是建立一个样本数据和标签之间的联合分布。DBN由多个RBM层组成,RBM的层神经元分为可见神经元和隐性神经元,其中,接受输入的是可见神经元,隐神经元用于提取特征。通过训练神经元之间的权重,不仅可以用来识别特征、分类数据,还可以让整个神经网络按照最大概率来生成训练数据。

长短期记忆(Long Short-term Memory,LSTM)神经网络是循环神经网络的一种,尽管这个早期循环神经网络只允许留存少量的信息,但其形式会存在损耗,而LSTM有长期与短期的记忆,拥有更好的控制记忆的能力,避免梯度衰减或逐层传递的值的最终退化。LSTM使用被称为“门(gate)”的记忆模块或结构来控制记忆,这种门可以在合适的时候传递或重置其值。LSTM的优点是不仅具备其他循环神经网络的优点,同时具有更好的记忆能力,所以更常被使用于自然语言处理、语言翻译等。

在卷积神经网络(Convolutional Neural Network)中,卷积是指将源数据与滤波矩阵进行内积操作,从而实现特征权重的融合,通过设置不同的滤波矩阵实现提取不同特征。将大量复杂特征进行抽象和提取,并且极大减少模型计算量,目前在图像识别、文本分类等领域应用较广。

目前深度学习的方法在图像和音视频的识别、分类和模式检测等领域已经非常成熟,此外还可以衍生成新的训练数据以构建对抗网络(GAN),从而利用两个模型之间互相对抗以提高模型的性能。

在数据量较多时可考虑采用这一算法。应用深度学习的方法进行分析时,需注意训练集(用于训练模型)、验证集(用于在建模过程中调参和验证)、测试集的样本分配,一般以6:2:2的比例进行分配。此外,采用深度学习进行分析时对数据量有一定的要求,如果数据量只有几千或几百条,极易出现过拟合的情况,其效果不如使用支持向量机等分类算法。

(四)机器学习的一般流程

机器学习的一般流程包括确定分析目标、收集数据、整理数据、预处理数据、训练模型、评估模型、优化模型、上线部署等步骤。首先要从业务的角度分析,然后提取相关的数据进行探查,发现其中的问题,再依据各算法的特点选择合适的模型进行实验验证,评估各模型的结果,最终选择合适的模型进行应用。

1. 定义分析目标

应用机器学习解决实际问题,首先要明确目标任务,这是机器学习算法选择的关键。明确要解决的问题和业务需求,才可能基于现有数据设计或选择算法。例如,在监督式学习中对定性问题可用分类算法,对定量分析可用回归方法。在无监督式学习中,如果有样本细分则可应用聚类算法,如需找出各数据项之间的内在联系,可应用关联分析。

2. 收集数据

数据要有代表性并尽量覆盖领域,否则容易出现过拟合或欠拟合。对于分类问题,如果样本数据不平衡,不同类别的样本数量比例过大,都会影响模型的准确性。还要对数据的量级进行评估,包括样本量和特征数,可以估算出数据以及分析对内存的消耗,判断训练过程中内存是否过大,否则需要改进算法或使用一些降维技术,或者使用分布式机器学习技术。

3. 整理预处理

获得数据以后,不必急于创建模型,可先对数据进行一些探索,了解数据的大致结构、数据的统计信息、数据噪声以及数据分布等。在此过程中,为了更好地查看数据情况,可使用数据可视化方法或数据质量评价对数据质量进行评估。

通过数据探索后,可能发现不少问题,如缺失数据、数据不规范、数据分布不均衡、数据异常、数据冗余等。这些问题都会影响数据质量。为此,需要对数据进行预处理,这部分工作在机器学习中非常重要,特别是在生产环境中的机器学习,数据往往是原始、未加工和处理过的,数据预处理常常占据整个机器学习过程的大部分时间。归一化、离散化、缺失值处理、去除共线性等,是机器学习的常用预处理方法。

4. 数据建模

应用特征选择方法,可以从数据中提取出合适的特征,并将其应用于模型中得到较好的结果。筛选出显著特征需要理解业务,并对数据进行分析。特征选择是否合适,往往会直接影响模型的结果,对于好的特征,使用简单的算法也能得出良好、稳定的结果。特征选择时可应用特征有效性分析技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率和逻辑回归权重等方法。

训练模型前,一般会把数据集分为训练集和测试集,或对训练集再细分为训练集和验证集,从而对模型的泛化能力进行评估。

模型本身并没有优劣。在模型选择时,一般不存在对任何情况都表现很好的算法,这又称为“没有免费的午餐”原则。因此在实际选择时,一般会用几种不同方法来进行模型训练,然后比较它们的性能,从中选择最优的一个。不同的模型使用不同的性能衡量指标。

5. 模型训练

在模型训练过程中,需要对模型超参进行调优,如果对算法原理理解不够透彻,往往无法快速定位能决定模型优劣的模型参数,所以在训练过程中,对机器学习算法原理的要求较高,理解越深入,就越容易发现问题的原因,从而确定合理的调优方案。

6. 模型评估

使用训练数据构建模型后,需使用测试数据对模型进行测试和评估,测试模型对新数据的泛化能力。如果测试结果不理想,则分析原因并进行模型优化,如采用手工调节参数等方法。如果出现过拟合,特别是在回归类问题中,则可以考虑正则化方法来降低模型的泛化误差。可以对模型进行诊断以确定模型调优的方向与思路,过拟合、欠拟合判断是模型诊断中重要的一步。常见的方法有交叉验证、绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。

误差分析是通过观察产生误差的样本,分析误差产生的原因,一般的分析流程是依次验证数据质量、算法选择、特征选择、参数设置等,其中对数据质量的检查最容易忽视,常常在反复调参很久后才发现数据预处理没有做好。一般情况下,模型调整后,需要重新训练和评估,所以机器学习的模型建立过程就是不断地尝试,并最终达到最优状态,从这一点看,机器学习具有一定的艺术性。

在工程实现上,提升算法准确度可以通过特征清洗和预处理等方式,也可以通过模型集成的方式。一般情况下,直接调参的工作不会很多。毕竟大量数据训练起来很慢,而且效果难以保证。

7. 模型应用

模型应用主要与工程实现的相关性比较大。工程上是结果导向,模型在线上运行的效果直接决定模型的好坏,不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受等方面。


参考资料:《机器学习》–赵卫东 董亮编著

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值