首页 > 其他分享 >机器学习知识点

机器学习知识点

时间:2024-03-13 11:33:17浏览次数:28  
标签:知识点 机器 训练 误差 模型 样本 学习 拟合 数据

目录

机器学习的概念:

样本:

特征:

标签:

回归和分类任务:

泛化能力:

假设空间:

输出空间:

有监督学习:

无监督学习:

半监督学习:

奥卡姆剃刀:

四个损失函数:

正确率:

误差:

过拟合:

过拟合的处理:

欠拟合

欠拟合的处理方式:

没有免费的午餐定理(NFL定理):

误差

训练误差:

测试误差:

验证误差:

泛化误差:

划分数据集的三种方法:

留出法:

交叉验证法(k折交叉验证):

自助法:

错误率,精度:

查准率(精确率)和查全率(召回率):

F1:

偏差与方差:

均方误差:

最小二乘法:

多分类学习:

拆分策略

一对一(OvO):

一对多(OvR):

多对多(MvM):

海明距离:

对于不平衡类别的处理

为什么要进行归一化和标准化?

归一化:

标准化:

过拟合的处理方法:

L1正则化:

L2正则化:

损失函数:

代价函数:

目标函数:

梯度下降的三种形式:

梯度下降和最小二乘法的比较:

均方误差、均方根误差、平均绝对误差、R平方的计算公式

贝叶斯公式

朴素贝叶斯:

决策树基本的代码流程:

决策树的特点:

决策树的三种基本类型:

一些决策树基础概念

ID3的缺点

C4.5过拟合的原因

缺点

kd树的划分步骤

支持向量机的相关知识点

贝叶斯网络

knn算法:

knn三要素:

kmeans的算法流程

kmeans的优点和缺点

优点:

缺点:

DBSCAN算法流程

两个超参数

层次聚类:

自下而上的聚合聚类

自上而下的分裂聚类

聚类内部评价指标

内部评估法

外部评估法

降维

为什么要降维

降维的主要作用

降维的优缺点

优点:

缺点:

PCA算法的两种实现方法


机器学习的概念:

假设p用来评评估计算机程序在任务t上表现的性能,若利用经验e,程序在t上的表现的性能变好了,则说明程序对t进行了学习

样本:

一个数据集就是一堆样本的集合,数据集中的每一条都是一个样本。

特征:

指的就是样本的特点或属性

标签:

在有监督学习中,标签一般在数据集的最后一列,是对样本的一个分类。具体如下:

这里的样本就是编号为1-4的四个西瓜,特征就是西瓜的色泽、根蒂和敲声,标签就是这个西瓜是否是好瓜。

回归和分类任务:

若预测的是连续值,则是回归任务。用西瓜举例,预测西瓜的成熟度就是回归问题,若预测的值是离散值,则是分类任务,比如区分这个瓜是好瓜还是坏瓜,则是分类问题。

泛化能力:

训练后的模型在新样本上的适应能力

假设空间:

比如西瓜的色泽有绿和蓝两种取值,敲声有清脆和沉闷两种取值,还有情况就是西瓜的色泽或敲声取什么都合适的情况,用表示,还有一种极端情况是根本没有好瓜这个概念,所有都属于一类则假设空间的大小就是:(2+1×2+1+1=10种情况,其中第一个括号的2是绿和蓝两种情况,1是西瓜的色泽取什么都合适的情况(是的情况),第二个括号的2是西瓜的敲声是清脆和沉闷两种情况,1是敲声取什么都合适的情况。最后一个1是上述的极端情况。

输出空间:

所有输出可能取值的集合

有监督学习:

用标记好的数据训练模型(分类,回归)

无监督学习:

用没标记的数据训练模型(聚类、降维)

半监督学习:

因为很难搜寻到大量有标签的数据,只能搜寻到少量。因此,用少量带标签的数据和大量无标签的的数据进行训练

奥卡姆剃刀:

若有多个假设与观察一致,选择最简单的那个

四个损失函数:

0-1损失函数、平方损失函数、绝对损失函数、对数损失函数

正确率:

在m个样本中,有a个样本分类错误,则正确率为1-a/m

误差:

真实结果和预测结果之间的差异

过拟合:

学习能力太过强大,以至于把训练样本自身的一些不太一般的特性都学到了,比如用树叶来训练模型,但是模型把一些特殊的树叶本身的性质当成了一般性质,比如有的树叶是带有锯齿的,机器就认为所有树叶都带有锯齿。过拟合无法彻底避免!!

过拟合的处理:

1、获得更多的训练数据:获得更多训练数据是最有效的一种方式,可以减少噪声对模型性能的影响

2、降维:舍弃一些对预测没有帮助的特征

3、添加正则化:正则化可以保留所有的特征,但是减小参数的大小

欠拟合

学习能力较弱,学习不到训练样本的很多普遍的特性,训练的还不够,这个很好理解。

欠拟合的处理方式:

1、获取更多的特征:可以通过找到组合特征来取得更好的效果

2、提升模型的复杂度:欠拟合的原因之一就是模型过于简单

3、减小正则化系数:正则化是用来防止过拟合的,当模型出现欠拟合时,要适当减小系数

没有免费的午餐定理(NFL定理):

脱离具体的实际问题,空谈哪个模型的性能好坏是没有意义的,每个模型都有其优缺点,因此我们要根据实际问题去判断选取哪个模型。

误差

指的就是预测值和真实值之间的差异,这个差异可以有好多指标来评判,比如mse(均方误差)、mae(平均绝对误差)、精确度、交叉熵等。对于不同的问题,选择的误差评判指标往往不同。

训练误差:

模型在训练集上的预测值和真实值之间的差异,训练误差可以显示出模型在训练集上的表现

测试误差:

同理,模型在测试集上的预测值和真实值之间的差异

验证误差:

如果将数据集分为训练集、测试集和验证集时,验证误差的定义同上;

泛化误差:

模型在从未见过的数据上的预测值和真实值之间的差异,泛化误差越小,模型的泛化能力就越好

划分数据集的三种方法:

留出法和交叉验证法适用于样本数量较大的数据集,自助法适合样本数量较小的数据集。

留出法:

概述:对于一个训练集d,比如有1到10十个数字,我们把1-6分为训练集,8-10分为测试集。这就是留出法。

要点我认为有三个:

1、要保证训练集和测试集中的样本分布相似。比如在西瓜里,若有5个好瓜和5个坏瓜,训练集里就要有3个好瓜和3个坏瓜。测试集里就要有2个好瓜和2个坏瓜。

2、进行多次留出,计算多次结果的平均值作为最终结果:我们可以进行多次的随机划分,并把每次的测试集的结果取平均值。

3、训练集的划分尽量占数据集的2/3到4/5之间

交叉验证法(k折交叉验证):

概述:把数据集平均分为k部分,每次用k-1部分作为训练集,剩下1部分作为测试集。为减少因样本分布而产生的误差,我们通常会使用不同的划分重复p次,最终取多次结果的均值。

k折交叉验证的特殊情况:留一法

自助法:

有数据集d,现在新建一个空集d‘,然后每次随机取一个样本,复制进d’,再把这个样本放回d,这样的过程进行m次,最后就有了d‘作为训练集,d-d'作为测试集。

错误率,精度:

若有m个样本,其中a个样本被预测错误,则错误率为a/m,精度为1-a/m。

查准率(精确率)和查全率(召回率):

查准率(精确率)就是:被预测出来的真正的好瓜占被预测为好瓜的比率。

查全率(召回率)就是:被预测出来真正的好瓜占真正好瓜数量的比率,这两个概念有一些区别,请你们好好思考一些,下面举个例子说明:

若10个西瓜中有1-7七个好瓜,但是第一个模型预测出来的好瓜为1-5为好瓜,则此时的查准率(精确率)就是5/5=100%,此时的查全率(召回率)就是5/7。再举个例子还是1-7为好瓜,但是第二个模型预测出来的是1-4和8是好瓜,此时的查准率(精确率)就是4/5,查全率(召回率)就是4/7。这下你们就能理解了。

F1:

指的就是查准率和查全率的调和平均值,由于查准率和查全率不能两全,因此F1的出现是平衡了这两个参数,更能考虑两者的平衡关系。F1越接近于1,说明模型的性能越好。

下面来点专业的理解,有时间可以看一看:

偏差与方差:

偏差:期望输出与真实标签之间的差异,即模型对数据的拟合能力,算法对数据的学习能力。

方差:同样大小的数据集变动对模型产生的影响,即数据扰动的影响。

噪声:表达了任何算法在该问题上的泛化误差的下限,即刻画了这个问题本身的学习难度。

偏差、方差分解:误差是由偏差、方差和噪声组成的,即学习算法对数据的学习能力加上数据本身的充分性、加上这个问题本身的学习难度

偏差、方差窘境:在模型训练的过程中,在模型拟合数据不是很好时,此时偏差主导了错误率,数据产生的扰动不会产生什么影响。在模型对数据拟合的很好的时候,此时偏差较小,方差主导了错误率,数据产生的一点扰动都会对模型产生很大的影响

均方误差:

累加(y1-y1')**2后/n

最小二乘法:

在二维坐标系中,找到一条直线,让所有数据点到这条线的欧氏距离最短

多分类学习:

拆分策略

一对一(OvO):

若有1、2、3、4四个类别,我要把它们两两结合到一起,则会变成4×3/2个二分类问题,公式为C(2,4)。在测试阶段,我们把新样本传给每一个分类器。每一个分类器都会预测出来一个类别。最后进行投票,出现次数最多的类别为最终预测出来的类别。

一对多(OvR):

仍然是1、2、3、4个类别,一对多是把1-4类每个类都做一次正类,然后其余的做反类。比如当1做正类时,2、3、4做反类。然后预测新样本时,若仅有一个预测为正,则这个分类器对应的正类就是最终的样本分类结果。若有多个为正,则选置信度最大的那个。

多对多(MvM):

把一部分当正例,剩下一部分当反例,这样重复M次

海明距离:

在相同比特位上不同的个数。比如

111100

101000 这个海明距离就是2

对于不平衡类别的处理

1、欠采样:少采样一些数量较多的类别

2、过采样:复制或生成数量较少的类别

SMOTE:过采样的一种,通过在少数类别中间进行插值,来增加数量较少的类别

为什么要进行归一化和标准化?

1、提高模型的精度

2、加速模型收敛

归一化和标准化

归一化:

把数据映射到0-1或-1-1之间,归一化会改变特征数据分布,具体的公式为:

标准化:

把数据变换为均值为0,标准差为1的数据,标准化不会改变特征数据分布,公式为:

过拟合的处理方法:

1、获得更多的训练数据:获得更多的训练数据,可以降低噪声对模型性能的影响

2、降维:去除一些我们不需要的特征

3、添加正则化:

L1正则化:

可以产生稀疏模型

L2正则化:

可以防止过拟合

损失函数:

度量单样本的错误程度,损失函数越小,模型就越好

代价函数:

度量预测值和真实值的平均误差,常见的有均方误差、均方根误差、平均绝对误差

目标函数:

代价函数和正则化函数

梯度下降的三种形式:

1、批量梯度下降

2、随机梯度下降

3、小批量梯度下降

梯度下降和最小二乘法的比较:

梯度下降:需要设置学习率,需要迭代多次,适用于各种类型的模型

最小二乘法:不需要设置学习率,只需要算一次,但只适用于线性回归模型,不适用于其他模型

均方误差、均方根误差、平均绝对误差、R平方的计算公式

贝叶斯公式

朴素贝叶斯:

在化简部分会用到,是假设di和di-1无关

决策树基本的代码流程:

D为训练集

A为属性

生成节点node

if D中的数据全属于C类:

把node标记为叶节点,把node作为c类的叶节点;return

end if

if A=空集 or D在A上的取值都相同

把node标记为叶节点,其类别标记为D中大多数取值的类别;return;

为A选择最优节点a*

for a* 中每一个取值的av* do: 为node创建一个分支节点,把Dv作为D在a上的每一个取值av的对应子集 if Dv=空集 把该分支节点作为叶节点,把D中的大部分类作为该叶节点的分类 else 把。。。作为叶节点

决策树的特点:

优点:

1、可解释性强、计算过程清晰

2、

缺点:

容易造成过拟合

忽略了数据之间的相关性

决策树的三种基本类型:

ID3算法

C4.5

CART

一些决策树基础概念

信息熵

条件熵

信息增益

信息增益率

ID3的缺点

1、没有剪枝策略,容易过拟合

2、信息增益对可取值数目较多的属性有所偏好

3、没有处理缺失值

4、只能用于处理离散的分布的特征

C4.5过拟合的原因

为了有效的把训练样本分开,节点的划分会一直重复直到不能再划分为止,这样就容易学习到训练样本的一些特点当成普遍性质,导致过拟合

缺点

1、剪枝策略还能再优化

2、C4.5用的是多叉树,二叉树效率更高

3、C4.5涉及大量对数运算,很耗时间

4、C4.5只能用于分类

基尼系数的算法

kd树的划分步骤

1、先算x轴上的数据和y轴上的数据,谁的方差大,就从谁开始划分

2、比如先从x开始划分,则求x轴数据的中位数,x小于此中位数的为左子空间,x大于此中位数的为右子空间

3、然后重复这个过程,两个轴轮转着来划分。

最大间隔

支持向量机的相关知识点

支持向量机的优化目标:使到间隔的最近的点距离最远

软间隔:把大部分的点分的很清,小部分分的不对

硬间隔:全部的点分

线性可分:在二维空间中,能用一条直线把两类点完全分开的(硬间隔)

线性不可分:一条直线不能把两类点完全分开(软间隔)

在线性支持向量机中,惩罚参数和松弛变量有一定的关系:若惩罚参数大,则惩罚力度越强,松弛变量越小,模型就偏向于硬间隔。 若惩罚参数较小,则惩罚力度也较小,松弛变量会变大,模型更偏向于软间隔。

核函数:在支持向量机中,当数据在低维不可分时,用于把数据升维,使数据可分的 一个函数

常用的核函数:线性核函数、多项式核函数、高斯核函数。只有高斯核函数需要调参

贝叶斯网络

同父结构:在a为确定的值时,b和c条件独立。若不给出a的值,则b与c不相互独立

顺序结构:若x为确定的值时,z与y条件独立。若x不给出确切的值,则y与z不相互独立

V型结构:与之相反,若x3给出确切的值,则x1和x2不相互独立,反之则相互独立

knn算法:

以特征空间中与样本k个最相似的点,把样本化为它们中的大多数类

knn三要素:

1、确定k值

2、距离度量

3、决策原则

欧氏距离:

两点间的直线距离

曼哈顿距离:

切比雪夫距离

海明距离

计算对应比特位上数值不同的总数

闵可夫斯基距离

kmeans的算法流程

1、随机选择质心

2、按中心划分簇

3、重新计算每个簇的质心,再重复第二个步骤

kmeans的优点和缺点

优点:

1、可解释性强,通俗易懂

2、收敛速度快

3、聚类效果好

4、需要的参数的仅仅有k值

缺点:

1、k值不易设置

2、无法处理异常值和噪声

DBSCAN算法流程

1:把所有点都当成核心点、边界点

2、如果是核心点,则把它所有密度可达的都分到它的簇里

3、如果不是核心点,则把它分到它在其扫描半径里的那个核心点的簇

4、重复上面这个过程

两个超参数

1、 扫描半径

2、 最大包含点数,如果在一个点的扫描半径里包含的点大于等于了最大扫描点数,则这个点为核心点。若小于最大扫描点数,则为边界点。若不含点,则为噪声

层次聚类:

自下而上的聚合聚类

1、先把样本分簇

2、再把距离最近的两个簇合并为一个簇

3、重复这一过程,直到无法合并

自上而下的分裂聚类

1、把所有样本分到一个簇

2、把距离最远的两个样本分别分到两个簇

3、重复这一过程直到形成层次聚类

硬聚类:簇与簇之间没有交集,一个样本只属于一个簇

软聚类:簇与簇之间有交集,一个样本可以属于多个簇

聚类内部评价指标

内部评估法

DB指数:DB指数越小意味着簇间距离越小而且簇内距离越大。

dunn指数:dunn指数越大意味着簇间距离越小且簇内距离越大。

外部评估法

JC系数

FM系数

Rand系数

降维

为什么要降维

1、高维数据会增加运算的难度

2、高维数据会使模型的泛化能力变弱

3、降维能增加数据的可读性

降维的主要作用

1、减少冗余特征

2、数据可视化

降维的优缺点

优点:

1、减少数据集的存储空间,加快了模型的计算训练速度

2、有利于数据可视化

缺点:

1、会造成一定程度的数据损失

2、在PCA中,确定多少主成分往往是难以确定的,大多根据经验。

PCA算法的两种实现方法

1、基于SVD分解协方差矩阵实现PCA算法

2、基于特征值分解协方差矩阵实现PCA算法

标签:知识点,机器,训练,误差,模型,样本,学习,拟合,数据
From: https://blog.csdn.net/starssssssssss/article/details/136673930

相关文章

  • Python学习笔记-Flask实现简单的投票程序
    1.导入flask包 fromflaskimportFlask,jsonify,abort,make_response,request,render_template2.初始化Flask应用:app=Flask(__name__)3. 定义投票种类data=[{'id':0,'name':'劳动节','num':0},{'id':1,'name&#......
  • JavaScript学习--splice()函数入门与精通
    一、splice入门splice方法:通过删除(两个参数)或替换现有元素(三个参数)或者原地添加新的元素(三个参数)来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。参数:index——必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置(从1开始)。howmany——必需......
  • 嵌入式学习路线-自用
    本文将嵌入式学习路线分为几个方面:嵌入式基础必备知识51单片机STM32单片机小而美的RTOSARM+LINUX在这个快节奏的时代,能静下心,耐住性子看看文章,实属不易。 2、嵌入式基础必备知识 # 老子曰:“合抱之木,生于毫末:九层之台,起于垒土;千里之行,始于足下”,根基的重要性不言......
  • 通讯录管理系统学习记录
    黑马C++通讯录管理系统案例学习记录,并添加课堂上讲的部分功能。1.系统需求系统中需要实现的功能如下:添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人显示联系人:显示通讯录中所有联系人信息删除联系人:按照姓名进行删除指定联系......
  • CAP原理--一起学习吧之架构
    CAP定理为我们理解和设计分布式系统提供了重要的指导原则,它提醒我们在不同的场景下需要根据实际需求来权衡和选择一致性、可用性和分区容错性之间的平衡。二一、定义CAP定理,又被称为CAP原则,是指在一个分布式系统中,一致性(Consistency)、可用性(Availability)和分区容错性(Partitio......
  • 分布式与集群--一起学习吧之架构
    分布式和集群都是为了提高系统的性能和可靠性而采用的技术手段。它们在实际应用中各有优势,可以互相结合使用,以实现更好的系统性能和健壮性。一、区别组织结构:分布式:将一个复杂的业务系统拆分成多个子业务系统,每个子业务系统部署在不同的服务器上。这意味着,不同的子业务运行......
  • 深度学习 有哪些 让人惊艳的、天才般的创新点
    神经网络自适应学习率:通过引入二阶优化方法,神经网络可以根据不同参数的重要性来调整学习率,从而在训练过程中能够更快地收敛到最优解。双向循环神经网络(BiRNN):结合正向和反向循环的信息传递,可以更好地捕捉时间序列数据中的双向依赖关系,提高模型的准确性和泛化能力。自注意力......
  • 深度学习--自编码器(AE)、变分自编码器(VAE)
    提示:仅供自己学习、复习需要,有任何问题可在评论区提出。深度学习--自编码器一、自编码器AE二、变分自编码器VAE1.为什么要有VAE2.VAE推导一、自编码器AE自编码器是一种无监督的特征学习,其目的是利用无标签数据找到一个有效的低维的特征提取器。那什么是特征学习......
  • 学习C51单片机——动态数码管显示(学习笔记Keil5)
    学习C51单片机——动态数码管显示(学习笔记Keil5)文章目录学习C51单片机——动态数码管显示(学习笔记Keil5)1、延时函数2、数码管动态显示1、延时函数延时100msvoidDelay100ms(void) //@12.000MHz{ unsignedchardatai,j; i=195; j=138; do { while......
  • onnx runtime文档学习5-加速Pytorch之Pytorch推理
    网上充斥着ONNXRuntime的简单科普,却没有一个系统介绍ONNXRuntime的博客,因此本博客旨在基于官方文档进行翻译与进一步的解释。ONNXruntime的官方文档:https://onnxruntime.ai/docs/如果尚不熟悉ONNX格式,可以参照该博客专栏,本专栏对onnx1.16文档进行翻译与进一步解释,ONNX......