← 上一篇 下一篇 →

传统的监督学习方法

0. 监督学习的分类和任务

李航书将监督学习分为生成方法和判别方法。两者的定义如下:

2. k近邻

2.1 KNN的原理

k-neighbors既可以做分类也可以做回归,李航书只说了分类,原理一样。
k近邻给定一个训练数据集合$T = {(x_1, y_1), (x_2, y_2), …, (x_N, y_N)}$,其中$x_i \in X \subseteq R^n$为实例的特征向量,$y_i \in Y$为实例的类别,$i=1,2,…,N$。对于一个新的输入实例$x$,算法会搜索训练集中与$x$最近的k个实例,然后输出这k个实例中出现最多的类别作为$x$的类别。KNN不具有显式学习过程。

3. 朴素贝叶斯

3.1 基本方法&&模型假设

基于特征条件独立假设,即对已知类别,假设所有特征相互独立。朴素贝叶斯分类器是一种生成模型,通过训练数据学习联合概率分布$P(X,Y)$,然后求出条件概率分布$P(Y|X)$作为预测的模型。
特征条件独立:$P(X=x|Y=c_k) = P(X_1 = x_1, X_2 = x_2, …,X_n= x_n|Y=c_k) = \prod_{i=1}^nP(X_i = x_i|Y)$。好处:参数规模大大减小,降低了学习难度(和准确度)。
朴素贝叶斯模型:对于给定的$x$,计算模型输出$Y$属于各个类别$c_k$的概率,将最大可能性的作为结果输出。$P(Y=c_k) = \frac{\sum_{i=1}^N I(y_i = c_k)}{N}$,$P(X=x|Y=c_k) = \prod_{i=1}^nP(X_i = x_i|Y=c_k)$,$P(Y=c_k|X=x) = \frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)}$

MLE估计有时候会出概率为0,所以可以贝叶斯估计带平滑系数$\lambda$,当$\lambda=1$时,称为拉普拉斯平滑。

4. 决策树

决策树通过消除训练样本的信息不确定来进行分类/回归。既可以看成是if-then规则的集合,也可以看成是定义在特征空间与类空间上的条件概率分布。决策树的本质是从训练集$T$中归纳分类规则,由于同一个T对应多个决策树,需要找到泛化能力最好的,因此损失函数一般有正则项,为了防止过拟合,需要剪枝。
决策树要素:特征选择、树的生成、树的剪枝

4.1 特征选择,ID3,C4.5,CART

特征选择决定节点的划分,ID3,C4.5,CART是三种常见的决策树生成算法,采用不同的特征选择准则A进行划分。
熵的定义:$H(D) = -\sum_{k=1}^K\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|}$,其中$C_k$是D中属于第k类的样本子集,K是类别数。观察发现H与具体的D取值无关,和分布概率p有关,所以也可以改写为$H(p) = -\sum_{k=1}^Kp_klog_2p_k$。单位是bit,0log0=1log1=0。H(p)越大,随机变量不确定性越大,样本D越混乱。
条件熵的定义:$H(D|A) = \sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i)$,其中$H(D_i) = -\sum_{k=1}^K\frac{|C_{ik}|}{|D_i|}log_2\frac{|C_{ik}|}{|D_i|}$,$C_{ik}$是$D_i$中属于第k类的样本子集,K是类别数。条件熵H(D|A)表示在特征A给定的条件下,对数据集D进行划分的经验熵。

  1. ID3:信息增益最大化,定义为:$g(D, A) = H(D) - H(D A)$;得知特征A的信息后,数据集D的不确定性减少的程度;问题是信息增益偏向于选择取值较多的特征(取值多的更混乱,信息增益大),因此引入信息增益比。
  2. C4.5:信息增益比最大化,定义为:$g_R(D, A) = \frac{g(D, A)}{H_A(D)}$,其中$H_A(D) = -\sum_{i=1}^n\frac{ D_i }{ D }log_2\frac{ D_i }{ D }$,$n$是特征A的取值数。为了能解决回归问题,CART树引入了基尼指数。
  3. CART分类:基尼指数最小化,定义为:$Gini(D) = \sum_{k=1}^K\sum_{k’\neq k}p_kp_{k’} = 1 - \sum_{k=1}^Kp_k^2$,$Gini(D A) = \sum_{i=1}^n\frac{ D_i }{ D }Gini(D_i)$,$Gini(D A)$和熵的一半曲线接近,都可以衡量有序程度。
  4. CART回归:最小二乘回归树,定义为:$J(D) = \sum_{i=1}^N(y_i - c)^2$,$J(D|A) = \sum_{i=1}^n\frac{|D_i|}{|D|}J(D_i)$,$c = \frac{1}{N}\sum_{i=1}^Ny_i$,即用特征A划分后,每个叶节点的值为该节点所有样本的均值。

    4.2 建树和剪枝

    建立决策树的方法核心区别就是特征A选择,建树流程如下: 输入训练样本集$D$,特征集$A$,阈值$\epsilon$
    STEP1:递归出口,如果$D$中样本全属于同一类别$C_k$,将$C_k$作为该节点类别;如果A为空,将D中样本最多的类$C_k$作为节点类别;返回决策树T。
    STEP2:递归流程,不满足递归出口,选择最优特征A,对A的每一个可能取值$a_i$,将D划分为若干非空的$D_1,D_2…,D_i$,生成节点,并递归地对子集生成节点。
    STEP3:若A的信息增益小于阈值$\epsilon$,剪枝防止过深,将该节点标记为叶节点,类别为D中样本最多的类别;返回T。
    剪枝:决策树生成后,自底向上对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来泛化性能提升,则将该子树替换为叶节点。减少深度。
    具体方法:
    对于一颗完全生长的决策树$T_0$,任意非叶节点t,计算剪枝前后的损失函数$C_\alpha(t) = C(t) + \alpha|T_t|$,其中$C(t)$是节点t训练的损失函数,如信息增益之类,$|T_t|$是t的叶节点数,$\alpha$是参数。

5. Logistic回归

5.1 二项逻辑回归

  1. 逻辑分布:随机变量X服从逻辑分布, $F(x) = P(X<=x) = \frac{1}{1+e^{-(x-\mu)/\sigma}}$ ,其中$\mu$是位置参数,$\sigma$是尺度参数。逻辑分布的密度函数是$P(X=x) = \frac{e^{-(x-\mu)/\sigma}}{\sigma(1+e^{-(x-\mu)/\sigma})^2}$
  2. 逻辑分布的分布函数是Sigmod曲线,,$F(x)$以点$(\mu, 0.5)$为中心对称,$\sigma$越小,曲线越陡峭,越接近符号函数。
  3. 二项逻辑回归:逻辑回归是一种广义线性回归模型,适用于二分类问题。逻辑回归模型的假设是:给定特征X,输出Y=1的概率是X的线性组合的sigmoid函数,即$P(Y=1 X) = \frac{1}{1+e^{-(w \cdot x + b)}}$,$P(Y=0 X) = 1 - P(Y=1 X)$。 逻辑回归将比较两个概率的大小,将$x$划分到概率更大的一类中\或者说,模型输出的是正类的概率。
  4. 几率odds:一件事情发生的概率p和不发生的概率1-p的比值,$odds = \frac{p}{1-p}$,对数几率logit:$logit(p) = log\frac{p}{1-p}$,对于逻辑回归模型,$log\frac{P(Y=1 X)}{1-P(Y=1 X)} = w \cdot x + b$。
  5. 逻辑回归的参数估计:最大化似然函数,即最小化交叉熵损失函数。证明过程见李航P93

    5.2 多项逻辑回归

    在二项回归模型基础上,多项逻辑回归是一种广义线性回归模型,适用于多分类问题。多项逻辑回归模型的假设是:给定特征X,输出Y=c的概率是X的线性组合的softmax函数,即$P(Y=c|X) = \frac{e^{w_c \cdot x + b_c}}{\sum_{c=1}^Ce^{w_c \cdot x + b_c}}$,$c=1,2,…,C$。多项逻辑回归将比较C个概率的大小,将$x$划分到概率最大的一类中。
    对于K个类别的多项逻辑回归,$Y=c$的概率是$P(Y=c|X) = \frac{e^{w_c \cdot x + b_c}}{\sum_{c=1}^Ce^{w_c \cdot x + b_c}}$,$c=1,2,…,C$。