scikit-learn线性回归模型未按预期工作

0 投票
2 回答
78 浏览
提问于 2025-04-14 15:53

我正在尝试理解Scikit-learn中线性回归模型的内部工作原理。

这是我的数据集:

进行一热编码前的数据集

这是我在进行一热编码之后的数据集。

进行一热编码后的数据集

这是我在进行线性回归后得到的系数和截距的值。

系数

销售价格是依赖的列,其他列是特征。
这些是预测值,在这个案例中效果很好。
预测值

我注意到系数的数量比特征的数量多1。所以这是我生成特征矩阵的方式:

feature_matrix = dataFrame.drop(['Sell Price($)'], axis = 'columns').to_numpy()

# Array to be added as column
bias_column = np.array([[1] for i in range(len(feature_matrix))])

# Adding column to array using append() method
feature_matrix = np.concatenate([bias_column, feature_matrix], axis = 1)  # axis = 1 means column, 0 means row

结果
结果图

我想知道的是Scikit-learn是如何利用这些系数和截距来预测值的。
这是我尝试的计算方法。
计算方法
我还注意到,通过这个计算得到的值在每种情况下实际上都等于里程。但这并不是这里的依赖特征。那么这是怎么回事呢?

2 个回答

0

正如@KaranShishoo在上面的评论中提到的,我在把数据输入线性回归模型之前,没有去掉价格这一列,这就是造成了这个问题的原因。

1

你之所以能从这个计算中得到里程数,是因为里程数的系数是1。而其他的系数都非常小。

另外要注意的是,你的系数数量是足够的,因为你添加了偏置列,所以系数的数量等于特征的数量加上偏置列。

由于你没有展示你是如何得到这些系数的,我无法判断那里是否有什么问题。(比如设置正确的因变量等等。)

撰写回答