0


【Spark ML】第 1 章:机器学习简介

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​

📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】 深度学习【DL】

🖍foreword

✔说明⇢本人讲解主要包括Python、机器学习(ML)、深度学习(DL)、自然语言处理(NLP)等内容。

如果你对这个系列感兴趣的话,可以关注订阅哟👋

机器学习(ML)是人工智能的一个子领域,是制造智能机器的科学和工程。人工智能的先驱之一亚瑟·塞缪尔(Arthur Samuel)将机器学习定义为“一个研究领域,使计算机能够在没有明确编程的情况下学习。图 1-1 显示了人工智能、机器学习和深度学习之间的关系。人工智能(AI)包括其他领域,这意味着虽然所有机器学习都是AI,但并非所有AI都是机器学习。人工智能的另一个分支,符号人工智能,是二十世纪大部分时间的主要人工智能研究范式。 符号人工智能实现被称为专家系统或知识图谱,它们本质上是规则引擎,使用if-then语句通过演绎推理得出逻辑结论。您可以想象,符号AI受到几个关键限制。其中最主要的是在规则引擎中定义规则后修改规则的复杂性。添加更多规则会增加规则引擎中的知识,但不能改变现有知识。v另一方面,机器学习模型更灵活。他们可以在新数据上进行重新训练,以学习新知识或修改现有知识。符号AI还涉及大量的人为干预。它依赖于人类知识,并要求人类在规则引擎中对规则进行硬编码。另一方面,机器学习更具动态性,从输入数据中学习和识别模式以产生所需的输出。

图 1-1
AI、机器学习和深度学习之间的关系

深度学习在2000年代中期的复兴使人们重新关注人工智能和机器学习的连接主义方法。深度学习的复兴,高速图形处理单元(GPU)的可用性,大数据的出现以及来自谷歌,Facebook,亚马逊,微软和IBM等公司的投资创造了一场完美的风暴,推动了人工智能的复兴。

人工智能和机器学习用例

在过去的十年中,机器学习取得了一系列惊人的进步。这些突破正在扰乱我们的日常生活,并在您能想到的几乎每个垂直领域产生影响。这绝不是机器学习用例的详尽列表,但它表明了每个行业正在发生的许多创新。

零售

零售业是最早获得机器学习好处的行业之一。多年来,在线购物网站一直依靠协作和基于内容的过滤算法来个性化购物体验。在线推荐和高度针对性的营销活动为零售商带来了数百万甚至数十亿美元的收入。也许是ML驱动的在线推荐和个性化的典型代表,亚马逊是实现机器学习好处的最受欢迎(和最成功)的在线零售商。根据麦肯锡进行的一项研究,亚马逊35%的收入.com来自其推荐引擎。零售业的其他机器学习应用包括货架空间规划、货架图优化、定向营销、客户细分和需求预测。

运输

几乎每个主要的汽车制造商都在研究由深度神经网络驱动的人工智能自动驾驶汽车。这些车辆配备了支持GPU的计算机,可以每秒处理超过100万亿次操作(TOPS),以实现实时AI感知,导航和路径规划。UPS和FedEx等运输和物流公司使用机器学习进行路线和燃料优化,车队监控,预防性维护,旅行时间估计和智能地理围栏。

金融服务

预测客户终身价值 (CLV)、信用风险预测和欺诈检测是金融服务的一些关键机器学习用例。对冲基金和投资银行使用机器学习来分析来自Twitter Firehose的数据,以检测可能推动市场的推文。金融服务的其他常见机器学习用例包括预测下一个最佳操作、流失预测、情绪分析和多渠道营销归因。

医疗保健和生物技术

医疗保健是人工智能和机器学习研究和应用的关键领域。医院和医疗保健初创企业正在使用人工智能和机器学习来协助准确诊断危及生命的疾病,如心脏病、癌症和肺结核。人工智能驱动的药物发现以及成像和诊断是人工智能获得牵引力最具代表性的行业。.人工智能还彻底改变了生物技术和基因组学研究的进行方式,从而在通路分析、微阵列分析、基因预测和功能注释方面带来了新的创新。

制造业

具有前瞻性思维的制造商正在使用深度学习进行质量检测,以检测硬件产品上的裂缝、边缘不平整和划痕等缺陷。多年来,制造业和工业工程师一直使用生存分析来预测重型设备的故障时间。人工智能驱动的机器人正在自动化制造过程,比人类机器人运行得更快,精度更高,从而提高了生产率并减少了产品缺陷。物联网(IoT)的到来和丰富的传感器数据正在扩大该行业的机器学习应用数量。

政府

机器学习在政府中有着广泛的应用。例如,公用事业公司一直在使用机器学习来监控公用事业管道。异常检测技术有助于检测泄漏和管道爆裂,这些泄漏和爆裂可能导致全市范围的服务中断和数百万的财产损失。机器学习也被用于实时水质监测,防止疾病污染并可能挽救生命。为了节约能源,公共能源公司使用机器学习通过确定用电量的峰值和谷值来相应地调整能量输出。人工智能网络安全是另一个快速增长的领域,也是一个关键的政府用例,尤其是在当今时代。

机器学习和数据

机器学习模型是使用算法和数据的组合构建的。使用强大的算法至关重要,但同样重要的是(有些人可能会说更重要)是使用大量高质量数据进行训练。一般来说,机器学习在处理更多数据时表现更好。这个概念于2001年由微软研究人员Michele Banko和Eric Brill在他们有影响力的论文“扩展到非常非常大的语料库以消除自然语言歧义”中首次提出。谷歌的研究总监彼得·诺维格(Peter Norvig)在他的论文“数据的不合理有效性”中进一步推广了这一概念。然而,比数量更重要的是质量。每个高质量的模型都以高质量的特征开始。这就是特征工程进入画面的地方。特征工程是将原始数据转换为高质量特征的过程。这通常是整个机器学习过程中最艰巨的部分,但也是最重要的部分。我将在本章后面更详细地讨论特征工程。但与此同时,让我们来看看一个典型的机器学习数据集。图 1-2 显示了 Iris 数据集的一个子集。我将在本书的一些例子中使用此数据集。

图 1-2
机器学习数据集

观察

单行数据称为观测值或实例。

特征

要素是观测值的属性。特征是用作模型输入的独立变量。在图1-2中,特征是花瓣长度,花瓣宽度,萼片长度和萼片宽度。

类标签

类标签是数据集中的因变量。这是我们试图预测的事情。它是输出。在我们的示例中,我们试图预测鸢尾花的类型:维吉尼卡,塞托萨和花色。

模型

模型是具有预测能力的数学构造。它估计数据集中自变量和因变量之间的关系。

机器学习方法

有不同类型的机器学习方法。决定使用哪个在很大程度上取决于您要完成的任务以及您拥有的原始数据类型。

监督学习

监督学习是一项机器学习任务,它使用训练数据集进行预测。监督学习可以分为分类或回归。回归用于预测连续值,如“价格”、“温度”或“距离”,而分类用于预测“是”或“否”、“垃圾邮件”或“非垃圾邮件”或“恶性”或“良性”等类别。

分类

分类可能是最常见的监督式机器学习任务。您很可能已经遇到过使用分类的应用程序,甚至没有意识到它。流行的用例包括医疗诊断、定向营销、垃圾邮件检测、信用风险预测和情绪分析,仅举几例。有三种类型的分类任务:二进制、多类和多标签。

二元分类

如果只有两个类别,则任务是二元分类或二项式分类。例如,当使用二元分类算法进行垃圾邮件检测时,输出变量可以有两个类别:“垃圾邮件”或“非垃圾邮件”。对于检测癌症,类别可以是“恶性”或“良性”。对于有针对性的营销,预测某人购买牛奶等商品的可能性,类别可以简单地为“是”或“否”。

多类分类

多类或多项式分类任务有三个或更多类别。例如,要预测天气状况,您可能有五个类别:“下雨”,“多云”,“晴天”,“下雪”和“多风”。为了扩展我们的目标营销示例,可以使用多类分类来预测客户是否更有可能购买全脂牛奶、低脂牛奶、低脂牛奶或脱脂牛奶。

多标签分类

在多标签分类中,多个类别可以分配给每个观测值。相反,在多类分类中,只能将一个类别分配给观测值。使用我们的目标营销示例,多标签分类不仅用于预测客户是否更有可能购买牛奶,还用于预测其他商品,例如饼干,黄油,热狗或面包。

分类和回归算法

多年来,已经开发了各种分类和回归算法。它们在方法、功能、复杂性、易用性、训练性能和预测准确性方面各不相同。我在以下文本中描述了最受欢迎的。我在第3章中更详细地介绍了它们。

支持向量机

支持向量机(SVM)是一种流行的算法,它的工作原理是找到最大化两个类之间边际的最佳超平面,将数据点分成尽可能宽的间隙分成单独的类。最接近分类边界的数据点称为支持向量。

逻辑回归

逻辑回归是预测概率的线性分类器。它使用逻辑(sigmoid)函数将其输出转换为可映射到两个(二进制)类的概率值。通过多项逻辑 (softmax) 回归支持多类分类。十二线性分类器(如逻辑回归)适用于数据具有明确的决策边界的情况。

朴素贝叶斯

朴素贝叶斯是一种基于贝叶斯定理的简单多类线性分类算法。朴素贝叶斯之所以得名,是因为它天真地认为数据集中的特征是独立的,忽略了特征之间任何可能的相关性。在实际场景中并非如此,朴素贝叶斯仍然倾向于表现良好,特别是在小型数据集或具有高维的数据集上。与线性分类器一样,它在非线性分类问题上表现不佳。朴素贝叶斯是一种计算效率高且高度可扩展的算法,只需要对数据集进行一次传递。它是使用大型数据集进行分类任务的良好基线模型。它的工作原理是找到给定一组特征的点属于类的概率。

多层感知器

多层感知器是一种前馈人工网络,由几个完全连接的节点层组成。输入图层中的节点与输入数据集相对应。中间层中的节点使用逻辑(sigmoid)函数,而最终输出层中的节点使用 softmax 函数来支持多类分类。输出层中的节点数必须与类数匹配。十三

决策树

决策树通过学习从输入变量推断的决策规则来预测输出变量的值。从视觉上看,决策树看起来像一棵倒置的树,根节点位于顶部。每个内部节点都表示对属性的测试。叶节点表示类标签,而单个分支表示测试结果。决策树易于解释。与逻辑回归等线性模型相比,决策树不需要特征缩放。它能够处理缺失的特征,并处理连续特征和分类特征。十四单热编码分类功能十五不是必需的,实际上在使用决策树和基于树的融合时不鼓励这样做。单热编码会创建不平衡的树,并要求树生长得非常深才能实现良好的预测性能。对于高基数分类特征尤其如此。不利的一面是,决策树对数据中的噪声很敏感,并且有过度拟合的趋势。由于此限制,决策树本身很少在实际生产环境中使用。如今,决策树作为更强大的集成算法(如随机森林和梯度提升树)的基础模型。

随机森林

随机森林是一种集成算法,它使用一组决策树进行分类和回归。它使用一种称为bagging (自举聚合)的方法来减少方差,同时保持低偏差。装袋训练来自训练数据子集的单个树。除了装袋之外,随机森林还使用另一种称为特征装袋的方法。与装袋(使用观测值的子集)相比,特征装袋使用特征(列)的子集。功能装袋旨在减少决策树之间的相关性。如果没有特征袋,单个树将非常相似,特别是在只有少数主要特征的情况下。对于分类,单个树的输出或模式的多数投票将成为模型的最终预测。对于回归,单个树的输出的平均值成为最终输出(图 3-3)。Spark 并行训练几棵树,因为每棵树在随机森林中都是独立训练的。

梯度提升树

梯度提升树 (GBT) 是另一种基于树的集成算法,类似于随机森林。GBT使用一种称为提升的技术从弱学习者(浅树)中创建强大的学习者。GBT 按顺序训练决策树的集合每个后续树都会减少前一个树的误差。这是通过使用上一个模型的残差来拟合下一个模型来完成的.此残余校正过程使用交叉验证确定的迭代次数执行一组迭代次数,直到残差完全最小化。

XGBoost

XGBoost (极限梯度提升)是目前市面上最好的梯度提升树实现之一。XGBoost于2014年3月27日由陈天奇作为研究项目发布,已成为分类和回归的主导机器学习算法。XGBoost是使用梯度提升的一般原理设计的,将弱学习者组合成强学习者。但是,虽然梯度提升树是按顺序构建的 - 慢慢地从数据中学习以改善其在后续迭代中的预测,但XGBoost并行构建树。

XGBoost 通过其内置的正则化来控制模型复杂性并减少过拟合,从而产生更好的预测性能。XGBoost 使用近似算法在为连续要素查找最佳分割点时查找分割点。近似拆分方法使用离散条柱来存储连续特征,从而显著加快模型训练速度。XGBoost 包括另一种使用基于直方图的算法的树生长方法,该方法提供了一种将连续要素划分为离散条柱的更有效方法。但是,虽然近似方法在每次迭代时创建一组新的条柱,但基于直方图的方法在多次迭代中重用条柱。此方法允许使用近似方法无法实现的其他优化,例如缓存箱以及父直方图和同级直方图减法的功能断续器.为了优化排序操作,XGBoost 将排序数据存储在块的内存单元中。排序块可以由并行 CPU 内核有效地分发和执行。XGBoost可以通过其加权分位数草图算法有效地处理加权数据,可以有效地处理稀疏数据,具有缓存感知能力,并通过将磁盘空间用于大型数据集来支持非核心计算,因此数据不必适合内存。XGBoost 不是核心火花 MLlib 库的一部分,但它可以作为外部包使用

LightGBM

多年来,XGBoost一直是每个人最喜欢的分类和回归算法。最近,光GBM成为王位的新挑战者。它是一种相对较新的基于树的梯度提升变体,类似于XGBoost。LightGBM 于 2016 年 10 月 17 日发布,是微软分布式机器学习工具包 (DMTK) 项目的一部分。它被设计为快速和分布式,从而带来更快的训练速度和低内存使用率。它支持GPU和并行学习以及处理大型数据集的能力。

LightGBM已经在公共数据集的几个基准测试和实验中证明,它比XGBoost更快,准确性更高。与 XGBoost 相比,它具有几个优点。LightGBM 利用直方图将连续要素桶装到离散条柱中。与 XGBoost(默认情况下,XGBoost 使用基于预排序的算法进行树学习)相比,这为 LightGBM 提供了多项性能优势,例如减少了内存使用量,降低了计算每次拆分的收益的成本,以及降低了并行学习的通信成本。LightGBM 通过对其同级和父级执行直方图减法来计算节点的直方图,从而实现额外的性能提升。在线基准测试显示,在某些任务中,LightGBM比XGBoost(不分箱)快11到15倍。Light GBM通常通过叶子(最佳优先)种植树木在准确性方面优于XGBoost。训练决策树有两种主要策略,级别和叶。逐级树生长是大多数基于树的融合(包括 XGBoost)的决策树的传统增长方式。光GBM引入了叶式生长策略。与水平生长相比,叶向生长通常收敛得更快二十二并实现更低的损耗。与 XGBoost 一样,光大号不是核心火花 MLlib 库的一部分,但它可以作为外部软件包使用。光GBM的大多数功能最近都移植到了XGBoost。我将在第 3 章中更详细地讨论这两种算法。

回归

回归是用于预测连续数值的监督式机器学习任务。流行的用例包括销售和需求预测,预测库存,房屋或商品价格以及天气预报,仅举几例。决策树、随机森林、梯度提升树、XGBoost 和 LightGBM 也可用于回归。我将在第 3 章中更详细地讨论回归。

线性回归

线性回归用于检查一个或多个自变量与因变量之间的线性关系。对单个自变量和单个连续因变量之间关系的分析称为简单线性回归。多元回归是简单线性回归的扩展,用于基于多个自变量预测因变量的值。

Survival Regression

Survival Regression,也称为死亡时间分析或故障时间分析,用于预测特定事件发生的时间。区分生存回归和线性回归的主要特征是它能够处理审查,这是一种缺失的数据问题,其中事件的时间未知。

无监督学习

无监督学习是一种机器学习任务,无需标记响应的帮助即可在数据集中查找隐藏的模式和结构。当您只能访问输入数据并且训练数据不可用或难以获取时,无监督学习是理想的选择。常用方法包括聚类分析、主题建模、异常检测、建议和主成分分析。

聚类

聚类分析是一项无监督的机器学习任务,用于对具有一些相似之处的未标记观察结果进行分组。流行的群集用例包括客户细分、欺诈分析和异常检测。聚类分析还经常用于在训练数据稀缺或不可用的情况下为分类器生成训练数据。

K 均值

K-Means是用于聚类的最流行的无监督学习算法之一。K-Means 的工作原理是随机分配用作每个聚类起点的质心。该算法根据欧氏距离以迭代方式将每个数据点分配给最近的质心。然后,它通过计算属于该聚类的所有点的平均值来计算每个聚类的新质心。当达到预定义的迭代次数或将每个数据点分配给其最近的质心并且没有更多可以执行的重新分配时,该算法将停止迭代。

主题建模

主题模型自动派生一组文档中的主题(或主题)。这些主题可用于基于内容的建议、文档分类、降维和特征化。

LDA

潜在狄利克雷分配(LDA)由David M. Blei,安德鲁·吴和迈克尔·乔丹于2003年开发,尽管乔纳森·普里查德,马修·斯蒂芬斯和彼得·唐纳利在2000年也提出了用于群体遗传学的类似算法。应用于机器学习的LDA基于图形模型,是建立在GraphX上的第一个包含火花MLlib的算法。潜在狄利克雷分配广泛用于主题建模。

Anomaly Detection

异常或异常值检测可识别显著偏离且从大多数数据集中脱颖而出的罕见观测值。它经常用于发现欺诈性金融交易,识别网络安全威胁或执行预测性维护,仅举几个用例。

Isolation Forest

隔离森林是由刘飞、凯明婷、周志华共同开发的一种基于树木的异常检测集成算法。与大多数异常情况检测技术不同,隔离林尝试显式检测实际异常值,而不是标识正常数据点。隔离林的运行基于这样一个事实,即数据集中通常存在少量异常值,因此容易受到隔离过程的影响。将异常值与正常数据点隔离是有效的,因为它需要更少的条件。相比之下,隔离正常数据点通常涉及更多条件。与其他基于树的融合类似,隔离林建立在称为隔离树的决策集合上,每棵树都有整个数据集的子集。异常分数计算为森林中树木的平均异常分数。异常分数派生自拆分数据点所需的条件数。接近 1 的异常评分表示异常,而低于 0.5 的分数表示非异常观测值。

一类支持向量机

支持向量机 (SVM) 使用最优超平面将数据点划分为单独的类,从而尽可能扩大差距,从而对数据进行分类。在单类 SVM 中,模型在只有一个“正常”类的数据上进行训练。与正常示例不同的数据点被视为异常。

降维

当数据集中存在大量要素时,降维至关重要。例如,基因组学和工业分析领域的机器学习用例通常涉及数千甚至数百万个特征。高维性使模型更加复杂,增加了过拟合的机会。在某个点添加更多功能实际上会降低模型的性能。此外,对高维数据的训练需要大量的计算资源。这些被统称为维度的诅咒。降维技术旨在克服维度的诅咒。

主成分分析

主成分分析(PCA)是一种无监督机器学习技术,用于降低特征空间的维度。它检测要素之间的相关性并生成减少的线性不相关要素的数量,同时保留原始数据集中的大部分方差。这些更紧凑、线性不相关的特征称为主成分。主成分按其解释方差的降序排序。其他降维技术包括奇异值分解(SVD)和线性判别分析(LDA)。

Recommendations

提供个性化推荐是机器学习最受欢迎的应用之一。几乎每个主要零售商,如亚马逊,阿里巴巴,沃尔玛和Target,都会根据客户行为提供某种个性化推荐。Netflix,Hulu和Spotify等流媒体服务根据用户的口味和偏好提供电影或音乐推荐。协作过滤、基于内容的过滤和关联规则学习(用于市场篮分析)是构建推荐系统的最常用方法。Spark MLlib 支持用于协同过滤的交替最小二乘法 (ALS), 支持用于市场篮分析的 FP 增长和前缀跨度。

半监督学习

在某些情况下,访问标记数据既昂贵又耗时。在标记反应稀缺的情况下,半监督学习结合了监督和无监督学习技术来做出预测。在半监督学习中,未标记的数据用于增强标记数据以提高模型准确性。

强化学习

强化学习试图通过反复试验来学习,以确定哪种行动提供最大的回报。强化学习有三个组成部分:代理(决策者或学习者),环境(代理与什么交互)和行动(代理可以执行什么)。二十六这种类型的学习经常用于游戏,导航和机器人技术。

深度学习

深度学习是机器学习和人工智能的一个子领域,它使用深度、多层的人工神经网络。它负责人工智能最近的许多突破。虽然深度学习可用于更平凡的分类任务,但当应用于更复杂的问题时,其真正的力量是闪耀的,如医疗诊断、面部识别、自动驾驶汽车、欺诈分析和智能语音控制助手。二十七在某些领域,深度学习使计算机能够匹配甚至超越人类的能力。

神经网络

神经网络是一类算法,其操作类似于人脑的互连神经元。神经网络包含由互连节点组成的多个层。通常有一个输入层、一个或多个隐藏层和一个输出层。数据通过输入层通过神经网络。隐藏层通过加权连接网络处理数据。隐藏层中的节点为输入分配权重,并在此过程中将其与一组系数组合在一起。数据通过节点的激活函数,该函数确定层的输出。最后,数据到达输出层,产生神经网络的最终输出。具有多个隐藏层的神经网络被称为“深度”神经网络。层数越多,网络越深,通常网络越深,学习就越复杂,可以解决的问题就越复杂。

卷积神经网络

卷积神经网络(简称卷积或CNN)是一种特别擅长分析图像的神经网络(尽管它们也可以应用于音频和文本数据)。卷积神经网络层中的神经元按三个维度排列:高度、宽度和深度。CNN 使用卷积层来学习其输入特征空间(图像)中的局部模式,例如纹理和边缘。相反,完全连接(密集)的层学习全局模式。卷积层中的神经元仅连接到其前层的一个小区域,而不是像密集层那样连接到所有神经元。致密层的完全连接结构会导致极多的参数,这是低效的,并且可能很快导致过拟合。断续器我将在第7章中更详细地介绍深度学习和深度卷积神经网络。

特征工程

特征工程是转换数据以创建可用于训练机器学习模型的特征的过程。通常,原始数据需要通过多种数据准备和提取技术进行转换。例如,对于非常大的数据集,可能需要降维。可能必须从其他要素创建新要素。基于距离的算法需要要素缩放。当分类特征是单热编码时,某些算法的性能更好。文本数据通常需要标记化和特征矢量化。将原始数据转换为特征后,对其进行评估,并选择具有最强预测能力的那些。

特征工程是机器学习的一个重要方面。如果要成功,在几乎所有机器学习的努力中,生成高度相关的特征都是不言而喻的。不幸的是,特征工程是一项复杂且耗时的任务,通常需要领域专业知识。这是一个迭代过程,涉及集思广益,创建特征并研究它们对模型准确性的影响。事实上,典型的数据科学家花费大部分时间根据福布斯的一项调查准备数据(图1-3)。

图1-3
数据准备约占数据科学家工作的80%

特征工程任务可分为几类:特征选择、特征重要性、特征提取和特征构建。

功能选择

特征选择是识别重要特征并消除不相关或冗余特征的重要预处理步骤。它提高了预测性能和模型训练效率,并降低了维度。必须删除不相关的特征,因为它们会对模型的准确性产生负面影响,并降低模型训练的速度。某些功能可能没有任何预测能力,或者它们可能与其他功能冗余。但是,我们如何确定这些功能是否相关呢?领域知识至关重要。例如,如果您正在构建一个模型来预测贷款违约的概率,那么了解在量化信用风险时要考虑哪些因素会有所帮助。您可以从借款人的债务与收入比率开始。还有其他借款特定因素需要考虑,例如借款人的信用评分,就业期限,就业头衔和婚姻状况。经济增长等全市场考虑因素也可能很重要。还应考虑人口统计学和心理信息。获得功能列表后,有几种方法可以客观地确定其重要性。有多种特征选择方法可帮助您为模型选择正确的特征。

筛选方法

滤波方法使用卡方检验、相关系数和信息增益等统计技术为每个特征分配排名。

包装器方法

包装器方法使用特征子集来训练模型。然后,您可以根据模型的性能添加或删除特征。包装器方法的常见示例包括递归特征消除、向后消除和前向选择。

嵌入式方法

嵌入式方法结合了筛选器和包装方法使用的技术。常用示例包括套索和 RIDGE 回归、正则化树和随机多项式 Logit。

功能重要性

基于树的融合(如随机森林、XGBoost 和 LightGBM)提供了一种基于为每个特征计算的特征重要性分数的特征选择方法。分数越高,特征对于提高模型准确性就越重要。随机森林中的特征重要性也称为基于基尼的重要性或杂质平均减少(MDI)。随机森林的一些实现使用不同的方法来计算特征重要性,称为基于精度的重要性或精度平均下降(MDA)。基于精度的重要性是根据预测精度的降低来计算的,因为特征是随机排列的。我将在第 3 章中更详细地讨论随机森林、XGBoost 和 LightGBM 中的特征重要性。

相关系数是特征选择方法的基本形式。相关系数表示两个变量之间线性关系的强度。对于线性问题,您可以使用相关性来选择相关要素(要素类相关性)并识别冗余要素(要素内相关性)。

特征提取

当数据集中存在大量特征时,特征提取至关重要。例如,基因组学和工业分析领域的机器学习用例通常涉及数千甚至数百万个特征。高维性使模型更加复杂,增加了过拟合的机会。此外,对高维数据的训练需要大量的计算资源。特征提取通常涉及使用降维技术。主成分分析 (PCA)、线性判别分析 (LDA) 和奇异值分解 (SVD) 是一些最流行的降维算法,也用于特征提取。

特征构建

为了提高模型的精度,有时需要从现有特征构造新特征。有几种方法可以做到这一点。您可以合并或聚合要素。在某些情况下,您可能希望拆分它们。例如,将时间戳属性(在大多数事务数据中很常见)拆分为多个更精细的属性(秒、分钟、小时、日、月和年)可能会使您的模型受益。然后,您可能希望使用这些属性来构造更多功能,例如星期几、月度星期、年份月等。特征构建是部分艺术,部分是科学,是特征工程中最困难和最耗时的方面之一。掌握特征构建通常是经验丰富的数据科学家与新手的区别。

模型评估

在分类中,每个数据点都有一个已知标签和一个模型生成的预测类。通过比较每个数据点的已知标签和预测类,结果可以分为以下四个类别之一:真阳性(TP),其中预测类为阳性且标签为阳性,真阴性(TN),其中预测类为阴性且标签为阴性,假阳性(FP),其中预测类为阳性但标签为阴性, 和假阴性 (FN),其中预测的类为阴性,标签为正。这四个值构成了分类任务的大多数评估指标的基础。它们通常以称为混淆矩阵的表(表1-1)表示。

表1-1
混淆矩阵

准确性

准确性是分类模型的评估指标。它定义为正确预测的数量除以预测的总数。

在数据集不平衡的情况下,准确性不是理想的指标。为了用一个例子来说明,考虑一个假设的分类任务,其中包含90个阴性和10个阳性样本;将所有分类为负数,得出 0.90 的准确率分数。精度和召回率是评估使用类不平衡数据训练的模型的更好指标。

精度

精度定义为真阳性数除以真阳性数加上误报数。精度显示模型在预测为正时正确的频率。例如,如果您的模型预测了 100 次癌症发生,但其中 10 次预测不正确,则模型的精度为 90%。精度是一个很好的指标,可以在误报成本高的情况下使用。

召回

召回率是一个很好的指标,可以在漏报成本高的情况下使用。召回率定义为真阳性数除以真阳性数加上假阴性数。

F1 测量

F1 度量值或 F1 分数是精度和召回率的谐波平均值或加权平均值。它是用于评估多类分类器的常见性能指标。当类分布不均匀时,这也是一个很好的衡量标准。最好的F1分数是1,而最差的分数是0。良好的 F1 度量值意味着您的漏报率低,误报率低。F1 度量值定义如下:

接收器工作特性 (AUROC) 以下的区域

接收器工作特性 (AUROC) 下方的区域是用于评估二元分类器的常见性能指标。接收器工作特性 (ROC) 是一个图形,用于绘制真阳性率与假阳性率。曲线下的面积 (AUC) 是 ROC 曲线下方的面积。AUC 可以解释为模型将随机正示例排名高于随机负示例的概率。三十六曲线下方的面积越大(AUROC 越接近 1.0),模型的性能越好。AUROC 为 0.5 的模型是无用的,因为它的预测准确性与随机猜测一样好。

过拟合和欠拟合

模型的性能不佳是由过度拟合或欠拟合引起的。过拟合是指拟合训练数据太好的模型。过拟合模型在训练数据方面表现良好,但在面对新的、看不见的数据时表现不佳。过度拟合的反面是欠拟合。对于欠拟合,模型过于简单,并且没有在训练数据集中学习相关模式,因为模型过度规范或需要训练更长时间。模型很好地拟合到新的、看不见的数据的能力称为泛化。这是每个模型优化练习的目标。防止过度拟合的几种已建立的方法包括使用更多数据或特征子集、交叉验证、丢弃、修剪、提前停止和正则化。对于深度学习,数据增强是一种常见的正则化形式。为了减少欠拟合,建议添加更多相关功能。对于深度学习,请考虑向层添加更多节点或向神经网络添加更多层以增加模型的容量。

型号选择

模型选择涉及评估拟合的机器学习模型,并通过尝试使用用户指定的超参数组合拟合基础估计器来输出最佳模型。使用 Spark MLlib,使用交叉验证器和训练验证拆分估计器执行模型选择。交叉验证器执行 k 倍交叉验证和网格搜索,以进行超参数优化和模型选择。它将数据集拆分为一组随机的、不重叠的分区折叠,这些折叠用作训练和测试数据集。例如,如果 k=3 个折叠,则 k-fold 交叉验证将生成 3 个训练和测试数据集对(每个折叠仅用作一次测试数据集),每个折叠使用 2/3 作为训练数据,1/3 用于测试。 训练验证拆分是超参数优化的另一个估计器。与 k 倍交叉验证(这是一项代价高昂的操作)相比,训练验证拆分仅评估每个参数组合一次,而不是 k 次。

总结

本章简要介绍了机器学习。为了更彻底的处理,我建议统计学习的要素,第2版,由特雷弗·哈斯蒂等人(施普林格,2016)和加雷斯·詹姆斯等人的统计学习导论(施普林格,2013)。对于深度学习的介绍,我推荐伊恩·古德费罗等人的深度学习(麻省理工学院出版社,2016)。虽然机器学习已经存在了很长时间,但使用大数据来训练机器学习模型是一个相当新的发展。作为最受欢迎的大数据框架,Spark具有独特的优势,可以成为构建大规模企业级机器学习应用程序的卓越平台。让我们在下一章中深入探讨火花和火花MLlib。


本文转载自: https://blog.csdn.net/sikh_0529/article/details/127465456
版权归原作者 Sonhhxg_柒 所有, 如有侵权,请联系我们删除。

“【Spark ML】第 1 章:机器学习简介”的评论:

还没有评论