机器学习预测房价 (1)-数据可视化

参考:

下载HousePrices Kernel.ipynb

另存为py文件。

安装:
pip install seaborn
pip install xgboost

可视化(Exploratory Visualization)

由于原始特征较多,这里只选择建造年份 (YearBuilt) 来进行可视化:

plt.figure(figsize=(15,8))
sns.boxplot(train.YearBuilt, train.SalePrice)

在这里插入图片描述

一般认为新房子比较贵,老房子比较便宜,从图上看大致也是这个趋势,由于建造年份 (YearBuilt) 这个特征存在较多的取值 (从1872年到2010年),直接one hot encoding会造成过于稀疏的数据,因此在特征工程中会将其进行数字化编码 (LabelEncoder) 。

plt.figure(figsize=(12,6))
plt.scatter(x=train.GrLivArea, y=train.SalePrice)
plt.xlabel("GrLivArea", fontsize=13)
plt.ylabel("SalePrice", fontsize=13)
plt.ylim(0,800000)

在这里插入图片描述

浏览特征字段

看到这些词汇,感觉增长了见识。不怕字段多,多了可以少嘛!来看看这些特征的中文含义。(有点多,要不挑几个看看好了,比如地上面积,地下室面积,车库大小等)

SalePrice: 销售价格
MSSubClass: 建筑类
LotFrontage: 直线距离
LotArea:土地面积(平凡英尺)
Street: 路的类型
Alley : 胡同类型
LotShape:房产的形状(是否规则)
LandCounter: 房产的平坦度
Utitles: 公共设备 设施
LotConfig: 划分配置
LandSlope:斜坡程度
Neighborhood: 在Ames city范围的物理位置
Condition1:接近各种条件
Condition2: 接近各种条件
BldgType :住宅的类型
HouseStyle :住宅的风格
OverallQual :给房屋整体材料和装修评分
OverallCond: 为房屋的整体状况评分
YearBuilt: 建造日期
YearRemodAdd: 重新改造日期
RoofStyle :屋顶的类型
RoofMatl :屋顶材料
Exterior1st:房屋外部覆盖物
Exterior2nd:房屋外部覆盖物(不止一种)
MasVnrType :砌体单板类型
MasVnrArea :单位买诺记的砌体木皮面积
ExterQual : 外部材料的质量评价
ExterCond: 评估外部材料的现状
Foundation :基础类型
BsmtQual : 评估地下室的高度
BsmtCond :评估地下室的一般状况
BsmtExposure :出口或花园墙壁曝光程度
BsmtFinType1 :地下室完工面积比
BsmtFinSF1 :类型1完成平方英尺
BsmtFinType2 :地下室完工面积比(如果不止一种)
BsmtFinSF2 :类型2完成平方英尺
BsmtUnfsF :未完成的地下室平方英尺
TotalBsmtSF :地下室总面积
Heating QC: 热暖质量和条件
CentraAir : 是否有中央空调
Electrical :电气系统
1stFlrSF:一楼平方英尺
2ndFlrSF:二楼平方英尺
LowQualFinSF:低质量完成平方英尺(所有地板)
GrLivArea:高于(地面)居住面积的平方英尺
BsmtFullBath:地下室完整的浴室
BsmtHalfBath:地下室半浴室
FullBath:高档浴室
HalfBath:高于等级的半浴室
Bedroom :地上的卧室
Kitchen: 高档厨房
KitchenQual :厨房质量评估
TotRmsAbvGrd :高档卧室(不包括浴室)
Functional :家庭功能
FireplaceQu :壁炉数量
FireplaceQu :壁炉质量
GarageType : 车库位置
GarageYrBlt :车库建成年份
GarageFinish : 车库的内部完成
GarageCars: 车容量为单位的车库大小
GarageArea : 以平方英尺为单位的车库大小
GarageQua: 车库质量
GarageCond :车库条件
PavedDrive :铺设车道
WoodDeckSF:木甲板面积(平方英尺的)
OpenPorchSF:打开门廊面积(以平方英尺)
EnclosedPorch:封闭门廊面积(以平方英尺)
3SsnPorch:门廊(三个平方英尺的)
ScreenPorch:屏幕门廊面积(平方英尺的)
PoolArea:以平方英尺为单位的泳池面积
PoolQC:泳池质量
Fence : 栅栏质量
MiscFeature :杂项功能未在其他类别中涵盖
MiscVal:杂项功能的价值
MoSold:月销量(MM)
YrSold:已售出年份(YYYY)
SaleType:销售类型
SaleCondition:销售条件

看看数据的统计是否有缺失值

train.info()

字段太多,截取了开始的部分,共1460行数据记录,如果统计的非空记录少于1460,说明有缺省值。
在这里插入图片描述

print(train["SalePrice"].describe())
sns.distplot(train["SalePrice"])

在这里插入图片描述
如何选择特征?看相关系数

sns.heatmap(train.corr(),vmax=0.8,square=True)
在这里插入图片描述
与房价saleprice越相关,颜色越浅,
人眼观察:从图中看出,OverallQual,GrLiveArea,TotalBsmtSF, 1stFlrSF,GarageCars.都是相关系数比较靠前。

凭眼力,也许不好分出10个特征。

corr_matrix = train.corr()
print(corr_matrix["SalePrice"].sort_values(ascending = False))

在这里插入图片描述

根据数字大小,得出相关性前十的特征:OveralQual , GrLivArea, GarageCars , GarageArea ,TotalBsmtSF, 1stFlrSF ,FullBath, TotRmsAbvGrd ,YearBuilt 。至此拿这十个特征就可以开始训练

数据清洗 (Data Cleaning)

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风口上的传奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值