线性回归模型predict()触发特征名警告的原因及解决方法
警告原因与修复方法
原因
你训练LinearRegression模型时用的是带特征名称的数据集(比如Pandas DataFrame),但预测时传入的是纯NumPy数组——没有任何特征名称信息。Sklearn会自动校验输入特征的名称是否和训练阶段匹配,因此抛出这个警告。
修复方法
方法1:给预测数据加上对应特征名称
把预测用的NumPy数组转换成和训练数据列名一致的Pandas DataFrame即可:
import pandas as pd import numpy as np # 替换成你训练模型时实际使用的特征列名 array = np.array([[26,1.5],[27,3]]) X_pred = pd.DataFrame(array, columns=['feature1', 'feature2']) multiple_linear_regression.predict(X_pred)
方法2:训练阶段就用纯数组
如果不需要特征名称的关联,训练模型时直接把数据集转换成NumPy数组,后续预测传数组就不会触发警告:
# 训练环节示例(替换成你的训练数据) X_train = your_train_data[['feature_col1', 'feature_col2']].to_numpy() y_train = your_train_data['target_col'].to_numpy() multiple_linear_regression.fit(X_train, y_train) # 预测环节直接传数组 array = np.array([[26,1.5],[27,3]]) multiple_linear_regression.predict(array)
内容的提问来源于stack exchange,提问作者Mehmet Ali Can Coşkun
相关产品推荐
相关产品推荐

