House Price Prediction
这里用 l i n e a r r e g r e s s i o n linear\;regression linearregression 的方式来搞一下预测房价问题,这是在 k a g g l e kaggle kaggle 的一个比赛 不限期 可以随时提交。
Step 1. 数据处理
关于数据的下载,直接在 k a g g l e kaggle kaggle 网站上面点击 d o w n l o a d download download 就可以了…
然后就是数据的处理,首先下载下来的数据是两个 c s v csv csv 文件,于是我们考虑用 p y t h o n python python 中的 p a n d a s pandas pandas 进行数据的处理。
这里有一点 p a n d a s pandas pandas 的笔记qwq:关于pandas
首先把下下来的两个文件 k a g g l e _ h o u s e _ p r e d _ t r a i n . c s v kaggle\_house\_pred\_train.csv kaggle_house_pred_train.csv 和 k a g g l e _ h o u s e _ p r e d _ t e s t . c s v kaggle\_house\_pred\_test.csv kaggle_house_pred_test.csv 保存在 d a t a data data 文件夹里,然后在python里读取他们就是这样:
test_data = pd.read_csv('./data/kaggle_house_pred_test.csv')
train_data = pd.read_csv('./data/kaggle_house_pred_train.csv')
这样我们就得到了两个 p a n d a s pandas pandas 的 D a t a F r a m e DataFrame DataFrame。
我们可以看看这些特征都有些啥:
print(train_data.iloc[0:4, [0, 1, 2, 3, -3, -2, -1]])
输出:
Id MSSubClass MSZoning LotFrontage SaleType SaleCondition SalePrice
0 1 60 RL 65.0 WD Normal 208500
1 2 20 RL 80.0 WD Normal 181500
2 3 60 RL 68.0 WD Normal 223500
3 4 70 RL 60.0 WD Abnorml 140000
我们会发现这些特种中有数字也有字符而且还有 I D ID ID 这种对我们进行预测没用的编号信息,甚至还有缺失的信息,所以我们还需要对这些数据进行一些进一步的处理。
第一步就是把 I D ID ID 给去掉:
all_features = pd.concat((train_data.iloc[:, 1:-1], test_data.iloc[:, 1:]))
然后我们考虑将所有缺失的特征都替换成对应特征的平均值,然后我们为了将所有特征都放在一个共同的尺寸上,我们考虑将特征都缩放到零均值和单位方差来标准化数据,也就是(下面的 μ , σ \mu, \sigma μ,σ 分别表示均值和标准差 :
x → x − μ σ x \rightarrow \frac{x - \mu}{\sigma} x→σx−μ
于是我们这样:
numeric_features = all_features.dtypes[all_features.dtypes != 'object'].index # 所有feature中类型不是'object'的值的下标
all_features[numeric_features] = all_features[numeric_features].apply( # 标准化数据 均值变成0
标准化数据后,均值变成 0 0 0 了,于是我们就给所有缺失的值填成 0 0 0:
all_features[numeric_features] = all_features[numeric_features].fillna(0)
然后,我们用 p a n d a s pandas pandas 的 g e t d u m m i e s ( ) get_dummies() getdummies() 函数来将所有非数字的特征变成数字:
all_features = pd.get_dummies(all_features, dummy_na

最低0.47元/天 解锁文章
520

被折叠的 条评论
为什么被折叠?



