文章目录
前言
本文只要记录一些书中的一些小知识点,挑一些本人认为重要的地方进行总结。
各位道友!道长(zhǎng) 道长(chǎng)
一、k近邻法(k-nearest neighbor,k-NN)
这是一种基本的分类与回归放啊。输入是实例特征向量,输出时实例的类别。
二、k近邻算法
输入:训练数据集
T
=
(
x
1
,
y
1
)
.
.
.
(
x
N
,
y
N
)
T= {(x_1,y_1)...(x_N,y_N) }
T=(x1,y1)...(xN,yN);实例的特征向量
x
x
x
输出:
x
x
x所属的类y
(1)根据距离度量,在训练集T中找出与x最近的k个点,涵盖k个点的x的邻域记作
N
k
(
x
)
N_k(x)
Nk(x)
(2)在
N
k
(
x
)
N_k(x)
Nk(x)中根据分类决策规则(如多数表决)决定x的类别y
y
=
arg
max
c
j
I
(
y
i
=
c
i
)
,
i
=
1
,
2..
N
y=\arg \max_{c_j}I(y_i=c_i) ,i=1,2..N
y=argcjmaxI(yi=ci),i=1,2..N
其中I是指示函数,当属于该类ci是为1;
x是特征向量,y是类别,取值i=1,2,3....
从算法可知,模型由三个基本要素——距离度量、k值选择和分类决策规则
三、k-NN模型
3.1.距离度量
距离度量是两个实例点相似程度的反应
L
p
L_p
Lp距离:
L
p
(
x
i
,
x
j
)
=
(
∑
l
=
1
n
∣
x
i
(
l
)
−
x
j
(
l
)
∣
)
1
/
p
L_p(x_i,x_j)=(\sum_{l=1}^{n}|x_i^{(l)}-x_j^{(l)}|)^{1/p}
Lp(xi,xj)=(l=1∑n∣xi(l)−xj(l)∣)1/p
当p=1为曼哈顿距离
当p=2为欧式距离
当p=∞为各个坐标的最大值
3.2 k值的选择
k值的选择对结果会有重大影响。
如果k较小,相当于用较小的邻域中的训练实例进行预测
优点是学习的近似误差会减小,只有与输入实例较近的训练实例才会对预测结果起作用。
缺点是学习的估计误差会增大,
这时预测结果会对近邻的实例点非常敏感
如果k较大,相当于用较大的邻域中的训练实例进行预测
优点是可以减少学习的估计误差,
缺点是学习的近似误差会增。
这时输入实例较远的实例也会起预测作用。
在应用中,一般选取一个比较小的k值,用交叉验证发选取最优的k值。
3.3分类决策规则
分类规则往往是多数表决法。
误分类率如下
1
k
∑
x
i
∈
N
k
(
x
)
I
(
y
i
≠
c
j
)
=
1
−
1
k
∑
x
i
∈
N
k
(
x
)
I
(
y
i
=
c
j
)
\frac 1k \sum_{x_i\in N_k(x)}I(y_i \not= c_j)=1- \frac 1k \sum_{x_i\in N_k(x)}I(y_i = c_j)
k1xi∈Nk(x)∑I(yi=cj)=1−k1xi∈Nk(x)∑I(yi=cj)
要是误分类率最小,即经验风小最小,就要 ∑ x i ∈ N k ( x ) I ( y i = c j ) \sum_{x_i\in N_k(x)}I(y_i = c_j) ∑xi∈Nk(x)I(yi=cj)最大,所以多数表决规则等价于经验风险最小化
四、 k近邻法的视线,kd树
实现k近邻法是,最简单的方法是线性扫描,但是这种方法很不效率。于是,考虑特殊的存储结构存储训练数据,以减少计算距离的次数。下面介绍kd树算法。
4.1 构造平衡kd树
输入:k维空间数据集
T
=
x
1
.
.
x
N
T= {x_1..x_N }
T=x1..xN;其中
x
i
=
(
x
i
(
1
)
.
.
.
x
i
(
k
)
)
x_i=(x_i^{(1)}...x_i^{(k)})
xi=(xi(1)...xi(k))
输出:kd树
(1)构造根节点,根节点对应包含T的k维空间的超矩形区域,
选择
x
(
1
)
x^(1)
x(1)为坐标轴,以
x
(
1
)
x^(1)
x(1)的中位数为切分点,将根节点对应的超矩形区域切分成两个子区域。切分点为新的根节点。
(2)重复:对深度为j的节点,选择
x
(
l
)
x^{(l)}
x(l)为切分的坐标轴,其中l=j(mod k)+1,继续以中位数为切分点,不断的将之分为2部分
(3)直到两个子区域没有实例存在为止。
例子:
4.2搜索kd树
输入:kd树,目标点x
输出:x的最近邻
(1)找到包含目标点x的叶节点。
(2)以此叶节点为“当前最近点”
(3)递归的向上回退:
(a)如果该节点保存的实例点比当前最近点的距离目标点更近,,则以该实例点为“当前最近点”
(b)检查该子节点的父节点的另一子节点对应的区域是否有更近的节点。具体的,检查另一子节点对应的区域是否与以目标点为球心、以目标点与“当前最近点”间距离为半径的超球体相交。
如果相交,可能另一个子节点赌赢的区域内有更近的点,移动到另一个子节点,递归进行最近邻搜索
不相交,回退
(4)退到根节点,结束。最后的“当前最近点”即为x的最邻近点。
总结
今天的内容是统计学习方法的第三章节,也不难,结合模型图理解更加方便