You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

sklearn流水线拟合正常预测时出现字符串无法转数值ValueError排查

错误原因分析
  • 直接原因是预测时调用对象错误:你完成拟合用的是包含预处理+模型的完整流水线knn_pipe,但执行预测时调用的是流水线内部的KNeighborsClassifier实例knn,跳过了前置的特征预处理流程。
  • 原始测试集X_test中包含分类字符串特征(比如color列的取值'G'),没有经过ColumnTransformer中的OneHotEncoder转换为数值格式,直接送入要求数值输入的KNN模型,就触发了类型转换报错。
  • 拟合环节正常的原因是调用knn_pipe.fit()时,流水线会自动按顺序执行预处理、模型拟合两步,所有特征都被正确转换为数值后才送入模型,因此不会报错。
  • 你之前调整目标列编码的操作无效,是因为sklearn分类模型本身支持字符串类型的标签输入,错误根源和目标列无关。
修复方案

只需要把预测行的调用对象改为完整流水线即可:

# 错误写法
# preds = knn.predict(X_test)
# 正确写法
preds = knn_pipe.predict(X_test)

内容的提问来源于stack exchange,提问作者Bex T.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 13:15:08