kaggle competition--房价预测(线性回归)

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值