赞
踩
关于房价,一直都是全民热议的话题,毕竟不少人终其一生都在为之奋斗。
房地产的泡沫究竟有多大不得而知?今天我们抛开泡沫,回归房屋最本质的内容,来分析一下房价的影响因素究竟是什么?
1、导入数据
importnumpyasnp
importpandasaspd
importmatplotlib.pyplotasplt
importseabornassn
importmissingnoasmsno
%matplotlibinline
train = pd.read_csv('train.csv',index_col=0)#导入训练集
test = pd.read_csv('test.csv',index_col=0)#导入测试集
train.head(3)
print('train训练集缺失数据分布图')
msno.matrix(train)
print('test测试集缺失数据分布图')
msno.matrix(test)
从上面的数据缺失可视化图中可以看出,部分特征的数据缺失十分严重,下面我们来对特征的缺失数量进行统计。
2、目标Y值分析
##分割Y和X数据
y=train['SalePrice']
#看一下y的值分布
prices = pd.DataFrame({'price':y,'log(price+1)':np.log1p(y)})
prices.hist()
观察目标变量y的分布和取对数后的分布看,取完对数后更倾向于符合正太分布,故我们对y进行对数转化。
y = np.log1p(y)#+1的目的是防止对数转化后的值无意义
3、合并数据 缺失处理
#合并训练特征和测试集
all_df = pd.concat((X,test),axis=0)
print('all_df缺失数据图')
msno.matrix(all_df)
#定义缺失统计函数
defshow_missing(feature):
missing = feature.columns[feature.isnull().any()].tolist()
returnmissing
print('缺失特征的数据缺失量统计:')
all_df[show_missing(all_df)].isnull().sum()
#先处理numeric数值型数据
#挨个儿看一下分布
fig,axs = plt.subplots(3,2,figsize=(16,9))
all_df['BsmtFinSF1'].hist(ax = axs[0,0])#众数填充
all_df['BsmtFinSF2'].hist(ax = axs[0,1])#众数
all_df['BsmtUnfSF'].hist(ax = axs[1,0])#中位数
all_df['TotalBsmtSF'].hist(ax
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。