本项目旨在通过探索性数据分析(EDA)对房价相关数据进行深入研究,为后续的房价预测模型构建提供数据基础和分析依据。
- 使用
pandas
库的read_csv
函数读取本地保存的训练集和测试集文件,指定第一行作为列名,第一列作为索引,并创建副本。 - 训练集数据存储在
train_data
中,测试集数据存储在test_data
中。 - 训练集形状为 (1460, 80),测试集形状为 (1459, 79),测试集比训练集少一个目标特征(待预测的房价)。
- 使用
info()
方法查看数据集的大小、数据类型以及是否有缺失值。 - 数据集中包含多种数据类型,如
int64
、float64
和object
。部分列存在缺失值,如LotFrontage
、GarageYrBlt
等。
- 使用
describe()
方法获取数据的统计描述,包括均值、中位数、标准差、最小值和最大值等。 - 例如,
SalePrice
列的均值为 180921.195890,标准差为 79442.502883,最小值为 34900.000000,最大值为 755000.000000。
- 使用
isnull().sum()
方法计算每列的缺失值数量。 LotFrontage
有 259 个缺失值,MasVnrArea
和GarageYrBlt
等列也存在缺失情况。
- 通过
columns
属性获取训练集中的所有列名,共有 80 个特征,涵盖房屋的各种属性,如房屋类型、面积、建造年份、周边环境等。
- 目标变量
SalePrice
无缺失值。 - 其分布偏离正态分布,呈现右偏尖峰态,峰度为 6.536281860064529,偏度为 1.8828757597682129。
- 绘制原始房价的直方图,展示房价数据的分布情况,较多数据集中在低价区间,右侧有较长尾部表示少量高价房屋。
- 对房价进行对数转换(
np.log1p()
)后绘制直方图,转换后的分布更接近正态分布,峰度为 0.809519155707878,偏度为 0.12134661989685333。
- 通过
sns.distplot()
方法绘制SalePrice
的直方图与连续密度估计图,直观展示房价分布特性。
- 特征分类:将数据集中的特征分为数值型(
num_features
)和类别型(cat_features
)两类,数值型特征有 37 个。 - 删除缺失值大于 30% 的变量:找出缺失值大于 30% 的连续变量,如
LotFrontage
、MasVnrArea
、GarageYrBlt
,暂不填充,后续考虑多种填充方法。同时确定不含缺失值的连续变量和含有缺失值的连续变量。 - 针对每个数值型特征绘制直方图:绘制每个数值型特征的直方图,观察其概率分布,部分参数如
GarageYrBlt
等分布接近正态分布。 - 展示不含缺失值的连续型变量与 SalePrice 的关系图:通过散点图展示不含缺失值的连续型变量与房价的关系,部分变量与
saleprice
趋势一致,但可能存在共线性,如2ndFlrSF
等。 - 删除缺失值后的关系图:对于含有缺失值的连续变量,删除缺失值后绘制与
SalePrice
的关系图,这些变量与salePrice
趋势一致,部分参数分布呈现正态分布,如GarageYrBlt
等。
- 删除类别型变量中缺失值大于 30% 的变量:处理类别型变量,删除缺失值大于 30% 的变量,剩余 26 个类别型变量。
- 分类有无缺失值:将类别型数据分为有缺失值和无缺失值两类,无缺失值的有 18 个,有缺失值的有 8 个。
- 展示无缺失值类别型变量与 SalePrice 的关系:使用箱线图展示无缺失值类别型变量与
SalePrice
的关系,分布不能明确说明与saleprice
的相关性,但类别型变量无大小关系易带来噪音,将MSSubClass
转换为string
类型。
- 计算数值型变量的相关矩阵,使用
sns.heatmap
绘制热图展示变量间相关性,颜色深浅表示相关性强弱。
- 找出与
saleprice
相关性前 10 的连续型变量,包括OverallQual
、GrLivArea
、GarageCars
等。 - 分析变量间共线性,选择合适变量,如
GrLivArea
与ToRmsAbvGrd
相关性高,选择GrLivArea
,因其分布接近正态分布;GarageCars
与GarageAreas
相关性高,选择GarageArea
等。
经过上述分析,最终选择的连续型变量为 ['OverallQual', 'GrLivArea', 'GarageAreas', 'TotalBsmtSF', 'FullBath', 'YearBuilt', 'YearRemodAdd']
,类别型变量为 ['Foundation', 'BsmtQual', 'KitchenQual']
。这些变量将作为后续房价预测模型构建的重要特征。