sklearn库的KNeighborsRegressor和KNeighborsClassifier有什么区别?
我正在尝试使用 kNN 算法对数据集进行预测,该数据集将某些情绪(如快乐、悲伤、愤怒)的名称作为可能的类别。属性是数字像素值。我了解到这些是分类类型。我是第一次使用 sklearn,无法在 KneighborsRegressor 和 KNeighborsClassifier 之间做出决定。我的情况有那么大的不同吗?在什么情况下会使用这些?
最佳答案
KNeighborsRegressor
和 KNeighborsClassifier
密切相关。两者都检索查询对象的 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/