机器学习的探索性数据分析
代码解释
利用美国的房产数据来讲解数据分析部分,在做数据分析的时候主要分为数据的处理和可视化,这一部分就是我们可能会在python中用到的包的导入。matploitlib.pyplot和seaborn是我们会用到的可视化的图库。display引入的主要原因就是我们想要用它将房产网站中的图片格式转换为’svg’形式。
以上展示的就是原始的脏的数据,就是数据科学家需要将原始的数据转换为机器学习可以用的干净的数据。
有大量的列是缺数据的,如果列有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)
接着检查数据的类型![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/34bf8e24ca367b599342181a2170ff30.png)
检查以上数据类型之后,就需要将以上的数据做一个数据的转换
在以上清洗过后的数据后仍然存在一些噪音的数据,比如过于大或者过于小的不合理的数据。
以下为合理性数据的筛选
数据清理时候清理掉2/3的数据都算正常。
在房价处理上我们做了一个log的处理,因为是价格差别过大所以做一个峰值的缩小,我自己理解是这个意思
检查房子的不同类别有哪些,用value_counts()
不同类别的房子的价格密度分布
选中一些房子他的户型是后面那四种之一,然后构建一个新的table,然后在将其分布的概率画出来,可以看到其密度的分布。
看一下不同的房子的类别跟他的每平米价格的关系
中间的横线表示他的均值,颜色代表不同的房型类别,Y代表每平米的价格均值以下的横线表示低于均价的房子有多少比例,我们发现condo的单位房价其实是比别墅要高的。
看下不同的邮政编码下单位房价的分布是啥样的
可以看出不同的地域对于房子的价格影响是很大的
另外需要看一下不同的特征之间的相关性。
总结
探索性数据分析最基本的事情
- 最简单的可能就是看一下行列的个数
- 每列的数据类型是啥样的(如果没有正确的识别可能就需要做一些额外的事情让他转换成你需要的类型)
- 看一下值对不对劲,有没有过大过小的这种噪音值
- 需要看一下数据的分布,如果分布很奇怪可能就是你的采样出问题了
- 不同类之间的关系,或者给定这个列的值看他对整个分布的影响或者看看他们的协方差
- 注意图中给定的画图的方法,可以借鉴一下。