python - 学习 : KNeighborsRegressor vs KNeighborsClassifer

标签 python scikit-learn classification logistic-regression nearest-neighbor

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

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

最佳答案

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

KNeighborsClassifier 本质上执行多数表决。查询 x 的预测为 0,表示“快乐”。所以这就是去这里的方法。

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

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

关于python - 学习 : KNeighborsRegressor vs KNeighborsClassifer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52794075/

相关文章:

python - 如何在 Anaconda 环境中更改 Python 解释器路径?

python - 迭代并比较python中的两个列表

machine-learning - 使用基尼指数的决策树

matlab - 使用 matlab 中交叉验证的 Knn 分类器模型预测新数据集(测试数据)的标签

python - 如何在 Windows 中运行这个适用于 Linux 的 python 脚本?

python - 如何使用新值更新列的特定 DataFrame 切片?

python - 通过 sklearn 和 pandas 对单个 CSV 文件进行多重回归

python - 导入错误:无法为 sklearn 导入名称 'tree'

python - 使用 sklearn 缩放的 pandas 数据框列

python - sklearn.ensemble 中的 VotingClassifier ImportError