2. 感知机 3. k近邻法 4. 朴素贝叶斯
2. 感知机
1.感知机是根据输入实例的特征向量 x x x对其进行二类分类的线性分类模型:
输入空间(特征空间)是 X ⊆ R n X\subseteq R^n X⊆Rn,输出空间是 y ∈ { + 1 , − 1 } y\in \{+1,-1\} y∈{+1,−1}。
输入 x ∈ X x \in X x∈X 表示实例的特征向量,对应于输入空间(特征空间)的点。
输出
y
∈
Y
y \in Y
y∈Y表示实例的类别,由输入空间到输出空间的如下函数:
f
(
x
)
=
sign
(
w
⋅
x
+
b
)
f(x)=\operatorname{sign}(w \cdot x+b)
f(x)=sign(w⋅x+b)
感知机模型对应于输入空间(特征空间)中的分离超平面 w ⋅ x + b = 0 w \cdot x+b=0 w⋅x+b=0。
其中 w w w是超平面的法向量, b b b是超平面的截距。
数据集的线性可分性:
对所有 y i = + 1 y_i=+1 yi=+1的实例 i i i,有 w ⋅ x i + b > 0 w \cdot x_i + b > 0 w⋅xi+b>0。
对所有 y i = − 1 y_i=-1 yi=−1的实例 i i i,有 w ⋅ x i + b < 0 w \cdot x_i+b < 0 w⋅xi+b<0。
2.感知机学习的策略是极小化损失函数:
min
w
,
b
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
\min _{w, b} L(w, b)=-\sum_{x_{i} \in M} y_{i}\left(w \cdot x_{i}+b\right)
w,bminL(w,b)=−xi∈M∑yi(w⋅xi+b)
损失函数对应于误分类点到分离超平面的总距离。
损失函数是非负的,如果没有误分类点,损失函数值是0。
3.感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法,有原始形式和对偶形式。算法简单且易于实现。原始形式中,首先任意选取一个超平面,然后用梯度下降法不断极小化目标函数。在这个过程中一次随机选取一个误分类点使其梯度下降。
原始形式:
输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\} T={(x1,y1),(x2,y2),…,(xN,yN)},其中 x i ∈ X = R n x_i \in X = R^n xi∈X=Rn, y i ∈ Y = { − 1 , + 1 } y_i \in Y = \{-1,+1\} yi∈Y={−1,+1}, i = 1 , 2 , … , N i = 1,2,\dots,N i=1,2,…,N,学习率 η ( 0 < η ≤ 1 ) \eta(0 < \eta \le 1) η(0<η≤1)
输出: w , b w,b w,b。 感知机模型 f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w \cdot x + b) f(x)=sign(w⋅x+b)
① 选取初值 w 0 , b 0 w_0,b_0 w0,b0
②在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)
③如果
y
i
(
w
⋅
x
i
+
b
)
≤
0
y_i(w \cdot x_i+b) \le 0
yi(w⋅xi+b)≤0
w
→
w
+
η
y
i
x
i
b
→
b
+
η
y
i
w \to w +\eta y_ix_i \\ b \to b + \eta y_i
w→w+ηyixib→b+ηyi
④转至②,直至训练集中没有误分类点
4.当训练数据集线性可分时,感知机学习算法是收敛的。感知机算法在训练数据集上的误分类次数
k
k
k满足不等式:
k
⩽
(
R
γ
)
2
k \leqslant\left(\frac{R}{\gamma}\right)^{2}
k⩽(γR)2
当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。
3. k近邻法
1. k k k近邻法是基本且简单的分类与回归方法。 k k k近邻法的基本做法是:对给定的训练实例点和输入实例点,首先确定输入实例点的 k k k个最近邻训练实例点,然后利用这 k k k个训练实例点的类的多数来预测输入实例点的类。
2. k k k近邻模型对应于基于训练数据集对特征空间的一个划分。 k k k近邻法中,当训练集、距离度量、 k k k值及分类决策规则确定后,其结果唯一确定。
3. k k k近邻法三要素:距离度量、 k k k值的选择和分类决策规则。常用的距离度量是欧氏距离及更一般的pL距离。 k k k值小时, k k k近邻模型更复杂; k k k值大时, k k k近邻模型更简单。 k k k值的选择反映了对近似误差与估计误差之间的权衡,通常由交叉验证选择最优的 k k k。
常用的分类决策规则是多数表决,对应于经验风险最小化。
4. k k k近邻法的实现需要考虑如何快速搜索k个最近邻点。kd树是一种便于对k维空间中的数据进行快速检索的数据结构。kd树是二叉树,表示对 k k k维空间的一个划分,其每个结点对应于 k k k维空间划分中的一个超矩形区域。利用kd树可以省去对大部分数据点的搜索, 从而减少搜索的计算量。
距离度量
设特征空间 x x x是 n n n维实数向量空间 , x i , x j ∈ X x_{i}, x_{j} \in \mathcal{X} xi,xj∈X, x i = ( x i ( 1 ) , x i ( 2 ) , ⋯ , x i ( n ) ) T x_{i}=\left(x_{i}^{(1)}, x_{i}^{(2)}, \cdots, x_{i}^{(n)}\right)^{\mathrm{T}} xi=(xi(1),xi(2),⋯,xi(n))T, x j = ( x j ( 1 ) , x j ( 2 ) , ⋯ , x j ( n ) ) T x_{j}=\left(x_{j}^{(1)}, x_{j}^{(2)}, \cdots, x_{j}^{(n)}\right)^{\mathrm{T}} xj=(xj(1),xj(2),⋯,xj(n))T,则: x i x_i xi, x j x_j xj的 L p L_p Lp距离定义为:
L p ( x i , x j ) = ( ∑ i = 1 n ∣ x i ( i ) − x j ( l ) ∣ p ) 1 p L_{p}\left(x_{i}, x_{j}\right)=\left(\sum_{i=1}^{n}\left|x_{i}^{(i)}-x_{j}^{(l)}\right|^{p}\right)^{\frac{1}{p}} Lp(xi,xj)=(∑i=1n∣∣∣xi(i)−xj(l)∣∣∣p)p1
- p = 1 p= 1 p=1 曼哈顿距离
- p = 2 p= 2 p=2 欧氏距离
- p = ∞ p= \infty p=∞ 切比雪夫距离
kd树
kd树是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。
kd树是二叉树,表示对 k k k维空间的一个划分(partition)。构造kd树相当于不断地用垂直于坐标轴的超平面将 k k k维空间切分,构成一系列的k维超矩形区域。kd树的每个结点对应于一个 k k k维超矩形区域。
构造kd树的方法如下:
构造根结点,使根结点对应于 k k k维空间中包含所有实例点的超矩形区域;通过下面的递归方法,不断地对 k k k维空间进行切分,生成子结点。在超矩形区域(结点)上选择一个坐标轴和在此坐标轴上的一个切分点,确定一个超平面,这个超平面通过选定的切分点并垂直于选定的坐标轴,将当前超矩形区域切分为左右两个子区域(子结点);这时,实例被分到两个子区域。这个过程直到子区域内没有实例时终止(终止时的结点为叶结点)。在此过程中,将实例保存在相应的结点上。
通常,依次选择坐标轴对空间切分,选择训练实例点在选定坐标轴上的中位数(median)为切分点,这样得到的kd树是平衡的。注意,平衡的kd树搜索时的效率未必是最优的。
构造平衡kd树
输入: k k k维空间数据集 T = { x 1 , x 2 , … , x N } T=\{x_1,x_2,…,x_N\} T={x1,x2,…,xN},其中 x i = ( x i ( 1 ) , x i ( 2 ) , ⋯ , x i ( k ) ) T x_{i}=\left(x_{i}^{(1)}, x_{i}^{(2)}, \cdots, x_{i}^{(k)}\right)^{\mathrm{T}} xi=(xi(1),xi(2),⋯,xi(k))T , i = 1 , 2 , … , N i=1,2,…,N i=1,2,…,N;
输出:kd树。
(1)开始:构造根结点,根结点对应于包含 T T T的 k k k维空间的超矩形区域。
选择 x ( 1 ) x^{(1)} x(1)为坐标轴,以T中所有实例的 x ( 1 ) x^{(1)} x(1)坐标的中位数为切分点,将根结点对应的超矩形区域切分为两个子区域。切分由通过切分点并与坐标轴 x ( 1 ) x^{(1)} x(1)垂直的超平面实现。
由根结点生成深度为1的左、右子结点:左子结点对应坐标 x ( 1 ) x^{(1)} x(1)小于切分点的子区域, 右子结点对应于坐标 x ( 1 ) x^{(1)} x(1)大于切分点的子区域。
将落在切分超平面上的实例点保存在根结点。
(2)重复:对深度为 j j j的结点,选择 x ( 1 ) x^{(1)} x(1)为切分的坐标轴, l = j ( m o d k ) + 1 l=j(modk)+1 l=j(modk)+1,以该结点的区域中所有实例的 x ( 1 ) x^{(1)} x(1)坐标的中位数为切分点,将该结点对应的超矩形区域切分为两个子区域。切分由通过切分点并与坐标轴 x ( 1 ) x^{(1)} x(1)垂直的超平面实现。
由该结点生成深度为 j + 1 j+1 j+1的左、右子结点:左子结点对应坐标 x ( 1 ) x^{(1)} x(1)小于切分点的子区域,右子结点对应坐标 x ( 1 ) x^{(1)} x(1)大于切分点的子区域。
将落在切分超平面上的实例点保存在该结点。
(3)直到两个子区域没有实例存在时停止。从而形成kd树的区域划分。
4. 朴素贝叶斯
输入空间 X ⊆ R n X \subseteq R^n X⊆Rn为 n n n为向量集合
输出空间为类标记集合 y = { c 1 , c 2 , … c k } y=\{c_1,c_2,\dots c_k\} y={c1,c2,…ck}
P
(
X
,
Y
)
P(X,Y)
P(X,Y)是
X
X
X和
Y
Y
Y的联合概率分布。训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
n
,
y
n
)
}
T = \{(x_1,y_1),(x_2,y_2),\dots,(x_n,y_n)\}
T={(x1,y1),(x2,y2),…,(xn,yn)}
由
P
(
X
,
Y
)
P(X,Y)
P(X,Y)独立同分布产生
1.朴素贝叶斯法是典型的生成学习方法。生成方法由训练数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后求得后验概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)。具体来说,利用训练数据学习 P ( X ∣ Y ) P(X|Y) P(X∣Y)和 P ( Y ) P(Y) P(Y)的估计,得到联合概率分布: P ( X , Y ) = P ( Y ) P ( X ∣ Y ) P(X,Y)=P(Y)P(X|Y) P(X,Y)=P(Y)P(X∣Y)
概率估计方法可以是极大似然估计或贝叶斯估计。
2.朴素贝叶斯法的基本假设是条件独立性,
P
(
X
=
x
∣
Y
=
c
k
)
=
P
(
X
(
1
)
=
x
(
1
)
,
⋯
,
X
(
n
)
=
x
(
n
)
∣
Y
=
c
k
)
=
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
\begin{aligned} P(X&=x | Y=c_{k} )=P\left(X^{(1)}=x^{(1)}, \cdots, X^{(n)}=x^{(n)} | Y=c_{k}\right) \\ &=\prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right) \end{aligned}
P(X=x∣Y=ck)=P(X(1)=x(1),⋯,X(n)=x(n)∣Y=ck)=j=1∏nP(X(j)=x(j)∣Y=ck)
这是一个较强的假设。由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效,且易于实现。其缺点是分类的性能不一定很高。
3.朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测。
P ( Y ∣ X ) = P ( X , Y ) P ( X ) = P ( Y ) P ( X ∣ Y ) ∑ Y P ( Y ) P ( X ∣ Y ) P(Y | X)=\frac{P(X, Y)}{P(X)}=\frac{P(Y) P(X | Y)}{\sum_{Y} P(Y) P(X | Y)} \\ P(Y∣X)=P(X)P(X,Y)=∑YP(Y)P(X∣Y)P(Y)P(X∣Y)
通过上述朴素贝叶斯公式进行带入
y
=
f
(
x
)
=
a
r
g
max
c
k
P
(
Y
=
c
k
)
∏
j
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
∑
k
P
(
Y
=
c
k
)
∏
j
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
k
=
1
,
2
,
…
,
K
y = f(x) = arg \max_{c_k}\frac{P(Y = c_k)\prod \limits_{j} P(X^{(j)} = x^{(j)} | Y = c_k)}{\sum \limits_k P(Y = c_k)\prod \limits_{j} P(X^{(j)} = x^{(j)} | Y = c_k)} \qquad k = 1, 2, \dots, K
y=f(x)=argckmaxk∑P(Y=ck)j∏P(X(j)=x(j)∣Y=ck)P(Y=ck)j∏P(X(j)=x(j)∣Y=ck)k=1,2,…,K
将输入
x
x
x分到后验概率最大的类
y
y
y。
y
=
arg
max
c
k
P
(
Y
=
c
k
)
∏
j
=
1
n
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
y=\arg \max _{c_{k}} P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right)
y=argckmaxP(Y=ck)j=1∏nP(X(j)=x(j)∣Y=ck)
后验概率最大等价于0-1损失函数时的期望风险最小化。
先验概率
P
(
Y
=
c
k
)
P(Y = c_k)
P(Y=ck)极大似然估计
P
(
Y
=
c
k
)
=
∑
i
=
1
N
I
(
y
i
=
c
k
)
N
k
=
1
,
2
,
…
,
K
P(Y = c_k) = \frac{\sum \limits_{i=1} ^ {N} I (y _ i = c_k)}{N} \qquad k = 1,2, \dots,K
P(Y=ck)=Ni=1∑NI(yi=ck)k=1,2,…,K
设第
j
j
j个特征
x
(
j
)
x^{(j)}
x(j)可能取值集合为
{
a
j
1
,
…
,
a
j
S
j
}
\{a_{j1},\dots,a_{jS_j}\}
{aj1,…,ajSj},条件概率
P
(
X
(
j
)
=
a
j
l
,
y
i
=
c
k
)
P(X^{(j)} = a_{jl},y_i = c_k)
P(X(j)=ajl,yi=ck)的极大似然估计是:
P
(
X
(
j
)
=
a
j
l
∣
Y
=
c
k
)
=
∑
i
=
1
N
I
(
X
i
(
j
)
=
a
j
l
,
y
i
=
c
k
)
∑
i
=
1
N
I
(
y
i
=
c
k
)
P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum \limits _ {i=1}^NI(X_i^{(j)}=a_{jl},y_i=c_k)}{\sum \limits_{i=1} ^ N I(y_i = c_k)}
P(X(j)=ajl∣Y=ck)=i=1∑NI(yi=ck)i=1∑NI(Xi(j)=ajl,yi=ck)
x
i
(
j
)
x_i^{(j)}
xi(j)是第
i
i
i个样本的第
j
j
j个特征,
a
j
l
a_{jl}
ajl是第
j
j
j个特征可能取的第
l
l
l个值
贝叶斯估计
P ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( X i ( j ) = a j l , y i = c k ) + λ ∑ i = 1 N I ( y i = c k ) + s j λ P λ ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum \limits _ {i=1}^NI(X_i^{(j)}=a_{jl},y_i=c_k) + \lambda}{\sum \limits_{i=1} ^ N I(y_i = c_k) + s_j \lambda} \\ P_{\lambda}(Y = c_k)=\frac{\sum \limits_{i=1}^{N}I(y_i=c_k)+\lambda}{N + K \lambda} P(X(j)=ajl∣Y=ck)=i=1∑NI(yi=ck)+sjλi=1∑NI(Xi(j)=ajl,yi=ck)+λPλ(Y=ck)=N+Kλi=1∑NI(yi=ck)+λ
模型:
- 高斯模型
- 多项式模型
- 伯努利模型
GaussianNB 高斯朴素贝叶斯
特征的可能性被假设为高斯
概率密度函数:
P
(
x
i
∣
y
k
)
=
1
2
π
σ
y
k
2
e
x
p
(
−
(
x
i
−
μ
y
k
)
2
2
σ
y
k
2
)
P(x_i | y_k)=\frac{1}{\sqrt{2\pi\sigma^2_{yk}}}exp(-\frac{(x_i-\mu_{yk})^2}{2\sigma^2_{yk}})
P(xi∣yk)=2πσyk21exp(−2σyk2(xi−μyk)2)
数学期望(mean): μ \mu μ
方差: σ 2 = ∑ ( X − μ ) 2 N \sigma^2=\frac{\sum(X-\mu)^2}{N} σ2=N∑(X−μ)2