4.k近邻法

2020-06-23  本文已影响0人  BlueFishMan

K

k值一般取一个较小的数值,通常采用交叉验证法来选取最优的k值.

Distance

graph TD
A[非数值特征]-->|量化|B[数值特征]
C[数据集]-->|归一化|D[数据集]

L_p(\overrightarrow{x}_i,\overrightarrow{x}_j)=(\sum_{l=1}^n|x_i^{(l)}-x_j^{(l)}|^p)^{\frac{1}{p}}
\overrightarrow{x}_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(n)})^T
\overrightarrow{x}_j=(x_j^{(1)},x_j^{(2)},...,x_j^{(n)})^T
p\ge1;\overrightarrow{x}_i,\overrightarrow{x}_j\in R^n
L_2(\overrightarrow{x}_i,\overrightarrow{x}_j)=(\sum_{l=1}^n|x_i^{(l)}-x_j^{(l)}|^2)^{\frac{1}{2}}

k近邻算法

输入

1. 训练集
T=\{(\overrightarrow{x}_1,y_1),(\overrightarrow{x}_2,y_2),...,(\overrightarrow{x}_N,y_N)\}
\overrightarrow{x}_i=(x_{i}^{(1)},x_{i}^{(2)},...,x_{i}^{(n)})^T
y_i\in\{c_1,c_2,...,c_K\}
i=1,2,...,N
2. 实例
\overrightarrow{x}=(x^{(1)},x^{(2)},...,x^{(n)})^T

输出

y

算法步骤

根据给定的距离度量,在T中寻找与\overrightarrow{x}最近邻的k个点.
N_k(\overrightarrow{x})
y=\mathop{\arg\max}\limits_{c_j}\sum_{\overrightarrow{x}_i\in N_k(\overrightarrow{x})}I(y_i=c_j)
i=1,2,...,N;j=1,2,...,K

上一篇下一篇

猜你喜欢

热点阅读