本文内容来源于《动手深度学习》一书。跟着沐神做kaggle比赛。
1、比赛介绍:
该任务是预测房屋销售价格的基础上的信息,如卧室的数量,生活区,位置,附近的学校,和卖方总结。
数据包括2020年在加州售出的房屋,测试数据集中售出的房屋排在训练数据集中之后。此外,私人排行榜房屋也在公开排行榜房屋之后出售。
数据如下图所示,通过下面的网址,下载训练数据和测试数据:
比赛链接.
2、导入数据:
在jupyter notebook里编写的,下面的格式也是:
使用pandas读入数据:
%matplotlib inline
import numpy as np
import pandas as pd
import torch
from torch import nn
from d2l import torch as d2l
train_data = pd.read_csv(r"../data/kaggle_house_pred/train.csv")
test_data = pd.read_csv(r"../data/kaggle_house_pred/test.csv")
# print(train_data.columns)
# print(test_data.columns)
print(train_data.shape) # (47439, 41)
print(test_data.shape) # (31626, 40),少了一个出售价格,需要我们预测
(47439, 41)
(31626, 40)
其中trian_data比test_data多了一列,这一列就是我们要预测的房价。
[i for i in train_data.columns if i not in test_data.columns]
[‘Sold Price’]
从上面可以看出,我们要预测的房价列名为Sold Price
3、项目构建:
打印训练数据的前四列,看看特征,以及相应标签,以便我们选择特征:
train_data.iloc[0:4]
(这里打印很乱,截图)
可以发现,一共有41列,也就是41个特征。额,这么说也不对,其中还有一列是标签,一列是id。
特征选择:
特征选择是个挺麻烦的事,直接关系到后面模型预测的结果,而且要是特征选择的特别多,而我们的数据不够多,很容易就过拟合了。
先看看train_data和test_data有哪些特征:
train_data.columns
Index(['Id', 'Address', 'Sold Price', 'Summary', 'Type', 'Year built',
'Heating', 'Cooling', 'Parking', 'Lot', 'Bedrooms', 'Bathrooms',
'Full bathrooms', 'Total interior livable area', 'Total spaces',
'Garage spaces', 'Region', 'Elementary School',
'Elementary School Score', 'Elementary School Distance',
'Middle School', 'Middle School Score', 'Middle School Distance',
'High School', 'High School Score', 'High School Distance', 'Flooring',
'Heating features', 'Cooling features', 'Appliances included',
'Laundry features', 'Parking features', 'Tax assessed value',
'Annual tax amount', 'Listed On', 'Listed Price', 'Last Sold On',
'Last Sold Price', 'City', 'Zip', 'State'],
dtype='object')
test_data.columns
Index(['Id', 'Address', 'Summary', 'Type', 'Year built', 'Heating', 'Cooling',
'Parking', 'Lot', 'Bedrooms', 'Bathrooms', 'Full bathrooms',
'Total interior livable area', 'Total spaces', 'Garage spaces',
'Region', 'Elementary School', 'Elementary School Score',
'Elementary School Distance',