KNN算法在训练阶段会做什么?

时间:2019-02-03 17:09:07

标签: machine-learning knn

与线性回归等其他算法不同,KNN在训练阶段似乎不执行任何计算。像线性回归一样,它可以在训练阶段找到系数。但是KNN呢?

4 个答案:

答案 0 :(得分:1)

KNN属于惰性学习者组。与诸如logistic regressionsvmsneural nets这样的渴望学习者相反,懒惰学习者只是将训练数据存储在内存中。然后,在推理过程中,它会从训练数据中找到K个最近的邻居,以便对新实例进行分类。

答案 1 :(得分:1)

在训练阶段,KNN整理数据(某种索引过程),以便在推理阶段有效地找到最接近的邻居。否则,必须将推理过程中的每个新个案与整个数据集进行比较,从而使其效率很低。

您可以在https://scikit-learn.org/stable/modules/neighbors.html#nearest-neighbor-algorithms

上了解更多信息。

答案 2 :(得分:1)

Knn是个懒惰的学习者。这意味着,像其他算法在训练阶段学习(线性回归等)一样,Knn在训练阶段学习。实际上,它只是在训练时将数据点存储在RAM中。

就像线性回归的情况一样,它会在训练阶段找到系数。但是KNN呢?->如果是KNN,它会在测试阶段对其参数进行调整。在测试阶段,它找到了参数(K值,距离计算技术等)的最佳解决方案。 与其他在训练阶段学习并在测试阶段进行测试的算法不同,KNN学习并在测试阶段对参数进行测试(K折CV)。

距离计算-> https://scikit-learn.org/stable/modules/neighbors.html#nearest-neighbor-algorithms

KNN python文档-> https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html

答案 3 :(得分:0)

KNN是一种基于实例的方法,它完全依赖于训练示例,换句话说,它会记住所有训练示例。因此,在分类的情况下,只要出现任何示例,它都会计算输入示例与所有训练之间的欧式距离示例,并根据距离返回最接近的训练示例的标签。