基本信息概述
- 房价数据为他国地区
- 使用工具为JupyterLab、python3
- 用到的包
- 绘图包:seaborn、matplotlib
- 数据处理包:numpy、pandas
- 统计计算包:math、scipy
- 回归模型包:make_pipeline、 RobustScaler、ElasticNet,Lasso、KernelRidge、GradientBoostingRegresso、xgboost
可视化步骤
- 导入并打印数据
df_train = pd.read_csv('data.csv',encoding = 'gbk')
df_train
- 打印特征值、索引列
print(df_train.columns)
- 打印房价相关的数据描述
print(df_train['房价'].describe())
- 绘制每个房价区间的数量
seaborn.set(font=myfont.get_name())
plt.figure(figsize=(16,8),dpi=600)
plt.ylabel('频数')
plt.title('房价分布')
seaborn.distplot(df_train['房价'],kde=False,hist_kws={"label":"频数"})
plt.legend()
制作散点图,查看房价与居住面积之前的关系
data = pd.concat([df_train['房价'],df_train['居住面积']],axis=1)
plt.figure(figsize = (16,8),dpi = 600)
seaborn.scatterplot(data['居住面积'],data['房价'])
绘制散点图,房价与地下室面积之间的关系
data = pd.concat([df_train['房价'],df_train['地下室总面积']],axis =1)
plt.figure(figsize=(16,8),dpi=600)
seaborn.scatterplot(data['地下室总面积'],data['房价'])
绘制灯箱图,查看房价与材料和质量之间的关系
data = pd.concat([df_train['房价'],df_train['材料和质量']],axis =1)
plt.figure(figsize =(16,8),dpi = 600)
seaborn.boxplot(data=data,x='材料和质量',y='房价')
绘制灯箱图,查看房价与原施工日期之间的关系
data = pd.concat([df_train['房价'],df_train['原施工日期']],axis = 1)
plt.figure(figsize=(16,8),dpi=600)
plt.xticks(rotation=90)
seaborn.boxplot(data=data,x='原施工日期',y='房价')
绘制灯箱图,查看房价与街区之间的关系
data = pd.concat([df_train['房价'],df_train['街区']],axis = 1)
plt.figure(figsize=(16,8),dpi=600)
plt.xticks(rotation=90)
seaborn.boxplot(data=data,x='街区',y='房价')
做热力图,查看所有数值型特征之间的相关性
corrmat=df_train.corr()
plt.figure(figsize=(16,8),dpi=600)
seaborn.heatmap(corrmat,square=True,cmap='YlGnBu',xticklabels=True,yticklabels=True)
找出与房价的相关系数排名靠前的10个特征,画出这10个特征之间的热力图
k = 10
cols = corrmat.nlargest(k,'房价')['房价'].index
cm = np.corrcoef(df_train[cols].values.T)
plt.figure(figsize=(16,8),dpi=600)
hm = seaborn.heatmap(cm,annot=True,square=True,fmt='.2f',annot_kws={'size':10},
yticklabels=cols.values,xticklabels=cols.values,cmap='YlGnBu')