• 机器学习三要素:模型、学习准则、优化算法

贝叶斯公式

最小错误率贝叶斯决策

后验概率 P(ω1x)=P(xω1)P(ω1)P(xωj)P(ωj)P(\omega_1 | x) = \dfrac{P(x|\omega_1)P(\omega_1)}{\sum P(x|\omega_j)P(\omega_j)}
P(ω1)P(\omega_1)——先验概率,P(xω1)P(x|\omega_1)——似然概率

最小风险贝叶斯决策

考虑不同决策带来的损失 R(αix)=λijP(ωjx)R(\alpha_i|x) = \sum \lambda_{ij}P(\omega_j|x)

ROC曲线

真阳性率TPR~假阳性率FPR

识别为真 识别为假
正样本 TP FN
负样本 FP TN

TPR=TPTP+FNTPR = \dfrac{TP}{TP+ FN}

FPR=FPFP+FNFPR = \dfrac{FP}{FP+ FN}

作用:

  • 确定似然比
  • 比较两种分类判别方法的性能
  • 作为特征与类别相关性的度量
  • 越靠近左上角越好(计算面积——AUC分数)

概率密度函数估计(求解先验概率)

极大似然估计θ\theta是确定的、未知的

原理:使样本集出现的概率最大

步骤:

  • 构造似然函数 l(θ)=ΠP(xiθ)l( \theta ) = \Pi P(x_i|\theta)
  • 取对数 lnl(θ)\ln l(\theta)
  • 求偏导,求最大值

非参数估计 P(x)=KNNVNP(x) = \frac{K_N}{NV_N}

KNK_NNN 个样本落 VNV_N 的样本数

收敛条件:

  • limNVN=0\lim\limits_{N\to\infty}V_N = 0
  • limNKN=\lim\limits_{N\to\infty}K_N = \infty
  • limNKNN=0\lim\limits_{N\to\infty}\dfrac{K_N}{N} = 0

Parzen 窗口估计法

样本足够多才能有较好估计

VNV_N 作限制,如 VN=hnV_N = \dfrac{h}{\sqrt{n}}
PN=1Ni=1N1VNφ(xxihN)P_N = \dfrac{1}{N} \sum\limits_{i=1}^N\dfrac{1}{V_N}\varphi (\frac{x-x_i}{h_N})

KNK_N 近邻法

KNK_N 作限制,如 KN=NK_N = \sqrt{N}, VN=V1NV_N = \frac{V_1}{\sqrt{N}}

线性分类器

设计线性判别函数 g(x)=wTx+w0g(x) = w^Tx+ w_0

Fisher 线性判别分析

思路:类内离散度尽可能小,类间离散度尽可能大

方法:拉格朗日乘数法

准则函数 J(w)=wTSbwwTSwwJ(w) = \dfrac{w^TS_bw}{w^TS_ww}

步骤:

  • 求均值 mi=1Nxm_i = \dfrac{1}{N}\sum x

  • 求类内离散度矩阵 Si=(xmi)(xmi)TS_i = \sum (x -m_i)(x - m_i)^T

  • 总类内离散度矩阵 Sw=S1+S2S_w = S_1+ S_2

    类间离散度矩阵 Sb=(m1m2)(m1m2)TS_b = (m_1 -m_2)(m_1 - m_2)^T

  • w=Sw1(m1m2)w^* = S^{-1}_w(m_1-m_2)

  • w0=12wT(m1+m2)w_0 = -\frac{1}{2}w^{*T}(m_1+ m_2)

  • 判别函数 g(x)=wTx+w0g(x) = w^{*T}x + w_0

感知器

样本线性可分

  • yw1y\in w_1 时, g(x)>0g(x)>0
  • yw2y\in w_2 时, g(x)<0g(x)<0

步骤:

  • 增广化——添加一维并设置为1— (1,0,1)(1,0,1,1)(1,0,1) \to (1,0,1,1)
  • 规范化 y={yif    yw1yif    yw2y' = \left\{\begin{matrix} y &\text{if} ~~~~ y\in w_1 \\ -y &\text{if} ~~~~ y\in w_2 \\ \end{matrix}\right.
  • 将样本带入 g(x)=αTyg(x) = \alpha^T y, 若 g(x)>0g(x) > 0则不变, 若 g(x)<0g(x)<0 则修正 αi+1=αi+ρyk\alpha_{i+ 1} = \alpha_i + \rho y_k

线性支持向量机

  • 最优分类超平面

能够将训练样本没有错误地分开且两类训练 样本中离平面最近的超平面之间的距离最大(分类间隔)

  • 支持向量
  • 决定最优分类超平面的样本

线性回归

  • 单变量线性回归
    • 方法:最小二乘法
    • 性能评价:均方误差
  • 多元线性回归
    • E(w^)=(YXw^)T(YXw^)E(\hat{w})=(Y-X\hat{w})^T(Y-X\hat{w})
    • w^=(XTX)1XTY\hat{w} = (X^TX)^{-1}X^TY
    • 当逆不存在时,使用岭回归
      • E(w^)=(YXw^)T(YXw^)+12λw^Tw^E(\hat{w})=(Y-X\hat{w})^T(Y-X\hat{w})+\frac{1}{2}\lambda\hat{w}^T\hat{w}
      • w^=(λI+XTX)1XTY\hat{w} = (\lambda I+X^TX)^{-1}X^TY

其他分类方法

最近邻法

  • 计算训练样本与测试样本的距离
  • 选取最近邻者的类别作为决策结果

K-近邻法(KNN)

  • 在所 NN 个样本中找到与测试样 kk 个最近邻的样本
  • 选取类别频率最高者作为决策

决策树

内部结点——一个特征

叶子结点——分类

特征值选取

选信息增益最大的属性 g(D,A)=H(D)H(DA)g(D,A) = H(D) - H(D|A)

决策树生成——使用训练样本

  • ID3算法
    • 计算数据集分类前的熵 H(D)=k=1KCkDlog2CkDH(D) = -\sum\limits_{k=1}^K\dfrac{|C_k|}{|D|}\log_2{\dfrac{|C_k|}{|D|}}
    • 计算特征A对数据集D的条件熵(子类熵的加权和 H(DA)=i=1nDiDH(Di)H(D|A)=\sum\limits_{i=1}^n\dfrac{|D_i|}{|D|}H(D_i)
    • 计算信息增益 g(D,A)=H(D)H(DA)g(D,A) = H(D) - H(D|A)
    • 选信息增益最大的属性作为结点
  • C4.5算法
    • 求特征A的熵 HA(D)=i=1nDiDlog2DiDH_A(D) = -\sum\limits_{i=1}^n\dfrac{|D_i|}{|D|}\log_2{\dfrac{|D_i|}{|D|}}
    • 求信息增益率 gR(D,A)=g(D,A)HA(D)g_R(D,A) = \dfrac{g(D,A)}{H_A(D)}
  • CART算法
    • 尼基系数 Gini(D)=1(CkD)2Gini(D) = 1 - \sum(\dfrac{|C_k|}{|D|})^2
    • 选基尼指数最小的特征 Gini(D,A)=DiDGini(Di)Gini(D,A) = \sum\dfrac{|D_i|}{|D|} Gini(D_i)

决策树剪枝 ——使用测试样本

  • 预剪枝
    • 容易欠拟合
    • 从根节点开始
  • 后剪枝
    • 从叶子节点开始
  • 判断剪枝后是否正确率是否提升,来决定是否删除该节点

随机森林——构建多个决策树

原理:将样本输入到每个决策树中进行分类,选所有决策中较多决策的结果。

每棵决策树随机选择一个子集进行训练。

特征选择

判据:

  • 基于类内类间距离的可分性判据
  • 基于概率可分的可分性判据
  • 基于熵的可分性判据

分支定界法

  • 从包含所有候选特征开始,自顶向上,逐步去掉不被选中的特征。
  • 要求:判据对特征具有单调性,某节点函数值小于B直接回溯

特征提取

基于类别可分性判据的特征提取

  • 求最优的变换矩阵 ww^* ,使可分性判据 J(x)J(x) 最大
    • 求均值 mi=1Nxm_i = \dfrac{1}{N}\sum x
    • 类内离散度矩阵 Si=i1CPik=1ni(ximi)(ximi)TS_i = \sum\limits_{i-1}^C P_i\sum\limits_{k=1}^{n_i} (x^i -m_i)(x^i - m_i)^T
      类间离散度矩阵 Sb=i1C(m1m)(m1m)TS_b = \sum\limits_{i-1}^C(m_1 -m)(m_1 - m)^T
    • A=Sw1SbA = S_w^{-1}S_b
    • 求特征值并按从大到小排序
    • AA 的特征向量
    • 选取 dd 个作为新的特征 W=[x1,x2,,xd]W=[x_1,x_2,\cdots,x_d]
  • 主成分分析法
  • K-L变换(主成分分析的监督实现)
    • 求产生矩阵
      • 类别未知

        φ=E[xxT]\varphi=E\left[x x^T\right]

        φ=E[(xμ)(xμ)T]\varphi=E\left[(x-\mu)(x-\mu)^T\right] ——PCA方法

      • 类别已知

        φ=Sw=i=1CPiE[(xiμi)(xiμi)T]\varphi =S_w = \sum\limits_{i=1}^CP_iE\left[(x^i-\mu_i)(x^i-\mu_i)^T\right]

      • 后续同第一点

非监督——无标签样本分类

  • 动态聚类算法——c均值算法
  • 分级聚类
    • 初始化每个样本形成一个类
    • 计算两类之间的距离——定义类间距离(最近、最远、均值)
    • 选择最小距离的两类进行合并

多分类问题

  • 多对多
    • 对每类样本编码,并比较测试样本与其的距离,选取距离最小者的类别为分类结果
  • 一对一
    • 训练多个二分类器投票决定
  • 一对多
    • 预测是否为 CiC_i

HMM(隐马尔可夫)模型

三要素:

  • 初始状态分布 π\pi
  • 状态转移矩阵 AA
  • 观测概率矩阵 BB

两个基本假设

  • 齐次马尔可夫性假设
    系统在任意时刻 tt的 隐藏状态 qtq_t 只依赖于其前一时刻的隐藏状态qt1q_{t−1},与更早的状态及观测值无关。
  • 观测独立性假设
    任意时刻t的观测值OtO_t仅依赖于该时刻的隐藏状态qtq_t,与其他时刻的隐藏状态或观测值无关。

三个基本问题

  • 计算问题:求观测 P(Oλ)P(O|\lambda)
  • 学习问题:只有观察数据求模型
  • 解码问题:求状态 P(IO,λ)P(I|O,\lambda)