数据预处理案例

最近在做数据处理的一些事情,写一下自己的一些处理方式,可能会比较low,


我这份数据是关于售卖房屋的方面的数据:从数据库转存的csv文件,有三百多列,也就是有300多个特征,并且数据的缺失值特别严重,拿到这样一份残缺不全的数据我也是很苦恼,

先看一下我的处理方式,

我进行数据处理用的是pandas库,大致浏览了一下数据,缺失很多,首先我们需要先统计出每一列的缺失情况,

1:由于我的数据最终是要用于去训练模型的,所以对于每一个特征,我首先先允许他的有效数据必须要大于10000条的,不然数据量不够,模型的最终效果会很差;

2:进行人为的筛选,剔除到如唯一标识符id,编号,电话号码之类的数据,具体还是要看你的标签,才最终决定你所要剔除的特征,这是要往多了挑,因为你不知道这个特征是否对最终模型会有怎样的影响,对于百分之百需要取出的才去除,要以模型的训练最终的效果来决定这个特征是留还是不留,可能有更好的方式,感觉这种方式很low,如果发现有更加科学的方式我会继续更新的

3:进行了一步筛选之后,我又提取出了数据缺失值比率大于%50 的这部分数据,利用pandas.columns 拿到这些特征,

4:最后一步就是分别以这些缺失比较大但是有效数据又是大于10000的为基准,分别得到该特征得到的数据,

比如:有一个特征是room,那就以room该列不为空来获取一个样本数据,这个操作不会对特征个数产生影响,最终会得到一个小的样本,

但是我在进行这一步操作的时候速度特别的慢:用了两种方式,一种是drop的方式,一种是通过创建一个新的DataFrame的方式,通过行添加的方式;

其中drop方式是最慢的,

5:最后就是再次对分别得到的数据样本做分析,观看各个特征缺失值的情况,选取适当的样本作为训练数据;


当然这只是预处理方式,在样本数据进行训练之前,还要进行一项‘特征工程’的操作才行,也就是特征的处理,对于数值数据怎样操作,非数值又怎样操作,是否应该进行编码,是否应该进行归一化,等等,

还有就是推荐使用tensorflow下一个estimator的库,这个库下封装了好几个模型,而且有一个关于特征处理的方式,特别好用,让你跟注重你的数据和你模型最终的样子,当然如果你是模型大牛,更注重模型,喜欢自己定制,那就不推荐这个库了,这个库下比较出名的就是wide and deep 模型,线性模型和深度模型的结合;


END



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值