k近邻–>决策树–>最大熵–>逻辑斯蒂回归–>提升方法
k近邻法(K-NN)是一种基本的用于分类与回归的方法。
其输入为:实例的特征向量,对应特征空间中的点
输出为:实例的类别,可以取多类。
k近邻假设给定一个训练数据集,其中的类别已经确定。分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。
y
=
arg
max
c
j
∑
x
i
∈
N
k
(
x
)
I
(
y
i
=
c
j
)
,
i
=
1
,
2
,
.
.
.
,
N
;
j
=
1
,
2
,
.
.
.
,
K
                  
(
1
)
y = \arg \max_{c_j} \sum_{x_i \in N_k(x) }I(y_i=c_j), i=1,2,...,N;j=1,2,...,K \;\;\;\;\;\;\;\;\;(1)
y=argcjmaxxi∈Nk(x)∑I(yi=cj),i=1,2,...,N;j=1,2,...,K(1)
其中, I 为指示函数, 当
y
i
=
c
j
y_i=c_j
yi=cj 时 I 为1,否则为0.
k近邻模型的三要素:
-
距离度量 :
L p ( x i , x j ) = ( ∑ i = 1 n ∣ x i ( l ) − x j ( l ) ∣ p ) 1 p                    ( 2 ) L_p(x_i,x_j)=(\sum_{i=1}^{n}|x_i^{(l)}-x_j^{(l)}|^{p})^{\frac{1}{p}}\;\;\;\;\;\;\;\;\; (2) Lp(xi,xj)=(i=1∑n∣xi(l)−xj(l)∣p)p1(2)
其中p≥1,当p=2时,为欧氏距离;当p=1时,为曼哈顿距离;当p=∞时,是各个坐标距离的最大值,切比雪夫距离。 -
k值选择
较0小的k值导致“学习”时的近似误差会减小,学习的估计误差会增大,预测结果对近邻的实例点非常敏感。带来模型复杂度的增加。
较大的k值带来相反的结果,一般k值选取一个较小的数值,然后采用交叉验证法来选取最优的k值。 -
分类决策规则
通常为多数表决,等价于经验风险最小化。
kd树的最近邻搜索 |
---|
输入:已构造的kd树;目标点 |
输出:x的最近邻 |
(1)在kd树中找出包含目标点 x 的叶节点:从根节点出发,递归的向下访问kd树。若目标点 x 当前维的坐标小于切分点的坐标,则移动到左子节点,否则移动到右子节点 ,直到子节点为叶节点为止 |
(2)以此节点为“当前最近点” |
(3)递归的向上回退,在每个节点进行以下操作: |
(a)如果该节点保存的实例点比当前最近点距离目标点更近,则以该实例点为“当前最近点” |
(b)当前最近点一定存在于该节点一个子节点对应的区域,检查该子节点的父节点的另一个子节点对应的区域是否有更近的点。具体地,检查另一子节点对应的区域是否与以目标点为球心,以目标点与“当前最近点”间的距离为半径的超球体相交。如果相交,可能在另一子节点对应区域内存在距目标点更近的点,移动到另一个子节点。截止,递归的进行最近邻搜索;如果不相交,向上回退。 |
(4)当回退到根节点时,搜索结束。最后的“当前最近点”即为 x 的最近邻点 |
决策树(DT)是一种基本的分类与回归方法。
决策树模型呈树形结构,在分类问题中,表示基于特征对视力进行分类的过程。可以认为是 if then 规则的集合,也可以认为是定义在特征空间与累空间上的条件概率分布。
其主要优点是模型具有可读性,分类速度快。
- 学习时利用训练数据,根据损失函数最小化的原则建立决策树模型。
- 预测时,对新的数据,利用决策树模型进行分类。
- 决策树学习的三个步骤:特征选择、决策树的生成、决策树的剪枝
- 决策树各叶节点上的条件概率往往偏向某一个类,即属于某一类的概率较大。
- 决策树分类时往往将该节点的实例强行划分到条件概率大的那一类。
决策树学习的损失函数通常为正则化的极大似然函数。学习策略是以损失函数为目标函数的最小化。
引入信息增益:表示得知特征 X 的信息而使得类 Y 的信息的不确定性减少的程度
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
                  
(
3
)
g(D,A) = H(D)-H(D|A)\;\;\;\;\;\;\;\; \; (3)
g(D,A)=H(D)−H(D∣A)(3)
信息增益比:
g
R
(
D
,
A
)
=
g
(
D
,
A
)
H
A
(
D
)
                  
(
4
)
g_R(D,A) = \frac{g(D,A)}{H_A(D)}\;\;\;\;\;\;\;\; \; (4)
gR(D,A)=HA(D)g(D,A)(4)
其中,
H
A
(
D
)
=
−
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
log
2
∣
D
i
∣
∣
D
∣
H_A(D)= -\sum_{i=1}^{n}\frac{|D_i|}{|D|}\log_2\frac{|D_i|}{|D|}
HA(D)=−∑i=1n∣D∣∣Di∣log2∣D∣∣Di∣,n 是特征 A 取值的个数
决策树的剪枝往往通过极小化决策树整体的损失函数或代价函数来实现。等价于正则化的极大似然估计
其损失函数可以定义为
C
α
(
T
)
=
∑
t
=
1
∣
T
∣
N
t
H
t
(
T
)
+
α
∣
T
∣
                  
(
5
)
C_\alpha (T)=\sum_{t=1}^{|T|}N_t H_t(T)+\alpha |T|\;\;\;\;\;\;\;\; \; (5)
Cα(T)=t=1∑∣T∣NtHt(T)+α∣T∣(5),其中经验熵为:
H
t
(
T
)
=
−
∑
k
N
t
k
N
t
log
N
t
k
N
t
                  
(
6
)
H_t(T) = -\sum_{k} \frac{N_{tk}}{N_t}\log \frac{N_{tk}}{N_t}\;\;\;\;\;\;\;\; \; (6)
Ht(T)=−k∑NtNtklogNtNtk(6)
在损失函数中,将 (5) 的右端的第一项记为:
C
(
T
)
=
∑
t
=
1
∣
T
∣
N
t
H
t
(
T
)
=
−
∑
t
∑
k
N
t
k
log
N
t
k
N
t
C(T)=\sum_{t=1}^{|T|}N_t H_t(T)=-\sum_t\sum_{k} N_{tk}\log \frac{N_{tk}}{N_t}
C(T)=t=1∑∣T∣NtHt(T)=−t∑k∑NtklogNtNtk 则有
C
α
(
T
)
=
C
(
T
)
+
α
∣
T
∣
C_\alpha(T)=C(T)+\alpha|T|
Cα(T)=C(T)+α∣T∣
C|T|表示模型对训练数据的预测误差,即拟合度,|T|表示叶子节点数目,模型复杂度
CART算法(classification and regression tree):
其特征选择规则为:
- 对回归树用平方误差最小准则;
f
(
x
)
=
∑
m
=
1
M
c
m
I
(
x
∈
R
m
)
f(x) = \sum_{m=1}^{M}c_mI(x \in R_m)
f(x)=m=1∑McmI(x∈Rm)
min
∑
x
i
∈
R
m
(
y
i
−
f
(
x
i
)
)
2
\min \sum_{x_i\in R_m}(y_i-f(x_i))^2
minxi∈Rm∑(yi−f(xi))2
即:
min
j
,
s
[
min
c
1
∑
x
i
∈
R
1
(
j
,
s
)
(
y
i
−
c
1
)
2
+
min
c
2
∑
x
i
∈
R
2
(
j
,
s
)
(
y
i
−
c
2
)
2
]
\min_{j,s}\left[ \min_{c_1} \sum_{x_i \in R_1(j,s)}(y_i-c_1)^2+ \min_{c_2} \sum_{x_i \in R_2(j,s)}(y_i-c_2)^2\right]
j,smin⎣⎡c1minxi∈R1(j,s)∑(yi−c1)2+c2minxi∈R2(j,s)∑(yi−c2)2⎦⎤
其中,
R
1
R_1
R1,
R
2
R_2
R2表示第 j 个变量 x(j) 和它的取值s作为切分变量和切分点得到的两个区域
- 对分类树用基尼指数(Gini index)最小化准则。
G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(p) = \sum_{k=1}^{K}p_k(1-p_k) = 1-\sum_{k=1}^{K}p_k^2 Gini(p)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2
G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D) = 1-\sum_{k=1}^{K}\left(\frac{|C_k|}{|D|}\right)^2 Gini(D)=1−k=1∑K(∣D∣∣Ck∣)2
G i n i ( D , A ) = ∣ D 1 ∣ ∣ D ∣ G i n i ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ G i n i ( D 2 ) Gini(D,A) =\frac{|D_1|}{|D|}Gini(D_1)+\frac{|D_2|}{|D|}Gini(D_2) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
基尼指数Gini(D)表示集合D的不确定性,Gini(D,A)表示经A=a分割后集合D的不确定性,与熵类似。选择基尼指数最小的特征作为分类特征
CART剪枝
首先从生成算法生成的决策树 T 0 T_0 T0 低端开始不断剪枝,直到 T 0 T_0 T0 的根节点,形成一个子树序列 { T 0 , T 1 , . . . , T n } \left\{T_0,T_1,...,T_n\right\} {T0,T1,...,Tn}; 然后通过交叉验证法在独立的验证数据集上对子树序列进行测试,从中选择最优子树。
CART剪枝算法 |
---|
输入:CART算法生成的决策树 T 0 T_0 T0 |
输出:最优决策树 T α T_\alpha Tα |
(1) 设 k = 0 ,      T = T 0 k=0,\;\;T=T_0 k=0,T=T0 |
(2) 设 α = + ∞ \alpha=+\infty α=+∞ |
(3) 自下而上地对各内部节点 t t t 计算 C ( T t ) C(T_t) C(Tt), ∣ T t ∣ \vert T_t \vert ∣Tt∣ 以及 g ( t ) = C ( t ) − C ( T t ) ∣ T t ∣ − 1 g(t) = \frac{C(t)-C(T_t)}{\vert T_t\vert-1} g(t)=∣Tt∣−1C(t)−C(Tt) α = min ( α , g ( t ) ) \alpha = \min(\alpha,g(t)) α=min(α,g(t))这里, T t T_t Tt 表示以 t t t 为根节点的子树, C ( T t ) C(T_t) C(Tt) 是对训练数据的预测误差, ∣ T t ∣ \vert T_t \vert ∣Tt∣是 T t T_t Tt 的叶节点数目 |
(4) 对 g ( t ) = α g(t) = \alpha g(t)=α 的内部节点 t t t 进行剪枝,并对叶节点 t t t 以多数表决法确定其类,得到树 T T T |
(5) 设 k = k + 1 , α k = α , T k = T k = k+1,\alpha_k=\alpha,T_k=T k=k+1,αk=α,Tk=T |
(6) 如果 T k T_k Tk 不是由根节点及两个叶节点构成的树,则回到步骤(3);否则,令 T k = T n T_k = T_n Tk=Tn |
(7) 采用交叉验证法在子树序列 T 0 , T 1 , . . . , T n T_0, T_1,...,T_n T0,T1,...,Tn中选取最优子树 T α T_\alpha Tα |
由于决策树的生成过程通过信息增益的方式得到相应的分类特征的划分,因此可以从信息增益进而演化为最大熵模型
最大熵模型
最大熵是该流程模型学习的一个准则,将其推广到分类问题就得到最大熵模型,最大熵模型是一种对数线性模型。最大熵原理认为学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选择熵最大的模型。
用特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)描述输入 x 和输出 y 之间的某一个事实。其定义为:
f
(
x
,
y
)
=
{
1
,
x 与 y 满足某一事实
0
,
否则
f(x,y)= \begin{cases} 1, & \text{x 与 y 满足某一事实} \\ 0, & \text{否则} \end{cases}
f(x,y)={1,0,x 与 y 满足某一事实否则
最大熵模型:
P
w
(
y
∣
x
)
=
1
Z
w
(
x
)
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
Z
w
(
x
)
=
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
P_w(y|x) = \frac{1}{Z_w(x)}\exp\left(\sum_{i=1}^{n}w_i f_i(x,y) \right)\\ Z_w(x)= \sum_{y}\exp\left(\sum_{i=1}^{n}w_i f_i(x,y) \right)
Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y))Zw(x)=y∑exp(i=1∑nwifi(x,y))
相当于求解约束最优化问题:
min
      
−
H
(
P
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
log
P
(
y
∣
x
)
s
.
t
.
      
P
(
f
i
)
−
P
~
(
f
i
)
=
0
,
      
i
=
1
,
2
,
.
.
.
,
n
∑
y
P
(
y
∣
x
)
=
1
\min \;\;\;-H(P) = \sum_{x,y}\tilde {P}(x) P(y|x)\log P(y|x)\\ \\ s.t.\;\;\;P(f_i)-\tilde P(f_i)=0,\;\;\;i=1,2,...,n\\ \sum_yP(y|x) =1
min−H(P)=x,y∑P~(x)P(y∣x)logP(y∣x)s.t.P(fi)−P~(fi)=0,i=1,2,...,ny∑P(y∣x)=1
最大熵模型的学习算法包括改进的迭代尺度法,梯度下降法,牛顿法或拟牛顿法。
对于学习问题是对数似然函数为目标函数的最优化问题可以推出逻辑斯蒂回归模型
逻辑斯蒂回归模型
逻辑斯蒂回归是指满足逻辑斯蒂分布的连续随机变量的分类模型
F
(
x
)
=
P
(
X
⩽
x
)
=
1
1
+
e
−
(
x
−
μ
)
/
γ
f
(
x
)
=
F
′
(
x
)
=
e
−
(
x
−
μ
)
/
γ
γ
(
1
+
e
−
(
x
−
μ
)
/
γ
)
2
F(x) = P(X \leqslant x)=\frac{1}{1+e^{-(x-\mu)/\gamma}}\\ f(x) = F'(x) =\frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2}
F(x)=P(X⩽x)=1+e−(x−μ)/γ1f(x)=F′(x)=γ(1+e−(x−μ)/γ)2e−(x−μ)/γ
其中
μ
\mu
μ为位置参数
γ
>
0
\gamma >0
γ>0为形状参数,分布函数图形是一条S形曲线,该曲线以点
(
μ
,
1
2
)
\left(\mu, \frac{1}{2}\right)
(μ,21)为中心对称。
一个事件发生的几率为该事件发生的概率与该事件不发生的概率的比值。如果事件发生的概率为 p ,那么该事件的几率为
p
1
−
p
\frac{p}{1-p}
1−pp,其对数几率或者logit函数为:
l
o
g
i
t
(
p
)
=
log
p
1
−
p
logit(p)=\log\frac{p}{1-p}
logit(p)=log1−pp
对于逻辑斯蒂回归,
log
P
(
Y
=
1
∣
x
)
1
−
P
(
Y
=
1
∣
x
)
=
w
⋅
x
\log \frac{P(Y=1|x)}{1-P(Y=1|x)}=w \cdot x
log1−P(Y=1∣x)P(Y=1∣x)=w⋅x
提升方法与提升树
提升方法用于多分类和回归。从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器。大多数的提升方法都是改变训练数据的概率分布(训练数据的权值分布),针对不同的训练数据分布调用学习算法学习一系列弱分类器。
Adaboost算法
是一种二类分类算法
训练误差界:
1
N
∑
i
=
1
N
I
(
G
(
x
i
)
≠
y
i
)
⩽
1
N
∑
i
exp
(
−
y
i
f
(
x
i
)
)
=
∏
m
Z
m
=
∏
m
=
1
M
[
2
e
m
(
1
−
e
m
)
]
=
∏
m
=
1
M
(
1
−
4
γ
m
2
)
⩽
exp
(
−
2
∑
m
=
1
M
γ
m
2
)
\frac{1}{N} \sum_{i=1}^N I(G(x_i) \neq y_i) \leqslant \frac{1}{N} \sum_{i}\exp(-y_if(x_i))=\prod_{m}Z_m=\prod_{m=1}^M[2\sqrt{e_m(1-e_m)}] = \prod_{m=1}^M\sqrt{(1-4\gamma_m^2)}\leqslant\exp\left(-2 \sum_{m=1}^M\gamma_m^2\right)
N1i=1∑NI(G(xi)̸=yi)⩽N1i∑exp(−yif(xi))=m∏Zm=m=1∏M[2em(1−em)]=m=1∏M(1−4γm2)⩽exp(−2m=1∑Mγm2)
此表明AdaBoost的训练误差是以指数速率下降的。
可以认为AdaBoost算法是模型为加法模型、损失函数为指数函数、学习算法为前向分步算法时的二类分类学习算法。
提升树模型
提升树是以分类树或回归树为基本分类器的提升方法。统计学习中性能最好的算法之一。
对分类问题决策树是二叉分类树,对回归问题决策树是二叉回归树。由一个根节点直接连接两个叶节点的简单决策树称为决策树桩。(
x
<
v
  
o
r
  
x
>
v
x<v\; or\; x>v
x<vorx>v)
提升树模型可以看作是决策树的加法模型:
f
M
(
x
)
=
∑
m
=
1
M
T
(
x
;
Θ
m
)
f_M(x)=\sum_{m=1}^{M}T(x;\Theta_m)
fM(x)=m=1∑MT(x;Θm)
其中
T
(
x
;
Θ
m
)
T(x;\Theta_m)
T(x;Θm)表示决策树;
Θ
m
\Theta_m
Θm为决策树的参数;M 为树的个数。
模型 | 学习策略 | 算法 |
---|---|---|
支持向量机 | 极小化正则化合页损失,软间隔最大化 | 序列最小最优化(SMO) |
AdaBoost | 极小化加法模型的指数损失 | 前向分步加法 |
逻辑斯蒂回归 | 极大对数似然函数,正则化的极大似然估计 | (IIS, 梯度下降、牛顿法或拟牛顿法) |
参考文献
[1] 李航. 统计学习方法[M],清华大学出版社.