李沐老师机器学习斯坦福课程笔记
发布时间
阅读量:
阅读量
机器学习的探索性数据分析

代码解释
以美国房产数据为例讲解数据分析内容,在进行数据分析的过程中主要涉及数据预处理以及可视化展示。这部分内容涉及我们在Python编程中需要用到的各项工具和技术。其中matplotlib.pyplot以及seaborn是常用的可视化工具库;引入display模块的主要目的是将其应用于将来自美国房产网站中的图片格式转换为'svg'(SVG)文件格式。

以上展示了原始 dirty data 的状态以及它们的特点
以上即为未经清洗的数据形态
这是展示给用户的初始 dirty 数据情况
这些 raw data 是为了后续 machine learning 处理而存在的

有大量的列是缺数据的,如果列有30%是缺数据的就把这列丢掉
#计算空数据的数目
null.sum = data.isnull().sum()
data.columns[null.sum<len(data)*0.3]
#将数据去掉,但是inplace表示这个数据只能跑一次这些列就没了
data.drop(columns=data.columns[null.sum>len(data)*0.3],inplace=True)
接着检查数据的类型

检查以上数据类型之后,就需要将以上的数据做一个数据的转换


在经过清洗得到的数据中还存在一些异常数据,这些异常数据通常表现为过大或过小的数值
以下为合理性数据的筛选

数据清理时候清理掉2/3的数据都算正常。

在房价处理上我们应用了对数变换,在面对房价差异较大的情况下,我们采取了将峰值范围压缩的措施,并认为这是合理的。
检查房子的不同类别有哪些,用value_counts()

不同类别的房子的价格密度分布

注
看一下不同的房子的类别跟他的每平米价格的关系

中间的线条代表他的平均值。颜色标记不同类型的房间类型。Y轴标记的是每平方米价格低于平均房价的比例。研究结果表明,在平均房价之上的一条垂直线条对应着公寓区的价格明显高于别墅区。
看下不同的邮政编码下单位房价的分布是啥样的

可以看出不同的地域对于房子的价格影响是很大的
另外需要看一下不同的特征之间的相关性。

总结
探索性数据分析最基本的事情
- 最简单的方式可能是检查行列的数量
- 每一列的数据类型是什么?如果没有正确识别的话可能会需要将其转换为所需的数据类型
- 检查数值是否合理是否存在异常的大或小数值?
- 如果数据分布异常可能是因为采样问题导致吗?
- 需要研究不同类之间的关系或者查看该列对整体分布的影响以及它们之间的协方差吗?
- 注意参考参考图中提供的绘图方法可以借鉴
全部评论 (0)
还没有任何评论哟~
