关于实现 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])。因此我们可以得出结论:模型是按照预期运行的。