Ame房价回归-top10%方案

数据介绍

数据来源于kaggle House Prices

数据有以下几个维度,其中36个为特征,价格为标签

特征 定义
SalePrice 物业的销售价格以美元计算。这是您尝试预测的目标变量。
MSSubClass 建筑类
MSZoning 一般分区分类
LotFrontage 街道的线性脚连接到财产
LotArea 地块尺寸,平方英尺
Street 道路通道的类型
Alley 胡同通道的类型
LotShape 一般的财产形状
LandContour 物业的平整度
Utilities 可用的实用程序类型
LotConfig 批量配置
LandSlope 物业坡度
Neighborhood: Ames市区内的物理位置
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 加热类型
HeatingQC 加热质量和条件
CentralAir 中央空调
Electrical 电气系统
1stFlrSF 一楼平方英尺
2ndFlrSF 二楼平方英尺
LowQualFinSF 低质量的平方英尺(所有楼层)
GrLivArea 以上(地面)生活区平方英尺
BsmtFullBath 地下室齐全的浴室
BsmtHalfBath 地下室半浴室
FullBath 满级以上的浴室
HalfBath 半年级以上
Bedroom 地下室以上的卧室数量
Kitchen 厨房数量
KitchenQual 厨房质量
TotRmsAbvGrd 以上级别的房间总数(不包括浴室)
Functional 家庭功能评级
Fireplaces 壁炉数量
FireplaceQu 壁炉质量
GarageType 车库位置
GarageYrBlt 年车库建成
GarageFinish 车库的内部装饰
GarageCars 车库容量的车库大小
GarageArea 车库的面积,平方英尺
GarageQual 车库质量
GarageCond 车库状况
PavedDrive 铺好的车道
WoodDeckSF 平方英尺的木甲板面积
OpenPorchSF 平方英尺的开放式门廊区域
EnclosedPorch 封闭的门廊面积,平方英尺
3SsnPorch 三个季节的门廊面积,平方英尺
ScreenPorch 屏幕门廊面积,平方英尺
PoolArea 泳池面积,平方英尺
PoolQC 泳池质量
Fence 栅栏质量
MiscFeature 其他类别未涵盖的其他功能
MiscVal 杂项功能的价值
MoSold 已售出月份
YrSold 已售出年份
SaleType 销售类型
SaleCondition 销售条件

读取数据

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
from scipy.stats import norm, skew
train=pd.read_csv('train.csv')
test=pd.read_csv('test.csv')
train.shape,test.shape
((1460, 81), (1459, 80))
train.describe()
Id MSSubClass LotFrontage LotArea OverallQual OverallCond YearBuilt YearRemodAdd MasVnrArea BsmtFinSF1 ... WoodDeckSF OpenPorchSF EnclosedPorch 3SsnPorch ScreenPorch PoolArea MiscVal MoSold YrSold SalePrice
count 1460.000000 1460.000000 1201.000000 1460.000000 1460.000000 1460.000000 1460.000000 1460.000000 1452.000000 1460.000000 ... 1460.000000 1460.000000 1460.000000 1460.000000 1460.000000 1460.000000 1460.000000 1460.000000 1460.000000 1460.000000
mean 730.500000 56.897260 70.049958 10516.828082 6.099315 5.575342 1971.267808 1984.865753 103.685262 443.639726 ... 94.244521 46.660274 21.954110 3.409589 15.060959 2.758904 43.489041 6.321918 2007.815753 180921.195890
std 421.610009 42.300571 24.284752 9981.264932 1.382997 1.112799 30.202904 20.645407 181.066207 456.098091 ... 125.338794 66.256028 61.119149 29.317331 55.757415 40.177307 496.123024 2.703626 1.328095 79442.502883
min 1.000000 20.000000 21.000000 1300.000000 1.000000 1.000000 1872.000000 1950.000000 0.000000 0.000000 ... 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 2006.000000 34900.000000
25% 365.750000 20.000000 59.000000 7553.500000 5.000000 5.000000 1954.000000 1967.000000 0.000000 0.000000 ... 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 5.000000 2007.000000 129975.000000
50% 730.500000 50.000000 69.000000 9478.500000 6.000000 5.000000 1973.000000 1994.000000 0.000000 383.500000 ... 0.000000 25.000000 0.000000 0.000000 0.000000 0.000000 0.000000 6.000000 2008.000000 163000.000000
75% 1095.250000 70.000000 80.000000 11601.500000 7.000000 6.000000 2000.000000 2004.000000 166.000000 712.250000 ... 168.000000 68.000000 0.000000 0.000000 0.000000 0.000000 0.000000 8.000000 2009.000000 214000.000000
max 1460.000000 190.000000 313.000000 215245.000000 10.000000 9.000000 2010.000000 2010.000000 1600.000000 5644.000000 ... 857.000000 547.000000 552.000000 508.000000 480.000000 738.000000 15500.000000 12.000000 2010.000000 755000.000000

8 rows × 38 columns

将test的Id单独保存,train和test的Id删除

testid=test['Id']
train=train.drop('Id',axis=1)
test=test.drop('Id',1)

特征工程

观察数据分布

地面以上生活面积和价格的关系

在购置房屋时候,一个影响房屋的关键因素就是房屋的面积,那么,可以从房屋面积开始探索

# 将价格作为着色的标准,绘制散点图
plt.scatter(train['GrLivArea'],train['SalePrice'],c=train['SalePrice'])
plt.xlabel('GrLivArea')
plt.ylabel('SalePrice')
plt.show()

在这里插入图片描述

显然,存在2个异常值点(价格低于30k,面积大于4000),可以直接剔除,这对模型的拟合不会产生不好的影响

train = train.drop(train[(train['GrLivArea']>4000) & (train['SalePrice']<300000)].index)
plt.scatter(train['GrLivArea'],train['SalePrice'],c=train['SalePrice'])
plt.xlabel('GrLivArea')
plt.ylabel('SalePrice')
plt.show()

在这里插入图片描述

房价的总趋势

通过绘制房价的趋势图,观察房价的分布

from scipy.stats import norm, skew
# 并绘制其概率密度曲线
sns.distplot(train['SalePrice'])
(mu, sigma) = norm.fit(train['SalePrice'])
plt.legend(['Normal dist. ($\mu=$ {:.2f} and $\sigma=$ {:.2f} )'.format(mu, sigma)],
            loc='best')
plt.ylabel('Frequency')
plt.title('SalePrice distribution')
plt.show()

在这里插入图片描述

scipy.norm是指概率密度函数: f ( x ) = e x 2 / 2 x ⋅ π f(x)=\frac{e^{x^2/2}}{ \sqrt{x} \cdot \pi} f(x)=x πex2/2

scipy.skew是指偏度: g 1 = m 3 m 2 3 / 2 g_1=\frac{m_3}{m_2^{3/2}} g

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值