使用K近邻算法时遇Unknown label type: Continuous MULTIOUTPUT错误求助
解决方案:替换为KNN回归模型处理多输出连续预测
你遇到的错误核心原因是用了分类模型处理回归任务:KNeighborsClassifier是用于离散类别分类的模型,而你要预测的population、fertility、life_expectancy都是连续数值型变量,且是多输出任务,分类模型无法识别这种连续多输出标签,因此报错。
解决步骤:
- 替换模型类:从sklearn导入回归版本的KNN模型
KNeighborsRegressor,而非分类器 - 修改代码:
# 替换导入语句 from sklearn.neighbors import KNeighborsRegressor # 实例化回归模型 modelo = KNeighborsRegressor(n_neighbors=vizinhos) # 后续的拟合、预测流程不变 modelo.fit(X_train, y_train) y_pred = modelo.predict(X_test) - 验证逻辑:
KNeighborsRegressor原生支持多输出回归任务,不需要额外添加多输出包装器(比如MultiOutputRegressor),直接传入多列的目标变量y_train即可正常拟合。
额外提醒:区分分类和回归任务是ML建模的基础——当目标是预测连续数值时用回归模型,预测离散类别时用分类模型,不要混淆两者的适用场景。
内容的提问来源于stack exchange,提问作者lobsterini
相关产品推荐
相关产品推荐

