Kaggle(一) 房价预测 (随机森林、岭回归、集成学习)
项目介绍:通过79个解释变量描述爱荷华州艾姆斯的住宅的各个方面,然后通过这些变量训练模型,
来预测房价。
kaggle项目链接:https://www.kaggle.com/c/house-prices-advanced-regression-techniques
数据描述:
train.csv - 训练集
test.csv - 测试集
一.加载数据#加载必要库import pandas as pdimport numpy as npimport matplotlib.pyplot as plt
%matplotlib inline#读取数据集df_train=pd.read_csv('train.csv')
df_test=pd.read_csv('test.csv')
二.数据清洗
把train与test两个数据集合并到一起来处理79个解释变量,等用test来进行预测时就不需再次处理了。df_train.shape,df_test.shape
y_train=df_train.pop('SalePrice') #删除并返回数据集中SalePrice标签列all_df=pd.concat((df_train,df_test),axis=0) #要处理的整体数据集total=all_df.isnull().sum().sort_values(ascending=False) #每列缺失数量percent=(all_df.isnull().sum()/len(all_df)).sort_values(ascending=False) #每列缺失率miss_data=pd.concat([total,percent],axis=1,keys=['total','percent'])
miss_data #显示每个列及其对应的缺失率
1.除去缺失率达40%以上的 (不除去的话,补齐数据误差偏大)all_df=all_df.drop(miss_data[miss_data['percent']>0.4].index,axis=1) #去除了percent>0.4的列
2. 由于有些房子没有车库,造成车库相关的属性缺失,对于这种情况,我们有missing填充,同时对于车库建造时间的缺失,我们用1900填充,表示车库是年久的,使其变得不重要。garage_obj=['GarageType','GarageFinish','GarageQual','GarageCond'] #列出车库这一类for garage in garage_obj:
all_df[garage].fillna('missing',inplace=True)#把1900标签填入空缺处表示年代久远all_