我正在尝试了解 Scikit-learn 中线性回归模型的内部工作原理。
这是我的数据集
这是我执行 one-hot-encoding 后的数据集。
销售价格是从属列,其余列是特征。
这些是在这种情况下工作正常的预测值。
我注意到系数的数量比特征的数量多 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如何使用这些系数和截距来预测值。
这是我尝试过的。
我还注意到,通过进行此计算得到的值实际上等于每种情况下的里程数。但这不是这里的依赖功能。那么这是怎么回事?
从这个计算中得到里程的原因是里程的系数为1。而其他系数非常小。
另请注意,由于添加了偏差列,因此您有足够的系数,因此系数的数量等于包括偏差列的特征。
由于您没有展示如何获得系数,所以我无法告诉您那里是否出了问题。 (设置正确的因变量等)
正如@KaranShishoo 在上面的评论中指出的那样,在将数据输入线性回归模型之前,我并没有删除价格列,这就是它导致这种歧义的原因。