影响房价指标画像——数值指标

中国的房价从2005年到现在发生了天翻地覆的变化,如果能提前预测出这种趋势,并做出正确的选择,会更有利于我们财富的积累。

如何发现财富的钥匙,是人生路上的必修课。

除了时间因素,影响房子价格的因素还有很多,比如房子面积、房子地段、房子质量、周边配套等。

本文就从这两个视角出发,和你一起探索影响房价的指标画像,后续文章会对房价进行预测。

本文目录
  1. 数据读取与分析

    1.1 数据集介绍

    1.2 读取数据

    1.3 目标变量分析

    1.4 区分数值变量和类别变量

    1.5 数值变量和房价之间的关系

  2. 影响房价指标画像分析-明细

    2.1 建筑类别

    2.1 整体质量

    2.3 整体状况评级

    2.4 建造年份

    2.5 改造日期

    2.6 销售月份

    2.7 总面积

    2.8 一楼面积

    2.9 二楼面积

    2.10 低质量成品

    2.11 居住面积

    2.12 地下室全套浴室

    2.13 地下室半浴室

    2.14 地上浴室数量

    2.15 地下室以上的卧室数量

    2.16 厨房数量

    2.17 地上房间总数

    2.18 壁炉数量

    2.19 车库建成年份

    2.20 车库容量大小

    2.21 车库面积

    2.22 木制甲板面积

    2.23 开放式门廊面积

    2.24 封闭式门廊面积

    2.25 屏幕门廊面积

    2.26 泳池面积

  3. 影响房价指标画像分析-总结


一、数据读取与分析

 1   数据集介绍

首先介绍一下数据集,它总共包含了1460套房子建筑信息。

每行存储一套房子的样本,每条样本包含81条属性,主要由建筑类型、建筑时间、建筑材料、建筑质量、销售信息、目标变量组成,具体如下:

英文名 对应中文 英文名 对应中文
Id 标签 CentralAir 中央空调
MSSubClass 建筑类 Electrical 电气系统
MSZoning 一般分区分类 1stFlrSF 一楼平方英尺
LotFrontage 地段临街:与物业相连的街道的线性英尺 2ndFlrSF 二楼平方英尺
LotArea 地段面积(平方英尺) LowQualFinSF 低质量成品平方英尺(所有楼层)
Street 街道:道路通行类型 GrLivArea 居住面积:地面生活区平方英尺
Alley 小巷:小巷通道类型 BsmtFullBath 地下室全套浴室
LotShape 地段形状:财产的一般形状 BsmtHalfBath 地下室半浴室
LandContour 土地轮廓:房产的平整度 FullBath 地上全浴室
Utilities 可用的实用程序类型 HalfBath 地上半浴
LotConfig 批次配置 BedroomAbvGr 地下室以上的卧室数量
LandSlope 土地坡度 KitchenAbvGr 厨房数量
Neighborhood 邻里:艾姆斯市区范围内的物理位置 KitchenQual 厨房质量
Condition1 条件1:靠近主要道路或铁路 TotRmsAbvGrd 地上房间总数(不包括浴室)
Condition2 条件
2:靠近主要道路或铁路(如果存在第二个)
Functional 家庭功能评级
BldgType 房屋类型 Fireplaces 壁炉数量
HouseStyle 住宅风格 FireplaceQu 壁炉质量
OverallQual 整体质量:整体材料和表面处理质量 GarageType 车库类型
OverallCond 整体状况评级 GarageYrBlt 车库建成年份
YearBuilt 建造年份:原始建造日期 GarageFinish 车库的内部饰面
YearRemodAdd 改造日期 GarageCars 车库容量的大小
RoofStyle 屋顶类型 GarageArea 车库面积(平方英尺)
RoofMatl 屋顶材料 GarageQual 车库质量
Exterior1st 房屋的外部覆盖物 GarageCond 车库状况
Exterior2nd 房屋的外部覆盖物(如果有多种材料) PavedDrive 铺砌车道
MasVnrType 砌体单板类型 WoodDeckSF 以平方英尺为单位的木质甲板面积
MasVnrArea 砌体单板面积(平方英尺) OpenPorchSF 开放式门廊面积(平方英尺)
ExterQual 外部质量:外部材料质量 EnclosedPorch 以平方英尺为单位的封闭式门廊面积
ExterCond 外部材料的现状 3SsnPorch 三季门廊面积(平方英尺)
Foundation 粉底类型 ScreenPorch 以平方英尺为单位的屏幕门廊面积
BsmtQual 地下室的高度 PoolArea 泳池面积(平方英尺)
BsmtCond 地下室的一般状况 PoolQC 泳池质量
BsmtExposure 花园层地下室墙壁 Fence 围栏质量
BsmtFinType1 地下室成品区的质量 MiscFeature 其他类别中未涵盖的其他功能
BsmtFinSF1 类型
 1 完成平方英尺
MiscVal 杂项
BsmtFinType2 第二完成区域的质量(如果存在) MoSold 销售月份
BsmtFinSF2 类型
 2 完成平方英尺
YrSold 销售年份
BsmtUnfSF 地下室面积未完成的平方英尺 SaleType 销售类型
TotalBsmtSF 总面积:地下室总平方英尺 SaleCondition 销售条件
Heating 加热类型 SalePrice 销售价格 -
 以美元为单位的房产销售价格。尝试预测的目标变量。
HeatingQC 加热质量和条件



 2   读取数据

接着把数据读取到Python中进行预处理,读取数据代码如下:

import osimport numpy as npimport pandas as pdimport matplotlib.pyplot as plt%matplotlib inline
os.chdir(r'F:\公众号\房价预测')train_date = pd.read_csv('train.csv')train_date.head(2)

参数解释:

import:导入库。

os.chdir:设置数据读取的位置。

pd.read_csv:读取csv格式的数据。

data.head(2):打印data数据的前2行。

得到结果:


 3   目标变量分析

然后删除无意义的标签列,并看下目标变量的分布,代码如下:

#删除Id变量train_date = train_date.drop(columns='Id')test_date = test_date.drop(columns='Id')#因变量直方图sns.distplot(train_date['SalePrice'])

得到结果:

可以发现房屋的销售价格集中在10万美元-20万美元之间,存在明显的偏斜长尾。

接着看下目标变量的描述性统计值,代码如下:

train_date['SalePrice'].describe()

得到结果:

count      1460.000000mean     180921.195890std       79442.502883min       34900.00000025%      129975.00000050%      163000.00000075%      214000.000000max      755000.000000Name: SalePrice, dtype: float64

可以发现房屋销售价格的均值为18万美元,最小值为3万4美元,最大值为75万美元。


 4   区分数值变量和类别变量

接着看下区分数值变量和类别变量的代码:

num_features = []catg_features = []for col in train_date.columns:    if train_date[col].dtype == 'object':        catg_features.append(col)    else:        num_features.append(col)

其中catg_features存储的就是类别变量,num_features存储的就是数值变量。


 5   数值变量和房价之间的关系

最后看下不同数值指标和房价之间的散点图和拟合图,代码如下:

#读取特征中文标签x_label = pd.read_csv('x_label.csv', encoding='gbk')x_label.head(2)for i in num_features:    #打印特征中英文名称    print('特征:', i, '(', x_label[x_label['英文名'] == i]['对应中文'].values[0], ')')    #画散点图    sns.scatterplot(x=i, y='SalePrice', data=train_date, alpha=0.5)    #尝试画拟合线    try:        z = np.polyfit(train_date[i], train_date['SalePrice'], 1)        p = np.poly1d(z)        plt.plot(train_date[i], p(train_date[i]))    except:        pass    plt.show()    print('==================================================')    print('')

得到结果(由于循环把全量数值变量进行了分析,这里只放一个指标进行展示,在后文再展开说明):

可以发现在地上房间总数指标中,值越大房子的销售价格整体趋势是越高的。

二、影响房价指标画像分析-明细

 1   建筑类别

建筑类别指标不同值对应的房屋价格趋势如下:

可以发现不同类别的建筑在房屋价格上的分布有一定的区别,但是整体趋势不是很明显。


 2   整体质量

整体质量指标不同值对应的房屋价格趋势如下

可以发现整体质量级别越高,房屋价格越高,两者之间存在很明显的线性关系,说明这个变量对因变量的影响较大。


 3   整体状况评级

整体状况评级指标不同值对应的房屋价格趋势如下

可以发现整体状况评级排名靠前的房子大体来看价格偏高,但趋势不是特别明显。


 4   建造年份

建造年份指标不同值对应的房屋价格趋势如下

可以发现从1880年到2000年,房子价格呈明显上升的趋势。


 5   改造日期

改造日期指标不同值对应的房屋价格趋势如下

可以发现改造日期从1950年到2010年,房子价格呈上升趋势。


 6   销售月份

销售月份指标不同值对应的房屋价格趋势如下

可以发现不同销售月份房屋价格的变化不是很明显。


 7   总面积

总面积(地下室总平方英尺)指标不同值对应的房屋价格趋势如下

可以发现总面积越大,整体来看房子的销售价格越高。


 8   一楼面积

一楼面积(平方英尺)指标不同值对应的房屋价格趋势如下

可以发现整体来看一楼面积越大,房屋销售价格越高。


 9   二楼面积

二楼面积(平方英尺)指标不同值对应的房屋价格趋势如下

可以发现二楼面积越大,房子销售价格整体来看越大。

 10   低质量成品

低质量成本指标不同值对应的房屋价格趋势如下

可以发现低质量成本指标和房屋销售价格之间没有很明显的关系。

 11   居住面积

居住面积(地面生活区平方英尺)指标不同值对应的房屋价格趋势如下

可以发现整体来看居住面积越大,房屋销售价格越高。

 12   地下室全套浴室

地下室全套浴室指标不同值对应的房屋价格趋势如下

可以发现整体来看地下室全套浴室指标值越大,房屋销售价格越高。

 13   地下室半浴室

地下室半浴室指标不同值对应的房屋价格趋势如下

可以发现地下室半浴室指标值对房屋销售价格影响不大。


 14   地上浴室数量

地上浴室数量指标不同值对应的房屋价格趋势如下

可以发现地上浴室数量越多,房屋整体售价越高。


 15   地下室以上的卧室数量

地下室以上的卧室数量指标不同值对应的房屋价格趋势如下

可以发现地下室以上的卧室数量越多,整体房价越高。

 16   厨房数量

厨房数量指标不同值对应的房屋价格趋势如下

可以发现整体来看厨房数量越多,房屋售价越低。


 17   地上房间总数

地上房间总数指标不同值对应的房屋价格趋势如下

可以发现地上房间总数越多,整体房价越高。


 18   壁炉数量

壁炉数量指标不同值对应的房屋价格趋势如下

 可以发现壁炉数量越多,整体房价越高。


 19   车库建成年份

车库建成年份指标不同值对应的房屋价格趋势如下

可以发现车库建成年份越靠后,整体房价越高。


 20   车库容量大小

车库容量大小指标不同值对应的房屋价格趋势如下

可以发现车库容量越大,整体房价越高。


 21   车库面积

车库面积指标不同值对应的房屋价格趋势如下

可以发现车库面积越大,整体房价越高。


 22   木制甲板面积

木制甲板面积指标不同值对应的房屋价格趋势如下

可以发现木制甲板面积越大,整体房价越高。


 23   开放式门廊面积

开放式门廊面积指标不同值对应的房屋价格趋势如下

可以发现开放式门廊面积越大,整体房价越高。


 24   封闭式门廊面积

封闭式门廊面积指标不同值对应的房屋价格趋势如下

可以发现封闭式门廊面积越大,整体来看房价越低。


 25    屏幕门廊面积

屏幕门廊面积指标不同值对应的房屋价格趋势如下

可以发现屏幕门廊面积和房价关系不大。


 26   泳池面积

泳池面积指标不同值对应的房屋价格趋势如下

可以发现泳池面积越大,整体来看房价越高。


三、影响房价指标画像分析-总结
总结的影响房价指标画像如下:

至此,数值型的房价影响指标已讲解完毕。后续文章会对类别型的房价影响指标和房价趋势进行预测,敬请期待

往期回顾:
白羊座
520表白代码合集
黑客帝国中的代码雨
逻辑回归项目实战-附Python实现代码
Python绘制米老鼠,为余生请多指教打call
Python常用函数合集1—clip函数、range函数等



扫一扫关注我

19967879837

投稿微信号、手机号

请使用浏览器的分享功能分享到微信等