scikit-learn线性回归模型未按预期工作
我正在尝试理解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。而其他的系数都非常小。
另外要注意的是,你的系数数量是足够的,因为你添加了偏置列,所以系数的数量等于特征的数量加上偏置列。
由于你没有展示你是如何得到这些系数的,我无法判断那里是否有什么问题。(比如设置正确的因变量等等。)