KNN算法

机器学习算法完整版见fenghaootong-github

KNN算法

kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。

三要素:k值选择、距离矢量、分类决策规则

k值选择

  • 应用中,k值一般取一个较小的数值

如果k=3,在已有的分类样本上,这时来了一个新样本,那么这个新样本所属的类就是在最临近的三个样本中占较大比重的那一类。

距离矢量

  • 特征空间中两个实例点的距离是两个实例点相似程度的反映
  • K近邻模型的特征空间的距离一般为欧式距离,也可以是 L p L_p Lp距离:

L p ( x i ⃗ , x j ⃗ ) = ( ∑ l = 1 n ∣ x i ( l ) − x i ( l ) ∣ p ) 1 / p L_p(\vec{x_i},\vec{x_j}) = (\sum_{l=1}^n|x_i^{(l)}-x_i^{(l)}|^p)^{1/p} Lp(xi ,xj )=(l=1nxi(l)xi(l)p)1/p

$\vec{x_i},\vec{x_j} \in \chi = \mathbb{R}^n $
x i ⃗ = ( x i ( 1 ) , x i ( 2 ) , . . . , x i ( n ) ) T \vec{x_i} = (x_i^{(1)},x_i^{(2)},...,x_i^{(n)})^T xi =(xi(1),xi(2),...,xi(n))T
x j ⃗ = ( x j ( 1 ) , x j ( 2 ) , . . . , x j ( n ) ) T \vec{x_j} = (x_j^{(1)},x_j^{(2)},...,x_j^{(n)})^T xj =(xj(1),xj(2),...,xj(n))T
p ≥ 1 p \ge 1 p1

  • 当p=2时,为欧式距离: L 2 ( x i ⃗ , x j ⃗ ) = ( ∑ l = 1 n ∣ x i ( l ) − x i ( l ) ∣ 2 ) 1 / 2 L_2(\vec{x_i},\vec{x_j}) = (\sum_{l=1}^n|x_i^{(l)}-x_i^{(l)}|^2)^{1/2} L2(xi ,xj )=(l=1nxi(l)xi(l)2)1/2
  • 当p=1时,为曼哈顿距离: L 1 ( x i ⃗ , x j ⃗ ) = ∑ l = 1 n ∣ x i ( l ) − x i ( l ) ∣ L_1(\vec{x_i},\vec{x_j}) = \sum_{l=1}^n|x_i^{(l)}-x_i^{(l)}| L1(xi ,xj )=l=1nxi(l)xi(l)
  • 当p= ∞ \infty 无穷大时,为各维度距离中的最大值: L ∞ ( x i ⃗ , x j ⃗ ) = m a x l ∣ x i ( l ) − x i ( l ) ∣ L_\infty(\vec{x_i},\vec{x_j}) = max_l|x_i^{(l)}-x_i^{(l)}| L(xi ,xj )=maxlxi(l)xi(l)

分类决策规则

  • 误分类率

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{1}{k}\sum_{\vec{x_i}\in N_k(\vec{x})}I(y_i\ne c_j)=1-\frac{1}{k}\sum_{\vec{x_i}\in N_k(\vec{x})}I(y_i = c_j) k1xi Nk(x )I(yi=cj)=1k1xi Nk(x )I(yi=cj)

c j c_j cj表示类别

  • 多数表决

y = c j = a r g m a x c j ∑ x i ‾ ∈ N k ( x ‾ ) I ( y i ≠ c j ) , i = 1 , 2 , 3 , . . . , N ; j = 1 , 2 , 3 , . . . , K y = c_j = arg max_{c_j} \sum_{\overline{x_i}\in N_k(\overline{x})}I(y_i\ne c_j), i = 1,2,3,...,N; j = 1,2,3,...,K y=cj=argmaxcjxiNk(x)I(yi=cj),i=1,2,3,...,N;j=1,2,3,...,K

**KNN算法经典实例 **

KNN算法经典实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值