关于实现 k 近邻算法的总结

什么情况使用 KNN 算法?

答:KNN 算法既可以用于分类也可以用于回归预测。然而,业内主要用于分类问题。在评估一个算法时,我们通常从以下三个角度出发:1.模型解释性2.运算时间3.预测能力   

KNN 算法的原理是什么?        

我们知道样本集中每一数据与所属分类的对应关系。

如何选择因子 K?

首先要了解 K 在算法中到底有什么影响。在前文的案例中,假定总共只有 6 个训练数据,给定 K 值,我们可以划分两个类的边界。现在让我们看看不同 K 值下两个类别的边界的差异。

   

仔细观察,我们会发现随着 K 值的增加,边界变得更平滑。当K值趋于无穷大时,分类区域最终会全部变成蓝色或红色,这取决于占主导地位的是蓝点还是红点。

我们可以通过以下步骤实现 KNN 模型:

  • 加载数据。

  • 预设K值。

  • 对训练集中数据点进行迭代,进行预测。

STEPS:

  • 计算测试数据与每一个训练数据的距离。我们选用最常用的欧式距离作为度量。其他度量标准还有切比雪夫距离、余弦相似度等

  • 根据计算得到的距离值,按升序排序

  • 从已排序的数组中获取靠前的k个点

  • 获取这些点中的出现最频繁的类别

  • 得到预测类别

我们将使用流行的 Iris 数据集来构建 KNN 模型。你可以从这里下载(数据集链接:

https://gist.githubusercontent.com/gurchetan1000/ec90a0a8004927e57c24b20a6f8c8d35/raw/fcd83b35021a4c1d7f1f1d5dc83c07c8ffc0d3e2/iris.csv)

复制数据,粘贴到text文件中。重新命名为:iris.csv (这是Excel文件)

执行后发现:

可以看到,两个模型都预测了同样的类别(“irisi –virginica”)和同样的最近邻([141 139 120])。因此我们可以得出结论:模型是按照预期运行的。

    原文链接:https://www.analyticsvidhya.com/blog/2018/03/introduction-k-neighbours-algorithm-clustering/                                                                                                                                                          
阅读更多
文章标签: KNN python
上一篇运用Python Open -CV简单实现打开某张图片
下一篇手把手教你使用KNN算法(Python实现)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭