西安邮电大学机器学习期末复习

目录

一.机器学习概念

1.机器学习与人工智能关系

2.基本术语

3.算法分类

4.机器学习通用步骤

二.模型评估与选择

1.过拟合和欠拟合

2.交叉验证法

3.性能度量

三.线性模型

1.线性模型的基本形式

2.线性回归

3.对率回归(分类学习算法)

四.神经网络

1.激活函数

2.损失函数

3.误差反向传播(BP)算法

4.梯度下降算法

5.卷积神经网络

五.朴素贝叶斯

六.聚类

1.聚类概念

2.聚类和分类区别

3.距离计算

4.K-means聚类

5.DBSCAN密度聚类算法

6.层次聚类

七.支持向量机(SVM)

1.SVM建模

2.线性不可分问题

3.软间隔

一.机器学习概念

1.机器学习与人工智能关系

机器学习的核心是:使用算法解析数据,从中学习,然后对世界上的某件事情做出决定或预测。这意味着机器学习是非显著式编程。机器学习重在发现数据之间内在关系,并做出预测。

机器学习是人工智能的一个分支,使用特定的算法和编程方法来实现人工智能。人工智能致力于创造出比人类更能完成复杂任务的机器。深度学习是机器学习的一个子集,专注于模仿人类大脑的生物学和过程。

2.基本术语

1. 数据集:一组样本的集合。
2. 样本:数据的特定实例,每条记录是关于一个对象的描述。
3. 属性:反映对象在某方面的表现或性质的事项。
4. 属性空间:属性张成的空间。
5. 维数:每个示例由d个属性描述,d称为样本的"维数"。
6. 训练数据:训练过程中使用的数据称为"训练数据" 
9. 标记:关于示例结果的信息,例如"好瓜"。
10.测试:学得模型后,使用模型进行预测得过程。

3.算法分类

监督学习:分类、回归
样本带有标签值,称为监督信号,有学习过程,根据数据学习,得到模型,
然后用于预测。按照标签值的类型可以进一步分为两类:
分类问题:标签值为离散值。
回归问题:标签值为实数。

无监督学习:聚类、降维
样本没有标签值,没有训练过程,机器学习算法直接对样本进行处理,得到某
种结果。

半监督学习:两者结合
有些训练样本有标签值,有些没有标签值,用这些样本进行训练得到模型,然
后用于预测,介于有监督学习与无监督学习之间。

4.机器学习通用步骤

1.  选择数据:划分训练数据、测试数据、验证数据。
2.  数据建模:   使用训练数据来构建模型。
3.  训练模型:数据接入模型,确定模型的类型,参数等。
4.  测试模型:使用测试数据检查被训练模型的表现(精确率、召回率)。
5.  验证模型:   使用完全训练好的模型在新数据上做预测。
6. 调优模型:使用更多数据、不同的特征或调整过的参数来提升算法的性能。

二.模型评估与选择

1.过拟合和欠拟合

过拟合:
学习器将训练样本本身的特点当做所有样本的一般性质,学习器把训练样本学习的“太好”,学到了很多没必要的特征,导致泛化性能下降。
欠拟合:
训练样本的一般性质尚未被学习器学好。

防止过拟合的方法:      
1.  数据集扩增:获得更多符合要求的数据。    
2.  改进模型,通过控制模型的复杂度来防止过拟合:               
a. 优化目标加正则项, 通过L1和L2正则项。               
b. 深度网络的常见方法:early stop(当loss不再减小时,提前结束训练)/Dropout(在每个训练批次中,随即丢掉一定数量的神经元)策略。 
防止欠拟合的方法:   
1.增加新特征,可以考虑加入组合特征、高次特征,来增大假设空间。
2. 尝试非线性模型,比如核SVM 、决策树、DNN等模型。   
3. 增加网络的复杂度。  
4. 减少使用正则化数量。

2.交叉验证法

将数据集分层采样划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的子

集作为测试集,最终返回k个测试结果的均值,k最常用的取值是10。

交叉验证法优点:可以有效地利用有限的数据进行模型的训练和验证,提高模型的泛化性能;由于每个样本都被用于验证一次,因此对模型的评估更加稳定和准确。

交叉验证法缺点:计算成本高,因为需要进行K次训练和验证,尤其是当数据集很大时,这可能会非常耗时。K值的选择会影响到交叉验证的效果。如果K值选得太小,例如K=2,那么训练集和验证集的划分可能过于随机,模型的评估结果可能波动较大;如果K值选得太大,例如K等于样本总数,那么虽然评估结果较为稳定,但是计算成本会非常高。

3.性能度量

对于分类任务,错误率和精度是最常用的两种性能度量。

错误率:分错样本占样本总数的比例。

精度:分对样本占样本总数的比率。

正样本精确率为:Precision=TP/(TP+FP),表示的是  正样本识别正确总数 / 所有预测为正样本的样本总数。

正样本召回率为:Recall=TP/(TP+FN),表示的是 正样本识别正确总数 / 实际正样本总数。

 

若某个学习器的ROC曲线被另一个学习器的曲线“包住”,则后者性能优于前者,否则如果曲线交叉,可以根据ROC曲线下面积大小进行比较,即AUC值。

三.线性模型

1.线性模型的基本形式

 线性模型试图学得一个通过属性的线性组合来进行预测的函数:

向量形式: 

2.线性回归

线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记。线性回归模型的损失函数为均方误差,所以本质我们的任务是使均方误差最小化,我们使用的方法是最小二乘法。最小二乘法的基本思想是寻找一条最佳拟合线,使得所有数据点到这条线的垂直距离(即残差)的平方和最小。

3.对率回归(分类学习算法)

线性回归模型产生的实值输出:

期望输出:

对数几率函数,简称“对率函数”: 

优点:无需事先假设数据分布,可得到“类别”的近似概率预测,可直接应用现有数值优化算法求取最优解 。

四.神经网络

1.激活函数

激活函数是指一种函数(例如 ReLU 或 Sigmoid),将前一层所有神经元激活值的加权和输入到一个非线性函数中,然后向下一层传递该函数的输出值。

 激活函数是用来加入非线性因素的,因为线性模型的表达力不够。

Relu其实是取最大值函数。ReLU函数其实是分段线性函数,把所有的负值都变为0,而正值变,这种操作被成为单侧抑制。正因为有了这单侧抑制,才使得神经网络中的神经元也具有了稀疏激活性。尤其体现在深度神经网络模型(如CNN)中。 

ReLU激活函数的优势:1.没有饱和区,不存在梯度消失问题。2.没有复杂的指数运算,计算简单、效率提高。3.实际收敛速度较快,比 Sigmoid/tanh 快很多。4.比 Sigmoid 更符合生物学神经激活机制。

2.损失函数

损失函数:机器学习模型单个样本的预测值与真实值的差称为损失。损失越小,模型越好,如果预测值与真实值相等,就没有损失。用于计算损失的函数称为损失函数,模型每一次预测的好坏用损失函数来度量。

损失函数的作用:损失函数可以衡量模型的好坏,损失函数有助于优化神经网络的参数。通过神经网络将实际值与预测值进行匹配,再经过损失函数就可以计算出损失。然后,我们使用梯度下降法来优化网络权重,以使损失最小化。这就是我们训练神经网络的方式。

3.误差反向传播(BP)算法

D. Rumelhart,J. McClelland于1985年提出了误差反向传播(Back Propagation, BP)算法 
基本原理:利用输出后的误差来估计输出层的前一层的误差,再用这个误差估计更前一层的误差,如此一层一层地反传下去,从而获得所有其它各层的误差估计。
误差反向传播算法的实现步骤:
1)初始化 。
2)输入训练样本,计算各层输出 。
3)计算网络输出误差 。
4)计算各层误差信号 。
5)调整各层权值 。
6)检查网络总误差是否达到精度要求若满足,则训练结束,不满足,则返回步骤2。

伪代码:                                                                                                            

INPUT:    数据集 D = {(xi,yi)}(i:1~N)
数据划分:训练集 D1 = {(xi,yi)}(i:1~m)
                  测试集 D2= {(xi,yi)}(i:1~p)
构造神经网络模型
训练阶段:
定义学习率 η 
在(0,1)内初始化神经元的连接权值和阈值; 
REPEAT 训练周期(Epoch)
    REPEAT 批次训练(Batch)
    FOR ALL (xk,yk)IN One Batch
    根据当前样本的数据计算神经网络输出; 
    计算神经网络输出与标签值的误差; 
    根据误差计算各个参数的下降梯度; 
    根据下降梯度更新参数; 
END UNTIL 所有批次迭代完毕
END UNTIL 达到迭代次数 
OUTPUT = BP神经网络
测试阶段:
输入:所有(xk,yk)IN D2
根据D2样本的数据计算神经网络的输出;
输出预测准确率;

4.梯度下降算法

5.卷积神经网络

卷积:提取输入图片中的信息,图片中一些特征比整幅图像小得多,相同的特征可以出现在图像的不同位置,针对这些属性,卷积层提取出特征信息。

池化:挑选不受位置干扰的图像信息,对特征进行降维,提高后续特征的感受野,也就是让池化后的一个像素对应前面图片中的一个区域,下采样不改变目标的类别。

池化操作使用某位置相邻输出的总体统计特征作为该位置的输出,常用最大池化和平均池化。池化操作进行下采样,对特征图稀疏处理,减少数据运算量。 池化层不包含需要训练学习的参数,仅需指定池化操作的核大小、操作步幅以及池化类型。

卷积,池化输出特征图大小计算:

正负样本不平衡:所谓的样本不平衡问题指的是数据集中各个类别的样本数量极不均衡。以二分类问题为例,假设正类的样本数量远大于负类的样本数量,通常情况下把样本类别比例超过4:1的数据就可以称为不平衡数据。样本不平衡实际上是一种非常常见的现象。

解决正负样本不平衡问题的方法:1.扩大数据集2.数据集重采样3.人工产生数据样本。

提升网络泛化能力的方法:1.使用更多数据2.使用更大批次3.调整数据分布4.数据增强

五.朴素贝叶斯

六.聚类

1.聚类概念

聚类就是按照某个特定的标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,不同簇中的数据对象的差异性也尽可能地大。

聚类的目的:寻找数据的内在分布结构, 典型的无监督学习方法。

2.聚类和分类区别

分类是根据数据的标签,划分到已有的类别中。这些类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不同类的特征,建立模型,再对未分类的数据进行分类。

聚类是无监督学习, 通常不依赖预先定义的类和带类标签的训练样本,不需要使用训练数据进行学习。 分类属于监督学习,依赖带标签的训练数据,通过对训练数据进行学习,具备对未知数据进行分类的能力。

3.距离计算

基于某种形式的距离来定义“相似性度量” ,距离越大,相似度越小。

4.K-means聚类

K-means聚类算法伪代码:

输入:数据集D,包含m个样本{x_1,x_2,x_3...x_m},以及要分的聚类簇数k。
步骤1:从数据集D中随机选择k个样本作为初始的均值向量(也叫聚类中心或质心)集合,记作{𝜇_1,𝜇_2,𝜇_3...𝜇_k}。
步骤2:开始循环。这个循环会一直持续到所有的均值向量都不再变化。
步骤3:对于每一个均值向量𝜇_i,初始化一个空集合C_i,这个集合将用于存放被分配到这个聚类中心的样本。
步骤4-7:对于数据集D中的每一个样本𝑥_𝑗,计算它到每一个均值向量𝜇_i的距离𝑑_𝑗𝑖,然后找出距离最小的那个均值向量,将𝑥_𝑗分配到对应的聚类中。这里,𝜆_𝑗是指距离𝑥_𝑗最近的均值向量的索引。
步骤8:完成所有样本的聚类分配。
步骤9-15:对于每一个聚类C_i,计算聚类中所有样本的平均值,得到新的均值向量𝜇_𝑖'。如果新的均值向量与原来的均值向量不同,那么更新均值向量;否则,继续下一个聚类。
步骤16:完成所有聚类的均值向量更新。
步骤17:如果所有的均值向量都不再更新,那么结束循环;否则,回到步骤2,开始新一轮的样本分配和均值向量更新。
输出:聚类结果C,包含k个聚类{C_1,C_2,C_3...C_k}。
这就是K-Means聚类算法的基本过程,通过不断迭代样本分配和均值向量更新,直到均值向量不再变化,就得到了最终的聚类结果。

不同的初始值,聚类结果是不同的,孤立点对聚类结果是有影响的。

K-means聚类算法优缺点:

5.DBSCAN密度聚类算法

DBSCAN是一个基于密度的聚类算法。基于密度的聚类是寻找被低密度区域分离的高密度区域。 聚类的时候不需要预先指定簇的个数、最终簇的个数不定。 K-Means对于非凸数据集效果有限,但DBSCAN这类基于密度的方法往往能取得更好的效果。比如:当数据集中的群集具有不规则形状时,比如月牙形或环形。在这种情况下,K-Means算法可能不能很好地分割数据,因为它假定群集是凸形的。而DBSCAN则可以通过连续的、密度相近的点来识别出这些形状。 当数据集中存在许多噪声点时,DBSCAN通过确定一个点的邻居点的数量来判断该点是否为噪声点,如果一个点的邻居点数量低于预定的阈值,那么该点就被视为噪声点,这使得DBSCAN能够从主要的群集中分离出噪声点。 当不知道数据集中的群集数量时,DBSCAN不需要预先设置群集数量,它将根据数据的密度自动发现群集,这在你不知道或者不能准确估计群集数量时非常有用。

DBSCAN中的参数(Eps, MinPts) Eps描述某一样本的邻域距离阈值,即邻域的大小 MinPts描述邻域中样本的个数 ,如果两个点之间的距离小于或等于ε,那么我们就认为这两个点是相邻的,ε的选择取决于数据的分布特性,选择合适的ε能有效地区分高密度和低密度区域。 MinPts这个参数用来设定一个点的ε-邻域内至少包含多少个点,才能将这个点视为核心点。如果MinPts过大,可能导致大多数点被视为噪声点,反之,如果MinPts过小,那么大多数点都可能会被视为核心点,导致聚类效果不佳。 DBSCAN算法的性能很大程度上依赖于这两个参数的选择。在实际应用中,我们通常需要根据数据集的特性和问题的需求,通过试验来调整这两个参数,以达到最佳的聚类效果。

基于密度定义,将点分为: 核心点: 稠密区域内部的点,在半径Eps内含有超过MinPts数目的点,则该点为核心点。这些点都是簇内的

边界点: 稠密区域边缘上的点,在半径Eps内点的数量小于MinPts,但是在核心点的邻居。

噪声或背景点: 稀疏区域中的点,任何不是核心点或边界点的点。

6.层次聚类

层次聚类是试图在不同层次对数据集进行划分 ,从而形成树型的聚类结构。

七.支持向量机(SVM)

1.SVM建模

SVM的全称是Support Vector Machine,即支持向量机,主要用于解决模式识别领域中的数据分类问题,属于监督学习算法的一种。SVM要解决的问题可以用一个经典的二分类问题加以描述。

SVM的任务就是在尽量分类正确的前提下,使决策面与数据之间的分类间隔最大化。最优解对应的两侧虚线所穿过的样本点,就是SVM中的支持样本点,称为“支持向量”。

2.线性不可分问题

若不存在一个能正确划分两类样本的超平面,则需要将本来线性不可分的训练样本集变为线性可分 将样本从原始空间映射到一个更高维的特征空间, 使得样本在这个特征空间内线性可分。

 通过非线性映射将数据点映射至新的数据空间,在新的数据空间应用线性支持向量机方法。

3.软间隔

线性可分一般都是理想情况,现实情况往往是线性不可分,软间隔就是最大化分类间隔的同时, 允许存在 一些分错的样本。


以上就是本学期机器学习内容的总结。 谢谢大家!

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺仔大馒头_dfs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值