K最近邻算法学习(1)

1、K最近邻算法原理(KNN)

K最近邻算法主要原理就是近朱者赤,近墨者黑。当选取的最近邻数是1时,就是看新数据点离哪个数据最近,则新数据点就是和这个数据是同一类型。当然不能讲最近邻数盲目的设置成1,需要根据具体问题具体分析。当最近邻数大于1时,例如邻数为3时,就是找离新数据点最近的3个点,看这3个点是哪种类型,若其中多数为一类型则新数据点就是这个类型。K最近算法也可以用于回归,原理和其用于分类是相同的。

2、K最近邻算法的用法

2.1、KNN在分类任务中的应用

利用之前生成的数据集来进行模型的训练,然后使用KNN来对新的未知数据进行分类,如下例子:

import numpy as np
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
#训练数据
clf = KNeighborsClassifier()
clf.fit(X,y)
#作图
x_min,x_max = X[:,0].min()-1,X[:,0].max()+1
y_min,y_max = X[:,1].min()-1,X[:,1].max()+1
xx,yy = np.meshgrid(np.arange(x_min,x_max,.02),np.arange(y_min,y_max,.02))
Z = clf.predict(np.c_[xx.ravel(),yy.ravel()])
z = Z.reshape(xx.shape)
plt.pcolormesh(xx,yy,z,cmap=plt.cm.gray)
plt.scatter(X[:,0],X[:,1],c=y,cmap=plt.cm.spring,edgecolor='k')
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
plt.title("Classifier:KNN")
plt.scatter(6.75,4.82,marker='*',c='red',s=200) #加入一个测试点
plt.show()

运行结果如下:
在这里插入图片描述
从图中可以看到,KNN算法基于数据集创建了一个分类模型,也就是图中黑色和灰色丞的部分。在这我用了一个测试点(6.75,4.82)来试验模型是否可以放到正确的代码中。明显可以看到点在浅色的区域中,说明分类是正确的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值