【发布时间】:2017-11-26 12:11:05
【问题描述】:
我正在尝试在 python 中运行线性回归来确定给定许多特征的房价。其中一些是数字,一些是非数字。我正在尝试对非数字列进行一种热编码,并将新的数字列附加到旧数据帧并删除非数字列。这是在训练数据和测试数据上完成的。
然后我取了两列特征的交集(因为我有一些仅位于测试数据中的编码)。之后,它进入线性回归。代码如下:
non_numeric = list(set(list(train)) - set(list(train._get_numeric_data())))
train = pandas.concat([train, pandas.get_dummies(train[non_numeric])], axis=1)
train.drop(non_numeric, axis=1, inplace=True)
train = train._get_numeric_data()
train.fillna(0, inplace = True)
non_numeric = list(set(list(test)) - set(list(test._get_numeric_data())))
test = pandas.concat([test, pandas.get_dummies(test[non_numeric])], axis=1)
test.drop(non_numeric, axis=1, inplace=True)
test = test._get_numeric_data()
test.fillna(0, inplace = True)
feature_columns = list(set(train) & set(test))
#feature_columns.remove('SalePrice')
X = train[feature_columns]
y = train['SalePrice']
lm = LinearRegression(normalize = False)
lm.fit(X, y)
import numpy
predictions = numpy.absolute(lm.predict(test).round(decimals = 2))
我遇到的问题是,我将这些高得离谱的销售价格作为输出,大约数亿美元。在我尝试一种热编码之前,我得到了数十万美元的合理数字。我很难弄清楚发生了什么变化。
另外,如果有更好的方法来做到这一点,我很想知道它。
【问题讨论】:
-
为什么注释掉功能中的 SalePrice 行?现在你在 X 数据中也有了它
-
它不是 feature_columns 的一部分,因为它不在训练和测试中。
标签: python scikit-learn regression