实验试题 房屋数据集预处理
一、实验概述:
【实验要求】
- 保存程序,并自行存档;
- 最终的程序都必须经过测试,验证是正确的;
- 认真记录实验过程及结果,回答实验考试报告中的问题。
【实施环境】(使用的材料、设备、软件)
Python开发环境
二、实验考试内容
题目 房屋数据集预处理
【实验内容】
- 请下载housing.csv文件。这是反应若干个小镇的房价的数据集,对数据集进行总体性的分析,比如行列数,每列的最大最小,中位数等,其代码和结果贴图所示:
答:
1.读入csc文件:
2.统计每一列的行数:
- 统计longtitude这一列的行数:
- 因为ocean_proximity这一列不是数值类型,因此要把它去掉,再统计其他各列的最大值:
再统计最大值:
- 统计每一列的最小值:
- 统计每一列的中位数:
- 汇总描述:
(2)该数据集的每列的具体含义是:
Longitude:经度;
Latitude:维度;
housing_median_age:该小镇的房屋年龄中位数;
total_rooms:该小镇的房屋房间数量;
total_bedrooms:该小镇的卧室房间数量;
population:该小镇的人口(千人,K)。
households:该小镇的家庭数;
median_income:收入的中位数;
median_house_value:房屋价值的中位数;
ocean_proximity:是否临近海(NEAR BAY:临海湾;INLAND:不临海;NEAR OCEAN:近海;<1H OCEAN:距海行程小于1小时)
- 对数据集进行适当的数据分析,并进行预处理;给出处理的过程;
答:
- 使用matplotlib查看各个属性的直方图:
- 查看各个列的与median_house_value的相关性
由此可以看出median_income与median_house_value的相关性最高,为0.688075,用散点图将这个属性的相关性可视化。
由图看出相关性很强。再看人口与房价的相关性,相关性比较高:
由图可以看出,median_income的与median_house_value的相关性比较高,因此以median_income作为特征值,以median_house_value作为标签,对房屋价值进行预测。
- 分别采用线性回归模型,或者贝叶斯模型对房屋的价值进行预测(即对median_house_value列进行预测),并采用 matplotlib对预测的房屋的价值和原始价值曲线进行对比。
答:使用贝叶斯模型对房屋进行测试。
- 导入贝叶斯中的高斯分布型用来预测。
- 将收入的中值作为特征值,房价的中值作为预测标签,因为只采用了一维的数据,所以需要将其重现reshape成二维结构。
- 将数据集划分为训练集和测试集,按照0.4的比例划分。并且查看各个数据集划分后的维度。
- 开始建模,然后使用训练集对模型进行训练。
- 再对数据进行预测,并且用测试集模型进行测试,对测试结果计算精确率:
总结:
相关系数很高,但是预测的相似度很低,有很多原因,有可能是这个模型不适合预测房价,也有可能本人的实验选择的维度不对。