Kaggle房价预测

作为Kaggle竞赛中的经典入门题目,我主要在kernels中学习其他人分析和处理数据的流程,首先是通过各类plt的图表,分析数据特征和房价之间的相关性

载入数据集

df_train = pd.read_csv('./input/train.csv')

df_test = pd.read_csv('./input/test.csv')

房价整体分布概率直方图

print(df_train['SalePrice'].describe())

sns.distplot(df_train['SalePrice'])

plt.show()

根据直方图可以看出整体房价大致的区间分布

总平方英尺,散点图

var = 'GrLivArea'

# axis: 需要合并链接的轴,0是行,1是列

data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)

data.plot.scatter(x=var, y='SalePrice', ylim=(0, 800000))

plt.show()

在常规印象中,面积越大房价越贵,根据散点图可以看出基本符合规律,除了少数离群点。

建造年份,箱线图

var = 'YearBuilt'

data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)

f, ag = plt.subplots(figsize=(16, 8))

fig = sns.boxplot(x=var, y="SalePrice", data=data)

fig.axis(ymin=0, ymax=800000)

plt.xticks(rotation=90)

plt.show()

一般规律是房屋的建造年份越新,房价越高。根据箱线图的走势,基本符合预期。但也有部分年份比较旧的房屋房价特别高,推测可能是历史老屋,或者古董别墅之类的。

相关系数,热点图

corrmat = df_train.corr()

f, ax = plt.subplots(figsize=(12, 9))

sns.heatmap(corrmat, vmax=.8, square=True)

plt.show()

在前面单独分析了几个属性后,我们现在查看train训练集中所有属性相关系数的热点图。

相关系数矩阵,获取相关性最高的前10个特征

k = 10

cols = corrmat.nlargest(k, 'SalePrice')['SalePrice'].index

cm = np.corrcoef(df_train[cols].values.T)

sns.set(font_scale=1.25)

hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={'size': 10},

yticklabels=cols.values, xticklabels=cols.values)

plt.show()

在热点图大致了解所有属性的相关性后,接着按照相关系数排序,取前10个特征输出相关矩阵

特征筛选

根据Kaggle官方提供的字段说明里,GarageCars和GarageArea描述的是车库容纳车辆数量和车库面积,描述的基本是同一件事情,而且相关系数分别是0.64和0.62,因此只取其中的GrLivArea

离群点检测

观察GrLivArea的散点图,最右侧2个点明显不符,因此在训练数据集中删除掉

df_train.sort_values(by='GrLivArea', ascending=False)[:2]

print("drop 2 outliers")

print(df_train.sort_values(by='GrLivArea', ascending=False)[:2])

df_train = df_train.drop(df_train[(df_train['GrLivArea'] > 4000) & (df_train['SalePrice'] < 300000)].index)

随机森林,建模,预测

# 根据相关度选择特征

predictor_cols = ['OverallQual', 'GrLivArea', 'GarageCars', 'TotalBsmtSF', 'TotRmsAbvGrd', 'YearBuilt']

train_X = df_train[predictor_cols]

my_model = RandomForestRegressor()

my_model.fit(train_X, train_y)

# GarageCars,TotalBsmtSF存在空值,

df_test['GarageCars'] = df_test['GarageCars'].fillna(0)

df_test['TotalBsmtSF'] = df_test['TotalBsmtSF'].fillna(0)

test_X = df_test[predictor_cols]

predicted_prices = my_model.predict(test_X)

# 取整

print(predicted_prices)

my_submission = pd.DataFrame({'Id': df_test.Id, 'SalePrice': predicted_prices})

my_submission.to_csv('./submission.csv', index=False)

完整代码,数据集下载

原文:https://www.cnblogs.com/wanli002/p/10886872.html

python房价预测模型_python随机森林房价预测相关推荐

  1. Python 利用SVM,KNN,随机森林进行预测

    Python 利用SVM,KNN,随机森林进行预测 工具:Pycharm,Win10,Python3.6.4 上图是我们的数据文件,最后一列是附近有无超市的标签,1代表有,-1代表没有.可以发现数据维 ...

  2. python回归分析预测模型_Python与线性回归模型预测房价

    目录提出问题 理解数据 数据清洗 构建模型 模型评估 总结 1. 提出问题 房价和什么因素相关?进而得知如何挑选房子? 2. 理解数据 2.1 导入数据 从Kaggle 中下载 2.2 导入数据 im ...

  3. python股票交易模型_python随机森林模型简单股票涨跌预测

    import numpy as np import pandas as pd import tushare as ts import matplotlib.pyplot as plt from pyl ...

  4. Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付

    全文链接:http://tecdat.cn/?p=26184 在此数据集中,我们必须预测信贷的违约支付,并找出哪些变量是违约支付的最强预测因子?以及不同人口统计学变量的类别,拖欠还款的概率如何变化?( ...

  5. matlab 随机森林算法_(六)如何利用Python从头开始实现随机森林算法

    博客地址:https://blog.csdn.net/CoderPai/article/details/96499505 点击阅读原文,更好的阅读体验 CoderPai 是一个专注于人工智能在量化交易 ...

  6. 使用IBM SPSS Modeler进行随机森林算法预测

    IBM SPSS产品系列最主要的两款软件为IBM SPSS Statistics和IBM SPSS Modeler. IBM SPSS Statistics主要用于统计分析,如均值比较.方差分析.相关 ...

  7. Python进行决策树和随机森林

    Python进行决策树和随机森林 一.决策树 第一步,导入库: 第二步,导入数据: 第三步,数据预处理: 第四步,决策树: 第五步,决策树评价: 第六步,生成决策树图. 二.随机森林 第一步,随机森林 ...

  8. 基于python的随机森林回归实现_PYTHON | 随机森林实战(代码+详解)

    大家好,我是菜鸟君,之前跟大家聊过R语言的随机森林建模,指路 R语言 | 随机森林建模实战(代码+详解),作为刚过完1024节日的码农算法工程师来说,怎么可能只会用一种语言呢?今天就来说说Python ...

  9. #第23篇分享:一个北京二手房价格数据挖掘实例(python语言:sklearn随机森林)

    #本次是做一个北京二手房的数据挖掘案例,主要是汇总一下学过的知识,并且通过实例加深一下印象,话不多说,开干: 目的:预测二手房的价格: 工具:语言python:爬虫模块scrapy,数据清洗:xpat ...

最新文章

  1. Kotlin的几个面试题
  2. 机器的深度学习究竟有多“深”?
  3. 滴滴专车——司机提现流程
  4. POJ2263 ZOJ 1952
  5. 三方面搞定http协议之“状态码”
  6. jupyter中保存图片_露哥的摸爬滚打| Jupyter从零开始
  7. Linux下查看/管理当前登录用户及用户操作历史记录
  8. 使用TensorFlow,GPU和Docker容器进行深度学习
  9. NAS: One-Shot
  10. @Autowired @Qualifier
  11. python类:class创建、数据方法属性及访问控制(下划线)
  12. NSIS 注册DLL OCX
  13. 获取网页标题的小图标
  14. 数据科学如此火爆,为什么找个工作还那么难?
  15. 你见过出身最奇特的程序员是什么样的?
  16. Teradata天睿公司任命王波为大中华区总裁
  17. 退休当月要干到月底吗_到了法定退休年龄,生日当月去办理退休,还是要提前一个月办理?...
  18. tekton入门 - tasks
  19. 一起谈.NET技术,.NET十年(下)
  20. 华维单片机编程科普| 一文读懂稳压二极管

热门文章

  1. 个人信贷评估模型研究
  2. Datawhale组队学习——Pytorch进阶训练技巧
  3. nodejs+vue+elementui鲜花销售商城管理系统410
  4. CUDA安装出现图形驱动程序安装失败
  5. Ubuntu14.04+cuda6.5+opencv2.4.9+caffe配置记录
  6. 一信通短信接口对接_短信接口对接流程
  7. 极智开发 | 阿里云ECS本地开发环境搭建
  8. win10系统VMware虚拟机安装linux使用NAT模式上网配置-命令行上网
  9. 基于vue+el-upload图片上传(自用屎山)
  10. Problem L: 卡拉兹猜想