zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python实现K近邻算法案例

Python案例算法 实现 近邻
2023-06-13 09:11:06 时间

K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。

该方法的思路是:在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。

下面这幅图假设蓝色正方形表示喜欢python编程语言,红色三角形表示喜欢Java语言。

根据前面讲的KNN算法原理,猜猜绿色圆形可能喜欢哪种编程语言?

答案:Java,图形中表示的K=3,3个邻居中,2个都是喜欢Java,那么我就推断绿色的也喜欢Java。

既然是预测,肯定就不是百分百的,只是根据现有数据进行预测。


有一份保存了各地所喜欢的编程语言数据。

每一条数据包含了 经度,纬度,以及对应喜欢的语言。

我们的任务是,根据这份数据,实现一个预测模型,当给一个新的经度纬度 数据点,可以输出预测的语言。

预测结果:


加载数据:

加载好后,首先定义一个可以求两点距离的方法:

结果值越小,表示两者越近,也就是越相似(很多相似性都是通过类似的方法来判定的,比如图片相似性,可以用来搜索图片,还有推荐功能等)。

然后定义一个可以预测的方法 knn_classify,k 表示几个邻居,label_points 表示提供训练的数据,new_point 是待预测的点。

最后就可以使用了。


为了看的更加清楚,可以放到图表中显示。

原来的数据点,分别使用红绿蓝标出,黑色是预测的点。

(全文完)