文章目录
任务要求
影响房价的因素有很多,在本题的数据集中,有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=N∑i=1N(yi−y^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(

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





