Kaggle-房价预测

本文介绍了Kaggle房价预测的完整流程,包括数据观察、数据清洗、特征工程和模型建立。通过对数据进行log转换处理偏斜分布,删除不重要特征,填充或删除缺失值,进行特征编码和数值变量标准化。采用ElasticNet模型,通过交叉验证找到最佳参数。同时,结合随机森林进行模型融合,最终得到28%的预测准确率。
摘要由CSDN通过智能技术生成

一. 数据观察

又是一道Kaggle的经典题目。首先观察一下数据:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import ensemble, tree, linear_model
from sklearn.ensemble import RandomForestRegressor
%matplotlib inline

train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv') 
train_data.shape,test_data.shape

训练集中共有1460个样本以及81个特征,而测试集中有1459个样本80个特征(因为SalePrices是需要预测的)。

首先我们将测试集中的房价单独提取出来,作为一会儿模型训练中的因变量:

train_y = train_data.pop('SalePrice')
y_plot = sns.distplot(train_y)

顺便看一看y的分布曲线:


很明显,数据是右斜的,为了使数据的呈现方式接近我们所希望的前提假设,从而更好的进行统计推断,将数据log化,得到:

train_y = np.log(train_y)
y_plot = sns.distplot(train_y)

此时因变量基本呈正态分布。


由于特征实在太多,我们选用其中几个对房价进行观察

1.YearBuilt和SalePrice的关系

var = 'YearBuilt'
data = pd.concat([train_y_skewed, train_data[var]], axis=1)
f, ax = plt.subplots(figsize=(16, 8))
fig = sns.boxplot(x=var, y="SalePrice", data=data)
fig.axis(ymin=0, ymax=800000);plt.xticks(rotation=90);



可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值