Kaggle竞赛——房价预测(一)

文章介绍了对房价预测数据集进行预处理和特征工程的步骤,包括删除离群值、对数变换目标变量、处理缺失值和转换特征类型,以优化模型性能,降低RMSE评价指标。

任务要求

影响房价的因素有很多,在本题的数据集中,有79个解释变量几乎描述了爱荷华州艾姆斯(Ames, Iowa)住宅的方方面面,要求预测每套房屋最终的销售价格。

数据说明

  train.csv - 训练集

  test.csv - 测试集

  data_description.txt - 每列的完整描述,最初由 Dean De Cock 准备,但经过稍微编辑以匹配此处使用的列名

  sample_submission.csv - 根据销售年份和月份、地块面积和卧室数量进行线性回归的基准提交

在这里插入图片描述

最终目标

要求预测每栋房屋的销售价格,即对于测试集test.csv中的每个 Id,预测对应 SalePrice 变量的值。**

评价指标:RMSE

即根据预测值的对数和观察到的房价对数之间的均方根误差对提交结果进行评估。公式如下
R M S E = ∑ i = 1 N ( y i − y ^ i ) 2 N   RMSE = \sqrt{\frac {\sum_{i=1}^N{(y_i-\hat{y}_i)^2}} N}\, RMSE=Ni=1N(yiy^i)2

实施流程

  • 1)了解、分析问题;
  • 2)获取训练集和测试集,做一些数据预览工作;
  • 3)进行数据预处理和特征工程;
  • 4)建模、改进模型、做出预测;
  • 5)提交结果。

代码实现

导包

import warnings
warnings.filterwarnings("ignore")   # 忽略警告信息

from scipy.stats import norm, skew  # 获取统计信息
from scipy import stats
import numpy as np
import pandas as pd    # 数据处理包
import seaborn as sns  # 绘图包
color = sns.color_palette()
sns.set_style('darkgrid')
import matplotlib.pyplot as plt 
%matplotlib inline

pd.set_option('display.float_format', lambda x: '{:.3f}'.format(x))  # 限制浮点输出到小数点后3位

import os
print('\n'.join(os.listdir('./input')))  # 列出目录中可用的文件

读取并查看数据集

# 加载数据
train = pd.read_csv('./input/train.csv')
test = pd.read_csv('./input/test.csv')

# 检查样本和特征的数量
print("删除Id列前训练集大小: {} ".format(train.shape))
print("删除Id列前测试集大小: {} ".format(test.shape))

train.head(5)
删除Id列前训练集大小: (1460, 81) 
删除Id列前测试集大小: (1459, 80)

保存并删除原有Id列

#保存Id列
train_ID = train['Id']
test_ID = test['Id']
# 删除原数据集的Id列
train.drop("Id", axis=1, inplace=True)
test.drop(
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值