机器学习入门

机器学习 & 深度学习 & 人工智能:

  • 人工智能
    • 机器学习
      • 深度学习 (大模型)

最先出现的概念是人工智能,它是于 1956 年由 John McCarthy 提出。当时,人们渴望设计出一种「能够执行人类智能特征任务的机器」。
之后,研究人员构思出机器学习的概念,而机器学习的核心是寻求实现人工智能的方法,机器学习是实现人工智能的手段
再到后来,就出现了深度学习。深度学习只是机器学习中的一种特定方法。深度学习的关键在于建立具有更多神经元、更多层级的深度神经网络。

  • 机器学习一遍流程
建立模型函数
建立损失函数
求解损失函数最小值
模型评价与校验

机器学习 分支

  1. 监督学习 Supervised Learning
  2. 无监督学习 Unsupervised Learning
  3. 半监督学习 Semi-supervised Learning
  4. 强化学习 Reinforcement Learning

监督学习通常解决分类回归问题
无监督学习主要解决聚类问题
强化学习的方式,类似于大人什么都不告诉小孩,当小孩说脏话时就会挨打(负奖励),小孩做正确的事情时就给一颗糖吃(正奖励)。最后,小孩也就建立起是非观念了


监督学习

监督学习
原始数据 有标签
预测

监督学习方法:

  • 回归:x与y的关系
  • 分类
    在这里插入图片描述

无监督学习

无监督学习
监督学习
原始数据 无标签
原始数据 有标签
预测

无监督学习方法:

  • 数据聚类:把一堆数据按照它们特征的相似度分为多个子类
  • 关联规则 Association Rule:发现数据之间的关联性和强规则



机器学习 方法

1 回归预测:预测的是连续实数值

例如,股票价格预测,房价预测,洪水水位线预测

线性回归(线性预测)

线性方程
y = w0 + w1 * x

拟合数据,找到最适合的那一条红色直线,然后根据直线进行预测

也就是求解最合适的系数、拟合参数 w0,w1

在这里插入图片描述

损失函数

什么是最优的系数 w0,w1?

  • 损失 = 残差
    即真实值和预测值之间的偏离程度

设置损失函数的目的是 接下来通过最优化方法求得损失函数的最小值,
损失最小即代表模型最优。

在这里插入图片描述

残差的平方和越小,线的误差值越小,最能反应出数据的变化趋势

求解最小损失的线

求 平方损失函数的最优解:
  1. 最小二乘法 求解系数w
  2. 最小二乘法矩阵 求解系数w

多项式回归(非线性预测)

2次多项式方程
f = w0 + w1 * x + w2 * x*x

3次多项式方程
f = w0 + w1 * x + w2 * x*x + w3 * x*x*x

拟合次数越多,越接近数据
当8次时,曲线呈现出明显的震荡,这也就是线性回归实验中所讲到的过拟和(Overfitting)现象
在这里插入图片描述
普通最小二乘法带来的局限性,导致许多时候都不能直接使用其进行线性回归拟合。特别是以下两种情况:

  1. 数据集的列(特征)数量 > 数据量(行数量),即不是列满秩
  2. 数据集列(特征)数据之间存在较强的线性相关性,即模型容易出现过拟合

岭回归

岭回归可以被看作为一种改良后的最小二乘估计法,
它通过向损失函数中添加 L2正则项(2-范数)有效防止模型出现过拟合,且以助于解决非满秩条件下求逆困难的问题

LASSO 回归

LASSO 回归同样是通过添加正则项来改进普通最小二乘法,不过添加的是L1正则项。

*回归模型评价与检验

对于回归预测结果,通常会有平均绝对误差、平均绝对百分比误差、均方误差等多个指标进行评价

  1. 平均绝对误差(MAE): 绝对误差的平均值,
    MAE 的值越小,说明模型拥有更好的拟合程度
  2. 均方误差(MSE): 误差的平方的期望值
    MSE 的值越小,说明预测模型拥有更好的精确度
  3. 平均绝对百分比误差(MAPE)
    MAPE 是 MAD 的变形,它是一个百分比值,因此比其他统计量更容易理解

假设检验

是推论统计中用于检验现有数据是否足以支持特定假设的方法

拟合优度检验
变量显著性检验

2 分类预测: 预测数据是属于那种类别

例如:动物的种类判断、植物的种类判断、各类物品的种类判断等

  • 线性可分 与 线性不可分
    在这里插入图片描述
    二维空间内,用一条线将样本分开
    三维空间内,可以通过一个平面去将样本分开,也称为线性可分

【线性可分】逻辑回归 Logistic Regression

逻辑回归是一种分类方法,而并不是回归方法

通过线性函数构建线性分类边界来达到分类的效果。

如果一组连续随机变量符合 Sigmoid 函数样本分布,就称作为逻辑分布。
逻辑分布是概率论中的定理,是一种连续型的概率分布。

0-1分类问题、二分类问题

目标值只有0和1
在这里插入图片描述

Sigmoid 函数

在这里插入图片描述
图像呈现出完美的 S 型(Sigmoid 的含义)。它的取值仅介于 0和 1之间,以0.5为分界点分为两类。是解决二分类问题的完美选择

因为它的 z域是所有实数的集合,它的 y范围是(0,1)。因此,如果函数的输入是一个非常大的负数或非常大的正数,则输出总是介于0和1之间

对数损失函数

最优化求解中,只有 凸函数 往往才能求得全局最小值,非凸函数往往得到的是局部最优。然而,平方损失函数用于逻辑回归求解时得到的是非凸函数,即大多数情况下无法求得全局最优。使用了对数损失函数就避免了这个问题。

求对数损失函数的最优解:梯度下降法

一元函数而言,梯度就是指在某一点的导数。
对于多元函数而言,梯度就是指在某一点的偏导数组成的向量。

「梯度下降法」的核心就是,我们沿着梯度下降方向去寻找损失函数的极小值(梯度的反方向)
在这里插入图片描述

【线性不可分】 近邻算法 Nearest Neighbor

最近邻算法NN (Nearest Neighbor)

在这里插入图片描述
计算样本之间的距离,判断 未知样本 与不同训练集的相似度

K 近邻算法KNN (K-Nearest Neighbor)

NN 算法中只依赖 1 个样本进行决策,在分类时过于绝对,会造成分类效果差的情况,
为解决 NN 算法的缺陷,KNN 算法采用 K 个相邻样本的方式共同决策未知样本的类别
在这里插入图片描述

【概率】朴素贝叶斯 NaiveBayes

  • 贝叶斯定理,根据概率来推测数据
    在这里插入图片描述
    P(A) 表示 A 事件发生的概率。
    P(B) 表示 B 事件发生的概率。
    P(AB) 表示 A B 事件同时发生的概率。
    P(A|B) :计算得到 条件概率 P ( A ∣ B ) = P ( AB ) P ( B ) P(\text{A} \mid \text{B})=\frac{P(\text{A} \text{B}) }{P(\text{B})} P(AB)=P(B)P(AB) ,表示在 B事件发生的情况下 A事件发生的概率

  • 完整的贝叶斯定理
    P ( B ∣ A ) = P ( A B ) P ( A ) = P ( A ∣ B ) × P ( B ) P ( A ) P(B \mid A)=\frac{P(AB)}{P(A)}=\frac{P(A \mid B) \times P(B)}{P(A)} P(BA)=P(A)P(AB)=P(A)P(AB)×P(B)

  • 先验概率(Prior Probability)
    指的是根据以往经验和分析得到的概率
    P(A), P(B)

  • 后验概率(Posterior Probability)
    是事件发生后求的反向条件概率;即基于先验概率通过贝叶斯公式求得的反向条件概率。
    P(A|B)
    P(B|A)

  • 朴素贝叶斯(Naive Bayes)
    就是将贝叶斯原理以及条件独立结合而成的算法
    P ( B ∣ A ) = P ( A ∣ B ) × P ( B ) P ( A ) (朴素贝叶斯) P(\text{B} \mid \text{A})=\frac{P(\text{A} \mid \text{B}) \times P(\text{B})}{P(\text{A})} \tag{朴素贝叶斯} P(BA)=P(A)P(AB)×P(B)(朴素贝叶斯)
    利用先验概率,即特征类别的概率;再利用不同类别中各个特征的概率分布,
    最后计算得到后验概率,即各个特征 属于某个类别的概率
    P ( 类别 ∣ 特征 ) = P ( 特征 ∣ 类别 ) × P ( 类别 ) P ( 特征 ) P(\text{类别} \mid \text{特征})=\frac{P(\text{特征} \mid \text{类别}) \times P(\text{类别})}{P(\text{特征})} P(类别特征)=P(特征)P(特征类别)×P(类别)

    • 「朴素」
      朴素贝叶斯则人为的将各个特征割裂开,认定特征之间相互独立。朴素贝叶斯中的「朴素」,即条件独立,每个属性独立地对分类结果产生影响
      使得朴素贝叶斯算法变得简单,但有时会牺牲一定的分类准确率。
朴素贝叶斯模型 种类划分

依照特征的数据类型不同,采用不同的先验概率计算方法
对朴素贝叶斯模型进行划分,并分为:多项式模型,伯努利模型和高斯模型。

多项式模型

适用:特征值为离散

问题:若类别中缺少一些特征,则就会出现概率值为 0 的情况,此时,就会影响后验概率的计算结果,使得分类产生偏差。
解决这一问题最好的方法就是采用贝叶斯估计

伯努利模型

适用:于离散特征的情况, 每个特征的取值只能是 1 和 0
以文本分类为例,某个单词在文档中出现过,则其特征值为 1,否则为 0

高斯分布

适用:当特征是连续变量的时候

高斯模型实际上就是假设连续变量的特征数据是服从高斯分布

支持向量机 Support Vector Machine

在寻找最优的划分方法时,支持向量机给了一种从几何学上更加直观的方法进行求解

  • 线性分类 支持向量机
    支持向量机的分割特点在于,直线的两边再设立两个互相平行的虚线,要使得分割直线和虚线之间的间隔最大化。也就是两虚线之间的间隔最大化。

  • 非线性分类 支持向量机
    把线性不可分数据转换为线性可分数据之后,再完成分类
核技巧与核函数
  • 核技巧
    核技巧的关键在于空间映射,即将低维数据映射到高维空间中,使得数据集在高维空间能被线性可分。
    在这里插入图片描述
  • 核函数
    将数据点从低维度空间转换到高维度空间的方法有很多,但往往涉及到庞大的计算量,而数学家们从中发现了几种特殊的函数,这类函数能大大降低计算的复杂度,于是被命名为「核函数
  • 线性核函数
  • 多项式核函数
  • 高斯径向基核函数
  • Sigmoid 核函数

决策树

决策树是一种特殊的树形结构,一般由节点有向边组成。
节点 表示特征、属性或者一个类,
有向边 包含判断条件。
决策树从根节点开始延伸,经过不同的判断条件后,到达不同的子节点。而上层子节点又可以作为父节点被进一步划分为下层子节点。
在这里插入图片描述
一个身高 163 厘米,长发,带着耳钉且声音纤细的人,在这个决策树判断后预测为一名女性。

  • 预剪枝和后剪枝
    决策树的构建过程中,特别在数据特征非常多时, 会过拟合使得模型的泛化能力变弱, 避免过拟合问题的出现,在决策树中最常见的两种方法就是预剪枝和后剪枝

预剪枝:自顶向下修剪。构建决策树模型的时候如果当前节点的划分不能带来决策树泛化的提升,则停止划分
后剪枝:自底向上修剪。在决策树构建好之后,将最后的分支节点替换为叶节点,判断是否带来决策树泛化的提升,是则进行修剪

集成学习

每一个分类器都有其独有的特点并非常适合某些数据。但在实际中,由于数据的不确定性,单独应用个别分类器可能会出现分类准确率低的问题。为了应对这样的情况,集成学习被提出,其可以利用多个弱分类器结合的方式提高分类准确率。

通过构建多个分类器并综合使用来完成学习任务,同时也被称为多分类器系统


3 聚类

划分聚类:

划分聚类:通过划分的方式将数据集划分为多个不重叠的子集(簇),每一个子集作为一个聚类(类别)。

K-Means

划分聚类中,K-Means 是最具有代表性的算法

  1. 对于未聚类数据集,首先随机初始化 K 个(代表拟聚类簇个数)中心点
    在这里插入图片描述
  2. 每一个样本按照距离自身最近的中心点进行聚类,等效于通过两中心点连线的中垂线划分区域

在这里插入图片描述
3. 依据上次聚类结果,移动中心点到个簇的质心位置,并将此质心作为新的中心点
在这里插入图片描述
4. 反复迭代,直至中心点的变化满足收敛条件(变化很小或几乎不变化),最终得到聚类结果
在这里插入图片描述

层次聚类

无需提前指定需要聚类类别的数量

自底向上层次聚类法

该方法的过程被称为「凝聚」Agglomerative
也就是把数据集中的每个元素看作是一个类别,然后进行迭代合并成为更大的类别,直到满足某个终止条件。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 距离计算方法

一般常用「平均连接」和「中心连接」方法,
因为「单连接」和「全连接」都相对极端,容易受到噪声点和分布不均匀数据造成的干扰。

单连接(Single-linkage):最近的元素间距离
在这里插入图片描述
全连接(Complete-linkage):最远的元素间距离
在这里插入图片描述
平均连接(Average-linkage):依次计算两种类别之间两两元素间距离,并最终求得平均值,计算量大
在这里插入图片描述
中心连接(Center-linkage):先计算类别中心,再以中心连线作为两类别之间的距离
在这里插入图片描述

自顶向下层次聚类法

实际应用中,自顶向下层次聚类法没有自底而上的层次聚类法常用

实施过程中常常遇到一个问题: 那就是如果两个样本在上一步聚类中被划分成不同的类别,那么即使这两个点距离非常近,后面也不会被放到一类中。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

BIRCH 聚类算法

Balanced Iterative Reducing and Clustering using Hierarchies,直译过来就是「使用层次方法的平衡迭代规约和聚类」
最大的特点就是高效,可用于大型数据集的快速聚类。

在这里插入图片描述

降维技术: 主成分分析 PCA(Principal components analysis)

降维技术
其本质也可以看作是在最大化保留原始数据的情况下对数据做映射, 减少数据集的维数

密度聚类

密度聚类通过评估样本的紧密程度来划分对应的类别,理论上可以找出任何形状的聚类并有效避免噪声的干扰, 包括非凸(non-convex)数据
也无需像划分聚类那样提前声明需要聚集的类别数量。

DBSCAN 密度聚类算法

Density-based spatial clustering of applications with noise 的缩写,直译过来就是「具有噪声的基于密度的聚类方法」
显著优点是可以在有噪音的数据中发现形状与大小各异的类别

  1. DBSCAN 会以每个数据点为圆心,以eps为半径画圆。
  2. 计算相应圆中有多少个其他点
  3. 定义密度阈值 MinPts,并根据密度阈值划分数据点(包含自己),分为低密度 或 高密度点。
  4. 圆圈范围内, 相互连接高密度点
  5. 圆圈范围内, 低密度的点连接到最近的高密度点上,并称之为边界点。
  6. 无法被连接的点就定义为异常点

MinPts = 4 在这里插入图片描述

DBSCAN 算法的一个很大的缺点,那就是参数敏感性
数据分布密度不均匀时,如果我们把 eps 设置为较小值,那么密度本身较小的类别会被进一步划分为多个子类。同理,当设置 eps 值较大时,会使得距离较近且密度较大类别被合并成一个簇。这也就体现了 DBSCAN 的不稳定性。

HDBSCAN 聚类算法

Density-Based Clustering Based on Hierarchical Density Estimates 基于层次密度估计的密度聚类方法

HDBSCAN 通过结合层次聚类的特点来改善 DBSCAN 的不稳定性

  1. 生成原始聚簇。 此阶段和 DBSCAN 算法的第一阶段相似,确定核心点,生成原始聚簇并有效地识别噪声点。
  2. 合并原始聚簇。 在此阶段使用层次聚类的思想对原始聚簇进行合并,降低了聚类结果对输入参数的敏感性。由于该方法不需要对每个对象进行测试和判断,同时也降低了时间复杂度。

谱聚类

拉普拉斯矩阵(Laplacian Matrix),也称为基尔霍夫矩阵,是无向图的一种矩阵表示形式

  1. 生成数据集的无向图
  2. 把整个无向图切分成小块
    在这里插入图片描述
  • 谱聚类演化于图论,是一种原理简洁且效果不错的聚类方法。相比于 K-Means,谱聚类主要有以下优点。
    1. 适用于各类形状的数据分布聚类。
    2. 计算速度较快,尤其是在大数据集上明显优于其他算法。
    3. 避免了 K-Means 会将少数离群点划为一类的现象。

*聚类方法选择

在这里插入图片描述


4 关联规则

用途是发现数据之间的关联性和强规则。

简单来讲,当某类别数据或某个模式在数据集中出行的频率增大时,自然大家都会认为其肯能会更为常见或重要。
那么,如果发现两个或多个类别数据同时出现,自然就可以认为其相互之间存在联系或规则。

  • 集合
    在超市购物时,把整个超市一天的全部账单看作是集合 I

  • 项集
    单个购物车账单中出现的商品集合就可以被看作是项集S

  • 频繁项集
    频繁项集则表明一个项集出现很「频繁」
    项集的支持度超过预先设定的最小支持阈值,则认为该项集可能是有用的,也就被称之为「频繁项集」。

  • 关联规则
    X → Y X \to Y XY
    X, Y是不相交项集

  • 关联规则的强度
    用它的支持度(support)和置信度(confidence)度量

    • s u p p o r t ( X → Y ) support(X \to Y) support(XY)
      表示 项集{X,Y}总项集 I 中出现的频率 = P ( Y ∪ X ) P (Y \cup X) P(YX)
      支持度的意义在于确定这条规则是否有必要被关注
    • c o n f i d e n c e ( X → Y ) confidence(X \to Y) confidence(XY)
      表示在 X 出现情况下,出现 Y 的可能性 = P ( Y ∣ X ) P (Y | X) P(YX)
      置信度的意义在于帮助我们确定规则的可靠性
  • 格结构
    枚举数据集可能存在的项集
    在这里插入图片描述

关联规则挖掘就是从众多的项集中去发现支持度和置信度大于我们所设定阈值的规则

  1. 发现频繁项集:发现满足最小支持度阈值的所有项集,也就是所说的「频繁项集」。
  2. 计算关联规则:从发现的频繁项集中提取所有高置信度的规则,作为关联规则挖掘结果。

Apriori 算法

找出频繁项集时。笨办法是通过计算每个候选项集的支持度计数,但随着n增加,计算开销可想而知。
于是,就有了使用 Apriori 先验原理来减少候选项集数量的方法

Apriori 先验原理, 主要是告诉我们 2 条定理,即:

  • 定理 1:如果一个项集是频繁项集,那么其所有的子集也一定是频繁项集。
  • 定理 2:如果一个项集是非频繁项集,那么其所有的超集也一定是非频繁项集。

即:发现 {a,b} 是非频繁项集,则整个包含 {a,b} 的超集子图都可以被剪枝

时间序列数据

时序数据特点:

  • 时间序列数据依赖于时间,但不一定是时间的严格函数。
  • 时间序列数据每时刻上的值具有一定的随机性,不可能完全准确地用历史值去预测。
  • 时间序列数据前后时刻(但不一定是相邻时刻)的数值往往具有相关性。
  • 从整体上看,时间序列往往会呈现出某种趋势性或出现周期性变化的现象。
1描述性时序分析、确定型时序分析

方法:通过直观的数据比较或绘图观测,寻找序列中蕴含的发展规律
对数据的要求很高

2统计时序分析

方法:利用数理统计学相关的原理和方法来分析时间序列。

一般又被细分为两类不同的分析方法,分别是:频域分析时域分析

  • 频域分析
    依赖于强数学背景,有很大的局限性
时域分析

原理主要是参照事件发展过程中的惯性,从而通过惯性用统计来描述就是时间序列值之间存在的相关关系

  • 时域分析方法
    1. AR 自回归模型
    2. MA 移动平均模型
    3. ARMA 回归移动平均模型: 通常被用于平稳时间序列分析过程,
    4. ARIMA 求和自回归移动平均模型: 广泛应用于非平稳序列随机分析过程

在这里插入图片描述

「平稳」时间序列
  • 平稳时间序列检验
    • 图检验: 一张时序图呈现出明显的增长和下降趋势,那么就一定不平稳。
    • 假设检验:
    • 自相关图: 平稳序列通常具有短期相关性
      自相关,序列相关 = 变量之间的关系强度
  • 纯随机性检验
    纯随机的平稳序列是没有任何分析价值的,平稳后还要看是不是随机序列
    • Q 统计量和 LB 统计量(Ljung-Box)
      Python 中,我们可以利用 statsmodels 统计计算库中的 acorr_ljungbox() 函数计算 LB 统计量,该函数默认会返回 LB 统计量和 LB 统计量的 P 值。如果 LB 统计量的 P 值小于 0.05,我们则认为该序列为非随机序列,否则就为随机序列。

如果序列平稳,那么就可以应用 ARMA 等成熟的建模方法完成分析。

  • 差分运算:使序列变平稳
    从序列中提取确定性信息的方法
    每次差分都会带来信息损失,过度差分会导致有效信息损失而降低精度。一般情况下,线性变化通过 1 次差分即可平稳,非线性趋势 2,3 次差分也能变得平稳,一般差分次数不超过 2 次。
时域分析模型
AR

AR 模型非常简单,其思路来源于线性回归。即假设序列包含线性关系,然后用 x 1 x_1 x1 x t − 1 x_{t-1} xt1 预测 x t x_t xt

ARMA

ARMA 模型一般记作:ARMA(p, q)
即为 模型的组合

ARMA 首先就要使得序列满足「平稳」要求

建模前,首先需要确定 p 和 q 的取值。一般来讲,确定二者的取值有 3 种方法,分别是 AIC(Akaike Information Criterion ),BIC(Bayesian Information Criterion ) 和 HQIC(Hannan-Quinn Criterion )。

ARIMA 建模

ARIMA 模型通常记作: ARIMA(p, d, q) 。
比ARMA多的字母I 就代表差分,d阶差分,p阶AR 和 q阶MA
ARIMA 模型适合于对非平稳序列进行建模分析

  1. 序列数据差分运算
  2. 使用差分后的数据确定 p, q 参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值