机器学习经典算法介绍(一)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 机器学习经典算法介绍(一)

开发者学习笔记【阿里云人工智能工程师ACA认证(2023版):机器学习经典算法介绍(一)】

课程地址https://edu.aliyun.com/course/3112108/lesson/19264

机器学习经典算法介绍(一)

内容介绍:

一、线性回归算法介绍与应用

二、逻辑回归算法介绍与应用

三、朴素贝叶斯算法介绍与应用

四、K近邻算法介绍与应用

五、支持向量机算法介绍与应用

六、决策树算法介绍与应用

七、集成算法介绍与应用

八、聚类算法介绍与应用

九、本节回顾

 

提问

了解了机器学习的基本知识后,我们思考一个问题,机器是如何进行学习?都有哪些算法?

 

一、线性回归算法介绍与应用

1.线性回归算法定义和任务类型

线性回归定义是利用数理统计中的回归分析,是确定两种或者是两种以上的变量之间的相互依赖的定量分析的一种统计分析方法。它是用回归分析来去寻找这个变量之间相互依赖的关系两种或者是两种以上的变量都可以。

两种的变量叫做二元线性回归,两种以上变量我们称为它多元线性回归。线行回归解决的是回归类型的任务。

下面的图就是使用线行回归的典型的例子,通过线性回归找到一条直线,尽可能这个数据点都落在这个直线上,像我们这个图中的示例数据点是我们在找到这个直线后,这个直线其实就是我们找到的模型。进行预测就是在有新的数据后,我们用这个模型去计算,比如这个新的一个值 x 是这样的值,在这个点,我们根据这个模型,推理出来的值可能就是在这里。在这里就可以用来做预测。

它的应用场景有异常指标监控,或者是农业贷款预测,这都是它可能的应用场景。异常指标监控原因是如果你认为数据都符合这个模型,那不符合这个模型的,离这个模型比较远的可能就是异常的数据。

比如这个图这个示例里面的离这个模型比较远,那么这个点可能就是异常的指标。

图片474.png

至于农业贷款预测这种应用场景,其实很多类似的应用场景就是做预测的应用常见都可以,即他认为这个数据是符合某个线性模型,然后新的数据就可用这个线性模型去做推理,实际的应用过程中多元线性回归比较多,有时你需要用这种现象回归算法之前,要先确定数据变量之间是不是这种线性的关系。

如果是线性的关系,采用线性回归模拟。对于机器学习模型而言,优秀的预测模型,不仅要在模型训练的过程中有很好的拟合,同时也要模型对未知的数据有很好的拟合,这个叫模型的泛化能力。


2.过拟合和欠拟合

优秀的模型,不仅在模型训练的过程中有很好的拟合,对模型未知的数据也需要有很好的拟合

度量泛化能力的好坏,最直观的是用过拟合和欠拟合进行描述,

拟合的英文叫 fitting ,过拟合就是 over fitting,欠拟合就是under fitting。

欠拟合和过拟合有比较明确的特点,欠拟合指的是模型在训练集、测试集上均表现不佳,在训练集、测试集上,我们去用拟合出来的这个模型的时候,效果都不好,

过拟合指的是模型在训练集上表现很好,但是到真正的去验证和测试的阶段,表现的很差,即模型的泛化的能力很差。


我们看下面三个图其实数据都是一样的,如果我们拟合时用的是这样一条直线,我们会发现他对于现在的数据效果不太好,都不太满意。正常拟合的情况下,我们用这个曲线去拟合,拟合完后这种就非常好,这是正常拟合,测试阶段和训练阶段都很好。然后第三种这种情况可能就出现过拟合。看这曲线会变得复杂,然后在训练阶段,训练集上表现的非常好,但是在实际的验证和测试阶段就很差。这种情况就是过拟合。简单就是欠拟合这种状态肯定是不满意的,因为在训练集上表现已经不好。

过拟合这种状态出现时其实特征也很明显,在训练一个模型时,训练出这个效果非常好,但是一到实际的应用中效果就很差,这种情况下就出现的就是过拟合,这个时候需要考虑用的模型,学习的方法是不是正确

图片475.png


3.线性回归正则化模型

解决过拟合的现象我们可以用正则化,我们可以认为线性回归它是用最小二乘法,然后它会出现这个多重贡献性的问题。

岭回归是在最小二乘法的基础上加一个对系数的惩罚项。加上这个惩罚项后,就可以避免这个过拟合,让这个模型更简单,泛化能力更强,这叫岭回归,它的英文叫rang,岭回归,也就是加入了 L2 normal 的政策化的回归,然后有了Lesso回归。

Lesso回归是里面加入了 l e normal 的乘法项的线性回归。

岭回归和 Lesso 回归他们相似的地方都是在线性回归的基础上加了一个惩罚项,让这个模型更简单,泛化能力更强,这是他们相似的地方,他们都可以实现,避免过拟合,那么把他们两个结合起来,岭回归和Lesso回归结合起就是弹性网。同时在回归,在线行回归上添加了 L1 正则化和 L2 正则化。

图片476.png


 

二、逻辑回归算法介绍与应用

1.逻辑回归算法定义和任务类型

通过这种方式让逻辑回归的殊途只为离散性,从而可以解决分类问题。逻辑回归解决的主要的任务类型为分类,它常常用于二分类的问题,也可以用于多分类。下面辑回归是传统机器学习用于解决分类任务的算法之一。

逻辑回归是一种广义线性回归,因此它与线性回归有很多的相似之处。线性回归采用线性表达式输出预测值,逻辑回归是在线性回归的基础上添加非线性变换。

例图是用逻辑回归将两个类别很好的分开,逻辑回归的应用场景,例如有学生考试成绩预测,雾霾天气预测这种,这个说是预测,但实际上这个场景可能预测的是分类,雾霾天气预测可能预测出来的是雾霾天气还是非雾霾天气,总之它的输出值一定是离散性。

图片477.png


2.逻辑回归多分类应用

下面我们来探讨逻辑回归的多分类应用。逻辑回归其实它是常用于二分类,但根据策略的不同,可以把逻辑回归用于多分类任务。很多的二分类任务、多分类任务都可以转化成二分类任务。

如果我们要把逻辑回归用于多分类任务,可以有下面几种方法,几种策略,分别是一对多法叫 one with rest,一种是一对一法, one with one,一种是 softmax法,用 softmax激活函数。

图片478.png


这个地方的知识的理解大家可能需要转换,首先这个逻辑回归,虽然书写起来是回归,看起来是回归,但实际上他做的是分类。

二分类,多分类差别不大,多分类其实就是二分类,不过实际应用的情况我们大部分都是进行多分类的,都是进行分类。我们接下来分别学习一对多法、一对一法和 softmax 法到底是怎样做到的。


3.一对多法

一对多法要解决分类问题有一个新的数据我们到底把它分成哪一类这里用 k 个分类表示多个分类, k分类表示多个分类,一共有 k 个,它对于多个分类训练时,依次把某个类别的样本归为一类,其他剩余的样本归为另一类,得到 k 个分类器。

我们看下面的图进行解释,数据现在是一共有三类,有三角形,有圆形,有方形,这三类的数据,我们现在目前知道两二分法,两个类怎么分三类的我们怎么处理先把某一类归为一类,本来就是一类,其余不管有几类就是rest,就是剩下的,归为另一类,这样划分。我们第一个图是这个黑色的三角,它是一类,这个其实是标成他们这个三角形是一类,其余的是一类,是rest。我们在这种情况下找到这个分类器,就是这条斜线,这个分类器,这是找到第一个分类器。

接下来换一种,这个中间图,黑色的圆它们是一类,其余的是另一类。这样又找到一个分类器,就是第二个图里面的这条线。

然后第三个图也是以此类推,这个小的方块是一类,剩下的算是一类。在这种情况下还是认为它是两类,然后再找到一个分类器,这是又一个分类器,也就是在这种情况下,对于 k 分类,我们得到 k 个分类器,这些是有三个分类,我们就得到三个分类器。得到三个分类器后,拿一个未知的数据,这里这个黄色的三角形,当然我们现在一眼就看到这是一个黄色,三角形属于这个类。但

是实际上运算中应该这样处理的即我们去计算这个新的数据,这个三角形它在使用第一个分类器,它属于这个三角形这个类的机会有多大?然后到中间那个图,再用第二个分类器去计算它属于这个圆形这个分类器的这个概率有多大,然后再计算第三个概率有多大在不同的这个分类器计算出之后,它是属于哪一个分类的这个结果是不一样的,计算出哪个值最大,肯定是第一个值最大,所以最终就是它属于第一个分类器,算出是属于三角形这类。

就用这种方式找到新的数据的分类。这种分类方法的名字已经写出来了,就是 one rest ,一个类和其余的类。

图片479.png


这种分类方法思路也很简单,它的优点是它的普适性比较广,大部分的分类的多分类的问题都可以用这种方式去解决,效率也高。

因为把这个分类器都算出之后,拿一个分类用不同的分类器去计算就可以,但是它有缺点,它的缺点是容易造成数据不平衡。

这个造成的数据不平衡是什么原因,是如果这个类别太多,容易出现正类的样本远远不及负类的情况。也就是如果现在不是 3 类,可能有 10 类,就很容易出现就一类的样本数远远的少于不是这一类的样本的数量,这样就会造成分类器的偏向性,这是它的缺点。


下面学习多分类里的一对一法。

对于 k 分类训练时,我们可以让不同类别的数据进行两两组合的训练,这样两两组合得到的都是二分类的模型,得到2分之 k 乘 k 减一个二分类模型,因为是两两组合。得到这么多的 分类模型后,我们怎么使用?我们在预测时,分别用二分类器进行预测,最后用得票最多的这个类别就是未知样本的类别。

举个例子进行说明,我们看下面的图,先看左下面的图,这个实例里有三个分类,有圆形,有三角形,有方形,我们用它们去两两的组合分类,可以得到三个分类器,也就是圆形跟三角形、圆形跟方形、三角形和方形三个分类器。对于未知数据,这个是一个三角形的,我们用黄色标出它还没有进行分类,在圆形和三角形之间训练的分类器的分类判定下,它这个时候是属于三角形,这是利用第一个分类器对它进行判断。

那么如果用第二个分类器,同样刚才这个未知的这个样本的数据,我们用圆形和方形它们产生的这个分类器,然后对这个数据进行分类,这个时候预测的结果,从图上看它很可能预测的结果会是一个圆形,我把这个三角形涂成一个圆形。

那用第三个分类器再来计算,第三个用三角形和方形,它们训练出来的这个分类器,对这个未知样本进行预测,得到的是它是属于三角形的。使用这个三个分类器得到的结果不尽相同,这三个分类器进行投票,除了第二个之外,第一个、第三个训练判别它们都会是三角形,所以最终投票的结果是三角形,也就是得标最多的类别就是位置样本的类别。

图片480.png


这种我们判定的方法,它的优点是以一定程度上它规避了数据不平衡的情况,特别是有些实际情况中这个分类训练的这个数据样本的差别可能是很大的,它在这种情况下性能相对的稳定,训练的效率可以得到提高。但是它的缺点也很明显,它的缺点是它训练的二分类的模型会很多,这样可能会影响到预测的时间。

对于 k 分类,这个公式2分之 k 乘 k 减1,这个分类在增加的时候,这个二分模型增加的速度是非常快的。比如如果是有10个分类,你得到的二分类模型是10乘以9再除以2,一定要一共要训练45个二分类模型,你再进行预测,再去投票,这个速度就会受到影响。这是一对一法。


4.softmax法

Softmax和 sigmoid 的函数,在原始的二分类逻辑回归里我们经常用 softmoid,用这个函数进行非线性变换,因为sigmoid的这个函数的特点,我们通过这个函数变换之后只有两类,就是0和1。

所以要将二分逻辑回归,二分类逻辑回归转换成多分类。这时我们可以选择一个激活函数,能够把这个样本映射到多个0-1之间的值。也就是得到这个样本属于每个类别的概率,那么选择概率大的类别作为样本所属的类别。

如图所示,我们先看上方的图,逻辑回归二分类,在逻辑回归二分类里,使用sigmoid的函数作为集合函数进行非线性变换,得到的结果可能是0或者1,两种情况。那么我们要进行预测的这个点,这个数据是黑色,这个我们通过sigmoid后得到的情况是1,也就是判断这个未知的这个黑色的数据是属于这个这个圆的这个分类的。

图片481.png


对于逻辑回归多分类,我们用Softmax函数,对于未知的点,这个点我们现在不知道它是什么,然后我们使用这个Softmax函数,用它来作为激活函数来进行预测时,我们得到的结果就是这个数据它属于三角形的概率是0.3,属于圆的概率是0.6,属于方块的概率是0.1。

这里属于圆的概率最大。但是通过这个比较后我们就知道这个位置的数据是属于圆。这个Softmax,它的一个另外称呼叫归一化指数函数,是逻辑函数的一种推广。


三、朴素贝叶斯算法介绍与应用

朴素贝叶斯算法,朴素贝叶斯算法的英文叫 Naïve Bayes model ,这个 Naïve 就是朴素的意思。

朴素贝叶斯算法是应用非常广泛的一种分类算法,它是在贝叶斯算法,看名字就知道它跟贝叶斯算法是有关系的,他是基于贝叶斯定理与特征条件独立假设的分类方法。

即他使用特贝叶斯定理,然后又在一个假设的前提下,什么样的假设,就是特征条件独立。

特征条件独立假设举例子,比如我们要判断今天是否会下雨,可能我们根据温度、湿度还有是否会出太阳这3个特征来判断今天是否会下雨,它们之间是有关系的。根据这三个特征,温度、湿度和是否出太阳这三个特征是否会有联系。

你会觉得肯定会有联系的,出太阳之后,这个温度跟湿度可能就会发生变化,现实情况中是有联系的,但是如果我们考虑到这三个特征之间的联系,这个事情就变得更加的复杂,即计算会变得更加的复杂。

这样朴素贝叶斯就是先做这样一个假设,这三个条件,三个特征条件是独立的,是没有任何关系的,这样来简化运算。

所以这个情况下的贝叶斯就叫朴素贝叶斯。使用这种方式一定程度上降低了分类的效果,肯定会有影响,但是在实际的应用场景中,它会大大的减少贝叶斯算法的复杂性,而且它也往往能够满足实际的需求,所以朴素贝叶斯就成了应用最广的分类算法,它经常会用在像是垃圾邮件的分类或者是舆情分析里面。

图片482.png


朴素贝叶斯算法的优点,它因为假设了数据集属性之间是相互独立的,因此它的算法的逻辑非常简单,且算法比较稳定。

当数据呈现不同的特点时,朴素贝叶式的分类性能不会有很大的差异,换句话就是朴素贝叶斯算法的健壮性比较好。对于不同类型的数据集,朴素贝叶斯算法不会呈现太大的差异性。

当数据集属性之间的关联之间的关系比较独立的时候,朴素贝叶斯的分类算法会有很好的效果。这个算法肯定有缺点,这个主要也在这个属性独立这个问题上,属性独立的条件,这个假设也就是贝叶斯分类器的不足的地方,数据集属性的独立性在很多情况下是很难满足的,因为数据集属性之间往往都存在着关联,如果分类的过程中出现这个问题,即这个关联会很强,这时会导致它分类的效果大大的降低。就有的时候在用朴素贝叶斯算法时,会先进行属性之间有没有关联的判定,然后再进行属性的选择。

相关文章
|
28天前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
95 4
|
7天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
22 2
|
25天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
42 1
|
1月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
90 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
41 0
|
1月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
36 0
|
2月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
2月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
77 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
1月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的决策树算法
【10月更文挑战第29天】本文将深入浅出地介绍决策树算法,一种在机器学习中广泛使用的分类和回归方法。我们将从基础概念出发,逐步深入到算法的实际应用,最后通过一个代码示例来直观展示如何利用决策树解决实际问题。无论你是机器学习的初学者还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和指导。

热门文章

最新文章