Kaggle之高级房价预测
0.综述
Kaggle是一个进行数据发掘和预测竞赛的在线平台。从公司的角度来讲,可以提供一些数据,进而提出一个实际需要解决的问题;从参赛者的角度来讲,他们将组队参与项目,针对其中一个问题提出解决方案,最终由公司选出的最佳方案可以获得奖金。本篇博客是自己入门Kaggle的记录,首先就是一个练手比赛题目:高级房价预测。
比赛链接链接为:
https://www.kaggle.com/c/house-prices-advanced-regression-techniques
数据集下载链接为:
https://www.kaggle.com/c/5407/download-all
1.加入比赛和下载数据集
Kaggle的注册不在赘述,要想参加比赛,首先要点击比赛链接界面中蓝色的参加比赛按钮,然后就可以点击下载数据集链接下载数据集了,下载好之后解压该压缩文件,里面的内容如下:
其中data_description是数据的描述文档,sample_submission.csv是提交结果的样例,test.csv和train.csv就是测试集和训练集啦。
2.数据分析与赛题思路
房价是一个连续值,因此首选方法是回归。当然什么事都不是肯定的,应当先对下载下来的数据集进行观察和分析。
首先来使用pandas看以下训练数据集:
import pandas as pd
train_data = pd.read_csv("train.csv") #读取训练数据到内存中
train_data.info() #info方法可以查看该文件的信息
输出信息:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1460 entries, 0 to 1459
Data columns (total 81 columns):
Id 1460 non-null int64
MSSubClass 1460 non-null int64
MSZoning 1460 non-null object
LotFrontage 1201 non-null float64
LotArea 1460 non-null int64
...
Fence 281 non-null object
MiscFeature 54 non-null object
MiscVal 1460 non-null int64
MoSold 1460 non-null int64
YrSold 1460 non-null int64
SaleType 1460 non-null object
SaleCondition 1460 non-null object
SalePrice 1460 non-null int64
dtypes: float64(3), int64(35), object(43)
memory usage: 924.0+ KB
从输出的信息可以看出,该训练集中包含1460行,每一行中包含了Id ,MSSubClass,MSZoning等共计81个特征列。查看测试集的方法类似,但是测试集中只包含了80个特征列,这是因为训练集比测试集多出一个该数据对应的实际的标签列,也就是房屋的价格。
train_data.head() #head()方法可以显示读入文件的前5行的内容
head()方法可以显示出读入文件的前五行内容,可以看见数据中包含有字符串或者缺失值(Nan就是空值),我们应当把它们变成数值型的。