首页 > 解决方案 > 需要 K-Nearest Neighbors 算法解释

问题描述

在回归模型中,训练过程会找到选定函数的参数。但是如果算法是 K 近邻(KNN),我们使用什么训练过程呢?

例如,如果我执行以下命令,后台会做什么?

k = 4

neigh = KNeighborsClassifier(n_neighbors = k).fit(x_train, y_train)

当没有计算常量/参数(之后的预测过程中需要)时,为什么在 KNN 中需要训练过程?

KNN的步骤如下...

  1. 为 k 选择一个值。
  2. 计算新病例与数据集中每个病例的距离。
  3. 在训练数据中搜索最接近未知数据点测量值的 k 观测值。
  4. 使用来自 K-Nearest Neighbors 的最流行的响应值来预测未知数据点的响应。

...但是它们仅在我执行预测命令时才有效吗?

yhat = neigh.predict(x_test)

标签: pythonmachine-learningscikit-learn

解决方案


1) KNN 中的训练是否意味着对训练数据集中的每一行计算相似距离并找到邻居?

neigh = KNeighborsClassifier(n_neighbors = k).fit(x_train, y_train)

2)如果计算相似距离并且只为训练数据集找到邻居,那么如何为测试数据集找到类标签。如果我们不知道谁是测试数据集的邻居,那么我们如何找到类标签?

yhat = neigh.predict(x_test)

3)如果我们说“未见过的实例”或“未知的数据点”,那么它是否意味着它对应于测试数据集中的任何行?


推荐阅读