李航统计学习概述

yizhihongxing

监督学习

感知机

  • 概念:

    • 感知机模型的基本形式是:

      \(f(x) = sign(w \cdot x + b)\)

      其中,\(x\) 是输入样本的特征向量,\(w\) 是权值向量,\(b\) 是偏置量,\(w \cdot x\) 表示向量 \(w\)\(x\) 的点积。\(sign\) 函数表示符号函数,当输入大于 0 时输出 1,否则输出 -1。

  • 要求模型必须线性可分

K近邻

  • 基本思想:是对于一个新的输入样本,在训练数据集中找出与之最邻近的k个样本,并将其预测结果作为该样本的输出。

  • 步骤

    1. 计算测试样本与训练样本集中每个样本的距离;
    2. 选取距离最近的k个训练样本;
      对于分类问题,采用投票法,即将k个样本中出现最多的类别作为预测结果;对于回归问题,采用平均值,即将k个样本的输出值的平均值作为预测结果。
  • 选取最近的k个样本一般采用kd树来进行实现。

    kd树采取方差最大的那一变量(的中位数)进行分割

    kd树的查询首先寻找到该点所在的子节点的部分。然后逐渐向上递归比较父节点和父节点的另一个子节点是否在某个领域(当前的最小距离)内具有交际。

朴素贝叶斯

  • 假设每个特征之间相互独立。即\(P(X_1,X_2,X_3,...,X_n|Y)=P(X_1|Y)*P(X_2|Y)*...*P(X_n|Y)\)
  • 后验概率最大化,无论是采用极大似然估计或者贝叶斯估计,都可以推导出相应的公式。
  • 假设有 \(n\) 个特征和 \(m\) 个类别,我们需要分类一个新的样本 \(x\),其中 \(x_i\) 表示第 \(i\) 个特征的取值。根据贝叶斯定理,可以计算出给定样本 \(x\) 属于第 \(j\) 个类别的后验概率 \(P(C_j | x)\),即:
\[P(C_j|X) = \frac{P(X|C_j)P(C_j)}{P(X)}
\]

其中,\(P(C_j)\) 表示类别 \(j\) 在训练集中的先验概率,\(P(x | C_j)\) 表示样本 \(x\) 在给定类别 \(j\) 的条件下的概率密度函数(通常假设为高斯分布,或者直接使用频率代替概率),\(P(x)\) 表示样本 \(x\) 在所有类别下的概率。由于分母 \(P(x)\) 对于所有类别来说都是相同的,因此可以省略,只需要计算分子即可。此时,\(P(C_j | x)\) 可以看作样本 \(x\) 属于类别 \(j\) 的“置信度”,将样本分配给概率最大的类别即可。

决策树

  • 分为三个步骤:特征选择、树的生成和剪枝。
  • 需要了解下面几个概念:
\[\text{熵:}H(Y) = -\sum_{y \in Y} p(y) \log_2 p(y)
\]

\[H(Y|X)=\sum_{i=1}^{n}p_iH(Y|X=x_i)
\]

\[\text{信息增益:IG}(X, Y) = H(Y) - H(Y|X)
\]

\[\text{信息增益比:IGR}(X, Y) = \frac{\text{IG}(X, Y)}{H(X)}
\]

\[\text{基尼指数:Gini}(Y) = \sum_{i=1}^{|Y|} \sum_{j\neq i} p_i p_j = 1 - \sum_{i=1}^{|Y|} p_i^2
\]

\[\text{Gini}(X,Y) = \sum_{D_i=1}^{|D|}p_i\text{Gini}(D_i)
\]

  • 不同的决策树算法就是基于上述不同的指标来进行特征的选择。

  • 剪枝算法:首先定义一个损失函数\(L(T)=\sum_{t=1}^{|T|}N_tH_t(T)+\alpha|T|,其中T为子节点,N_t为子节点的样本点数量。\)对于决策树每一个子节点,如果多个子节点的损失大于父节点将他们吸收的损失,那么父节点就合并所有的子节点,并向上计算,可以通过递归(或者非递归)的动态规划进行解决。

logitics和最大熵模型

类似感知机,只是将最终的函数由sign改为了logistics。

支持向量机

首先了解以下概念:

  1. 函数间隔.\(y|wx+b|\)
  2. 几何间隔.\(y\frac{|wx+b|}{|w|}\)
  3. 线性支持向量机就是要最大几何间隔。
  4. 拉格朗日对偶原理和拉格朗日乘子法。拉格朗日对偶
  5. 支持向量
  6. 合页函数最优化求解和支持向量的原问题的等价性
  7. SMO启发式方法

AdaBoost

假定具备一个弱分类器(该分类准确率仅仅比随机猜测的概率高一些),AdaBoost通过综合多种分类器的线性叠加,从而实现一个强分类器。

AdaBoost具有两种等价的解释:

  1. 通过调整训练数据的权重(增加错误样例的权重,减小正确样例的权重),从而训练得到不同的弱分类器\(G_1,G_2...G_m和相应的权重\alpha_1...\alpha_m\),最终线性叠加得到\(f=\alpha_1G_1+...+\alpha_mG_m\).
  2. AdaBoost等价于不断求解残差的拟合。

EM算法

EM算法用的特别广泛,需要完全理解它的推导过程。

  1. EM算法的推导
  2. EM算法求解高斯混合模型
  3. EM算法的推广,F函数。

隐马尔可夫模型

  1. 三个基本问题:预测、评估和学习
  2. 前向、后向算法
  3. 维特比算法,本质上三个算法都是动态规划
  4. Baum-Welch算法求解学习问题

条件随机场

  1. 势函数的定义和条件随机场的定义
  2. 使用前向后向算法求解概率
  3. 学习算法,使用迭代尺度、拟牛顿进行学习

无监督学习

聚类算法

  1. 层次化聚类
  2. k均值聚类

奇异值分解

矩阵的SVD分解,并对\(\Sigma\)进行截断(取前k个奇异值)

主成分分析

SVD的应用

潜在语义分析

概率潜在语义分析

马尔可夫蒙特卡洛方法

  1. 拒绝采样法

  2. Metropolis-Hasting采用法

    1. 初始化:给定样本起始值 \(x^{(0)}\)
    2. 对于 \(t=1,2,\ldots,T\),进行如下迭代:
      从给定的候选分布 \(q(x^{(t)}|x^{(t-1)})\) 中抽取一个样本 \(x^\prime\)
      计算接受概率 $$\alpha=\min({1,\frac{p(x\prime)}{p(x)}\frac{q(x{(t-1)}|x\prime)}{q(x\prime|x)})}$$
    3. 以概率 \(\alpha\) 接受样本 \(x^\prime\),即 \(x^{(t)}=x^\prime\),否则拒绝样本 \(x^\prime\),即 \(x^{(t)}=x^{(t-1)}\)
    4. 返回样本集合 \({x^{(1)},x^{(2)},\ldots,x^{(T)}}\)
      其中,\(T\) 是迭代次数,\(x^{(t)}\) 表示第 \(t\) 次迭代后的样本值,\(p(x)\) 表示目标概率分布,\(q(x^{(t)}|x^{(t-1)})\) 表示给定上一个状态 \(x^{(t-1)}\) 的条件下,生成下一个状态 \(x^{(t)}\) 的候选分布,\(\alpha\) 表示接受候选状态的概率,即 \(x^{(t)}\) 作为下一个状态的概率,\(\min{1,\cdots}\) 保证了接受概率不会大于 \(1\),从而保证了接受的状态总是有意义的。
  3. 吉布斯采用法

    吉布斯采样(Gibbs Sampling)是一种基于马尔可夫链蒙特卡罗(MCMC)方法的采样算法,用于从多维分布中抽取样本。它通过迭代更新每个维度的条件概率分布来得到样本。吉布斯采样的公式如下:

    1. 初始化:给定样本起始值 \(x^{(0)}=(x_1^{(0)},x_2^{(0)},\ldots,x_n^{(0)})\)
      对于 \(t=1,2,\ldots,T\),进行如下迭代:
      对于第 \(i\) 维,计算条件概率 \(p(x_i|x_1^{(t)},\ldots,x_{i-1}^{(t)},x_{i+1}^{(t-1)},\ldots,x_n^{(t-1)})\)
    2. 从条件概率分布 \(p(x_i|x_1^{(t)},\ldots,x_{i-1}^{(t)},x_{i+1}^{(t-1)},\ldots,x_n^{(t-1)})\) 中抽取一个样本,即 \(x_i^{(t+1)}\sim p(x_i|x_1^{(t)},\ldots,x_{i-1}^{(t)},x_{i+1}^{(t-1)},\ldots,x_n^{(t-1)})\)
    3. 返回样本集合 \({x^{(1)},x^{(2)},\ldots,x^{(T)}}\)
      其中,\(T\) 是迭代次数,\(x_i^{(t)}\) 表示第 \(t\) 次迭代后第 \(i\) 维的值,\(p(x_i|x_1^{(t)},\ldots,x_{i-1}^{(t)},x_{i+1}^{(t-1)},\ldots,x_n^{(t-1)})\) 表示在给定其他维度取值的情况下第 \(i\) 维的条件概率分布。

    吉布斯采样的核心思想是,通过条件概率分布来描述多维分布的联合概率分布,从而能够通过单个维度的条件概率来更新样本值,避免了计算联合概率分布的复杂度。通过多次迭代,吉布斯采样可以得到服从多维分布的样本集合,从而可以用于估计多维分布的各种性质。需要注意的是,吉布斯采样的收敛性和稳定性是需要保证的,否则会导致采样结果不准确或者不收敛。针对不同的问题和数据分布,需要进行适当的调整和优化。

潜在迪利克雷分配

PageRank算法

\[PR(p_i) = \frac{1-d}{N} + d \sum_{p_j \in M(p_i)} \frac{PR(p_j)}{L(p_j)}
\]

其中,\(PR(p_i)\) 表示网页 \(p_i\) 的PageRank值,\(d\) 是一个常数,称为阻尼因子,通常取值为 0.85。\(N\) 是网页总数,\(M(p_i)\) 表示指向网页 \(p_i\) 的所有网页集合,\(L(p_j)\) 表示网页 \(p_j\) 指向的网页数。

原文链接:https://www.cnblogs.com/chenfengshijie/p/17351328.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:李航统计学习概述 - Python技术站

(0)
上一篇 2023年4月25日
下一篇 2023年4月25日

相关文章

  • 解析网站处理数据交换时的序列化和反序列化

    当网站处理数据交换时,数据往往要以一定的格式进行序列化和反序列化,以保证数据的传输和存储的正确性。本文将详细讲解如何解析网站处理数据交换时的序列化和反序列化。 什么是序列化和反序列化? 序列化(Serialization),简单来说就是将数据从一种特定的格式转换成字符串的过程。因此经过序列化后的数据可以通过网络传输或者存储到文件中,同时也可以减少数据传输过程…

    数据结构 2023年5月17日
    00
  • python实现爬山算法的思路详解

    下面是详细讲解“Python实现爬山算法的思路详解”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 爬山算法是一种基于贪心思想的局部搜索算法,其基本思想是从一个随机的起点开始,每次选择当前位置的最优方向,直到达到局部最优解。具体步骤如下: 随机选择一个起点; 计算当前位置的函数值; 在当前位置的邻域内选择一个最优方向; 如果该方向的函数…

    python 2023年5月14日
    00
  • Java数据结构之插入排序与希尔排序

    Java数据结构之插入排序与希尔排序 插入排序 插入排序是一种简单而有效的排序算法。它的基本思想是将一个元素插入已经排好序的部分中。插入排序的过程可以用以下伪代码表示: for i=1 to length-1 j = i while j > 0 and array[j-1] > array[j] swap array[j] and array[j…

    数据结构 2023年5月17日
    00
  • pytorch 液态算法实现瘦脸效果

    以下是关于“PyTorch液态算法实现瘦脸效果”的完整攻略: 简介 液态算法是一种基于深度学习的图像处理技术,可以实现对人脸的瘦脸、美白、祛斑等效果。在本教程中,我们将介绍如何使用PyTorch实现液态算法,实现瘦脸效果。 原理 液态算法的实现原理包括人脸检测、关键点定位、三维变形等步骤。在本教程中,我们将使用PyTorch实现人脸检测和关键点定位,使用三维…

    python 2023年5月14日
    00
  • 线段树好题! P2824 [HEOI2016/TJOI2016]排序 题解

    题目传送门 前言 线段树好题!!!!咕咕了挺久的一道题目,很早之前就想写了,今天终于找了个时间A掉了。 题意 给定一个 \(1\) 到 \(n\) 的排列,有 \(m\) 次操作,分两种类型。1.0 l r表示将下标在 \([l, r]\) 区间中的数升序排序。2.1 l r表示将下标在 \([l, r]\) 区间中的数降序排序。给定一个数 \(q\) 询问…

    算法与数据结构 2023年4月17日
    00
  • python实现simhash算法实例

    下面是关于“Python实现Simhash算法实例”的完整攻略。 1. Simhash算法简介 Simhash算法是一种文本去重算法,它可以将一篇文本转换成一个64位的二进制数,然通过比较两个二进制数的汉明距离来判断它们是否相似。Simhash算法的优点是可以快速地判断两篇文本是否相似,适用于规模文本去重。 2. Simhash算法实现 下面是Python实…

    python 2023年5月13日
    00
  • C++ 数据结构之kmp算法中的求Next()函数的算法

    C++ 数据结构之kmp算法中的求Next()函数的算法 什么是KMP算法和Next()函数 KMP算法(Knuth-Morris-Pratt算法)是一种字符串匹配算法,能够解决的问题是,在一个文本串S中查找一个模式串P是否出现并且返回第一次出现的位置。而Next()函数则是在KMP算法中使用的一个关键的子函数,用于计算模式串P中每个前缀的最长相同真前缀和后…

    数据结构 2023年5月17日
    00
  • C++如何实现BitMap数据结构

    下面我将详细讲解C++如何实现BitMap数据结构的完整攻略,包含以下几个方面: 什么是BitMap数据结构 如何使用C++实现BitMap数据结构 BitMap数据结构的应用示例说明 1. 什么是BitMap数据结构 BitMap数据结构也叫位图,是一种非常简单而高效的数据结构,它主要是用来对大量数字进行存储和操作的。所谓BitMap,就是将一个数字序列通…

    数据结构 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部