其他分享
首页 > 其他分享> > 统计学习方法学习笔记-03-k近邻法

统计学习方法学习笔记-03-k近邻法

作者:互联网

首先叙述\(k\)近邻算法,然后讨论\(k\)近邻模型及三个基本要素,最后讲述\(k\)近邻法的一个实现方法,\(kd\)树,介绍构造和搜索\(kd\)树的算法。

k近邻算法

输入:训练数据集\(T = \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}\),其中,\(x_i \in \mathcal{X} \subseteq R^n\)为实例的特征向量,\(y_i \in \mathcal{Y} = \{c_1,c_2,\cdots,c_K\}为实例的类别\),\(i = 1,2,\cdots,N\);实例特征向量\(x\)
输出:实例\(x\)所属的类\(y\)

\[y = arg\ \mathop{max}\limits_{c_j}\sum_{x_i \in N_k(x)}I(y_i = c_j),i = 1,2,\cdots,N;j = 1,2,\cdots,K \]

\(I\)为指示函数,当\(y_i = c_j\)时\(I\)为1,否则为0

k近邻模型的三要素

\(k\)近邻法使用的模型实际上对应着对特征空间的划分,模型三要素为距离度量、\(k\)值的选择和分类决策规则

距离度量

特征空间中两个实例点的距离是两个实例点相似程度的反映。设特征空间\(\mathcal{X}\)是\(n\)维实数向量空间\(R^n\),\(x_i,x_j \in \mathcal{X},x_i = (x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T,x_j = (x_j^{(1)},x_j^{(2)},\cdots,x_j^{(n)})^T\)

\[L_p(x_i,x_j) = \left(\sum_{l=1}^n|x_i^{(l)} - x_j^{(l)}|^p \right)^{\frac{1}{p}} \]

\[L_2(x_i,x_j) = \left(\sum_{l=1}^n|x_i^{(l)} - x_j^{(l)}|^2 \right)^{\frac{1}{2}} \]

\[L_1(x_i,x_j) = \sum_{l=1}^n|x_i^{(l)} - x_j^{(l)}| \]

\[L_{\infty}(x_i,x_j) = \mathop{max}\limits_l|x_i^{(l)} - x_j^{(l)}| \]

k值的选择

分类决策规则

\[f:R^n \rightarrow \{c_1,c_2,\cdots,c_k\} \]

那么误分类的概率是

\[P(Y \neq f(X)) = 1 - P(Y = f(X)) \]

对于给定的实例\(x \in \mathcal{X}\),其最邻近的\(k\)个训练实例点构成集合\(N_k(x)\),如果涵盖\(N_k(x)\)的区域的类别是\(c_j\),那么误分类率是:

\[\frac{1}{k}\sum_{x_i \in N_k(x)}I(y_i \neq c_j) = 1 - \frac{1}{k}\sum_{x_i \in N_k(x)}I(y_i = c_j) \]

要使误分类率最小即经验风险最小,就要使\(\sum_{x_i \in N_k(x)}I(y_i = c_j)\)最大,所以多数表决规则等价于经验风险最小化

k近邻法的实现:kd树

目的:对训练数据进行快速\(k\)近邻搜索

构造\(kd\)树

输入:\(k\)维空间数据集\(T = \{x_1,x_2,\cdots,x_N\}\),其中\(x_i = (x_i^{(1)},x_i^{(2)},\cdots,x_i^{(k)})^T,i = 1,2,\cdots,N\)
输出:平衡\(kd\)树

搜索\(kd\)树

输入:已构造的\(kd\)树,目标点\(x\);
输出:\(x\)的最近邻;
更适用于训练实例数远大于空间维数的情况,平均计算复杂度为\(O(\log N)\)

标签:03,结点,kd,近邻,学习,cdots,实例,sum
来源: https://www.cnblogs.com/eryoyo/p/16693672.html