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

sklearn中LinearRegression.fit拟合模型报字符串转换错误排查

错误原因
  • 核心触发原因是特征集X中包含字符串类型字段Address:sklearn中的LinearRegression线性模型仅支持数值类型输入做矩阵运算,无法直接解析字符串值,拟合时就会抛出类型转换错误。
  • 代码同时存在逻辑疏漏:你将作为预测目标的Price列(即赋值给y的响应变量)也加入了特征集X,属于典型的数据泄露问题,这种情况下模型训练时会直接把目标值当特征学习,完全不具备预测价值。
修正方法

调整特征集X的列选择逻辑,剔除字符串字段Address和目标列Price,仅保留有效数值特征即可:

# 修正后特征集仅保留有效数值特征
X = df[['Avg. Area Income', 'Avg. Area House Age', 'Avg. Area Number of Rooms',
        'Avg. Area Number of Bedrooms', 'Area Population']]
y = df['Price']

后续数据集拆分、模型实例化与拟合的代码逻辑无需修改,调整后即可正常运行:

from sklearn.model_selection import train_test_split 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=101)

from sklearn.linear_model import LinearRegression
lm = LinearRegression()
lm.fit(X_train, y_train)

补充说明:如果后续需要使用Address这类文本/字符串类型特征,不能直接传入模型,需要先通过独热编码、标签编码等方式将其转换为数值格式,再和其他数值特征拼接后送入模型训练。

内容的提问来源于stack exchange,提问作者Ifeanyi George Ezeanya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 04:30:49