Sklearn:KNeighborsRegressor 与 KNeighborsClassifer

Sklearn: KNeighborsRegressor vs KNeighborsClassifer

sklearn库的KNeighborsRegressor和KNeighborsClassifier有什么区别?

我正在尝试使用 kNN 算法对尽可能具有特定情绪名称(如快乐、悲伤、愤怒)的数据集进行预测 类。属性是数字像素值。我了解到这些是分类类型。我是第一次使用 sklearn,无法在 KneighborsRegressor 和 KNeighborsClassifier 之间做出决定。我的情况有那么大的不同吗?在什么情况下会使用这些?

我认为两者的 KNN 算法风格是相同的。但是他们有不同的输出。一个给你回归和其他分类。要理解您的问题,我认为您应该检查分类和回归有何不同。勾选这个link,你会更清楚。

[https://math.stackexchange.com/questions/141381/regression-vs-classification][1]

KNeighborsRegressorKNeighborsClassifier是密切相关的。两者都检索查询对象的 k 个邻居,并根据这些邻居进行预测。假设查询 x 的五个最近邻居包含标签 [2, 0, 0, 0, 1]。让我们将情绪编码为 happy=0, angry=1, sad=2.

KNeighborsClassifier 实质上执行多数表决。查询 x 的预测为 0,这意味着 'happy'。所以这就是去这里的方法。

KNeighborsRegressor 改为计算最近邻标签的平均值。那么预测将是 3/5 = 0.6。但这并不映射到我们定义的任何情绪。原因是情绪变量确实是分类的,如问题中所述。 如果您将情绪编码为连续变量,则可以使用 Regressor。假设值在区间 [0.0, 2.0] 中,其中 0 表示非常高兴,2 表示非常悲伤,0.6 现在具有意义(快乐)。

顺便说一句,既然你在关键字中提到逻辑回归,请不要被名称混淆。它实际上是分类,如scikit-learn user guide.

中所述