kaggle房地产价格预测

本文是Kaggle房地产价格预测项目的分析,通过读取和分析数据,选择关键特征如OverallQual、YearBuilt、TotalBsmtSF等。利用关系矩阵和散点图验证特征与房价的相关性,最终选择随机森林回归算法进行模型训练。
摘要由CSDN通过智能技术生成

Kaggle官方平台所有提交kernel,包含结果,详见网址https://www.kaggle.com/c/house-prices-advanced-regression-techniques/notebooks
本文选用比较少见的中文kernel房价预测kaggle入门项目,提交之后排名1355

1. 读取数据

# 导入需要的模块
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# 用来绘图的,封装了matplot
# 要注意的是一旦导入了seaborn,
# matplotlib的默认作图风格就会被覆盖成seaborn的格式
import seaborn as sns       

from scipy import stats
from scipy.stats import  norm
from sklearn.preprocessing import StandardScaler
import warnings
warnings.filterwarnings('ignore')
%matplotlib inline   # 作图用

读取数据

data_train = pd.read_csv("../input/train.csv")

查看前5行

data_train.head()

分析“SalePrice”

data_train['SalePrice'].describe()

在这里插入图片描述
通过上面的结果可以知道“SalePrice”没有无效或者其他非数值的数据,下面通过图示化来进一步展示“SalePrice”

sns.distplot(data_train['SalePrice'])

在这里插入图片描述
可以看到与使用matplotlib作的直方图最大的区别在于有一条密度曲线(KDE),可以通过设置参数去掉这条默认的曲线。 另外由上图可以知道房价呈现正态分布。下面还可以看到两个统计学中的概念: 峰度(Kurtosis)和 偏度(Skewness)。

峰度:峰度(Kurtosis)是描述某变量所有取值分布形态陡缓程度的统计量。
它是和正态分布相比较的。

  • Kurtosis=0 与正态分布的陡缓程度相同。
  • Kurtosis>0 比正态分布的高峰更加陡峭——尖顶峰
  • Kurtosis<0 比正态分布的高峰来得平台——平顶峰
  • 计算公式:β = M_4 /σ^4

偏度:偏度(Skewness)是描述某变量取值分布对称性的统计量。

  • Skewness=0 分布形态与正态分布偏度相同
  • Skewness>0 正偏差数值较大,为正偏或右偏。长尾巴拖在右边。
  • Skewness<0 负偏差数值较大,为负偏或左偏。长尾巴拖在左边。
  • 计算公式: S= (X^ - M_0)/δ
  • Skewness越大,分布形态偏移程度越大。
#偏度和峰度
print("Skewness: %f" % data_train['SalePrice'].skew())
print("Kurtosis: %f" % data_train['SalePrice'].kurt())

在这里插入图片描述

2. 分析特征数据

2.1 数据再分类

为了让我们对数据的分析更具科学性,我们可以新建一个excel文件,具体需要记录的数据如下:

  • Variable:变量名
  • Data Type:各变量的数据类型,分为“数值型–0”和“类别型–1”
  • Segment:变量的类型。分为:“building–0”、“space–1”、“location–2”。具体解释如下:
    • building:比如房屋材料、造型等与房屋物理特性相关的特征(e.g. ‘OverallQual’)
    • space:即与房屋空间有关的特征,如面积(e.g. ‘TotalBsmtSF’)
    • location:如地段、道路情况等(e.g. ‘Neighborhood’)
    • Expectation:表示我们认为该变量对于“SalePrice”的影响程度,划分为“High—3”,“Medium—2”,“Low—1”
    • Conclusion:与“Expectation”类似,这个表示我们在观察完数据后得出的结论,其实也可和“Expectation”相同。
    • Comments:其他关于该变量的一些看法

2.2 提取主要特征

对整理后的数据进一步分析来选出主要影响售价的特征。

  • Utilities:第一个映入我眼帘的是Utilities,因为公共设施越齐全肯定越贵嘛,但是我又观察了具体的训练数据集,发现每一个房屋都是“AllPub”,即都具备基础的公共设施,所以这一项不能入选。
  • LotArea:英文理解能力有限,并不知道这什么意思,姑且认为是“地皮面积”,很好理解,面积越大肯定越贵
  • Neighborhood:这应表示房屋所处市区的位置,这个必选啊,合不合适在后面再具体分析。
  • OverallQual:对房子的整体材料和装修进行评估
  • YearBuilt:建造年份
  • TotalBsmtSF&GrLivArea:训练数据中有很多特征都涉及到了面积,所以没必要每个都考虑进去,为了简化,选择了TotalBsmtSF(地下室面积)&GrLivArea(不含车库的室内面积)
  • Heating:供暖方式应该很重要,但是数据显示基本上都是GasA类型,所以不予考虑,
  • CentralAir:中央空调这个可以考虑一下,因为有的有,有的没有。
  • MiscVal:在其他类别中未涉及的其他功能的价值,一般都是“shedÿ
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值