![09cc9931f8748fc8d7bfc54178ac4d68.png](https://i-blog.csdnimg.cn/blog_migrate/db1c671c20f82e0c54c8b8664e4035e4.jpeg)
开始打怪升级之路啦,朝着更严谨细腻的数据科学之路前进!
一、项目介绍
数据集来自kaggle,数据来源 :房价预测kaggle入门项目。Ames数据集包含来自Ames评估办公室的2930条记录。 该数据集具有23个定类变量,23个定序变量,14个离散变量和20个连续变量(以及2个额外的观察标识符) - 总共82个特征。 可以在包含的codebook.txt文件中找到每个变量的说明。 该信息用于计算2006年至2010年在爱荷华州艾姆斯出售的个别住宅物业的评估价值。实际销售价格中增加了一些噪音,因此价格与官方记录不符。
分别分为训练和测试集,分别为2000和930个观测值。 在测试集中保留实际销售价格。 此外,测试数据进一步分为公共和私有测试集。
本次练习需要围绕以下目的进行:
- 理解问题 : 观察每个变量特征的意义以及对于问题的重要程度
- 研究主要特征 : 也就是最终的目的变量----房价
- 研究其他变量 : 研究其他多变量对“房价”的影响的他们之间的关系
- 基础的数据清理 : 对一些缺失数据、异常点和分类数据进行处理
- 拟合模型:建立一个预测房屋价值的模型,并且准确预测房价
![0fe52478bb8d86333441cc11de985a29.png](https://i-blog.csdnimg.cn/blog_migrate/ca72a8a002624ffa3c6c5b613aad6f1a.jpeg)
二、导入相关的数据
1.导入相关的python包
import numpy as np
import pandas as pd
from pandas.api.types import CategoricalDtype
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import linear_model as lm
from sklearn.model_selection import train_test_split
from sklearn.model_selection import KFold
# Plot settings
plt.rcParams['figure.figsize'] = (12, 9)
plt.rcParams['font.size'] = 12
2. 导入训练数据集和测试数据集
training_data = pd.read_csv("ames_train.csv")
test_data = pd.read_csv("ames_test.csv")
pd.set_option('display.max_columns', None)
#显示所有行
pd.set_option('display.max_rows', None)
#设置value的显示长度为100,默认为50
pd.set_option('max_colwidth',100)
training_data.head(7)
![bfdeaced543e85f53aa20354e91627e4.png](https://i-blog.csdnimg.cn/blog_migrate/e6af2651b284651d45261438feace16d.jpeg)
三、观察各项主要特征与房屋售价的关系
该数据集具有46个类别型变量,34个数值型变量,整理到excel表格中,用于筛选与房价息息相关的变量。从中筛选出以下几个与房价相关的变量:
类别型变量:
Utilities : 可用设施(电、天然气、水)
Heating (Nominal): 暖气类型
Central Air (Nominal): 是否有中央空调
Garage Type (Nominal): 车库位置
Neighborhood (Nominal): Ames市区内的物理位置(地图地段)
Overall Qual (Ordinal): 评估房屋的整体材料和光洁度
数值型变量:
Lot Area(Continuous):地皮面积(平方英尺)
Gr Liv Area (Continuous): 地面以上居住面积平方英尺
Total Bsmt SF (Continuous): 地下面积的总面积
TotRmsAbvGrd (Discrete): 地面上全部房间数目
- 分析最重要的变量"SalePrice"
training_data['SalePrice'].describe()
![304307f991224806beb8f5ded8f638a5.png](https://i-blog.csdnimg.cn/blog_migrate/6eeff4e4c94aeeadccd20b36d9fc4046.jpeg)
从上面的描述性统计可以看出房价的平均值、标准差、最小值、25%分位数、50%分位数、75%分位数、最大值等,并且SalePrice没有无效或者其他非数值的数据。
#绘制"SalePrice"的直方图
sns.distplot(training_data['SalePrice'])
#计算峰度和偏度
print("Skewness: %f" % training_data['SalePrice'].skew())
print("Kurtosis: %f" % training_data['SalePrice'].kurt())