13万样本40个变量,90%的变量缺失值在48%以上,请问怎么办?

来源:9-1 什么是逻辑回归

weixin_慕莱坞0510968

2021-10-03

如题,其中因变量为1/0变量,等于1的有4万条。

有同事建议选某个变量不为空的行数,选完还剩7万条,此时各变量的缺失率就都在20%以下了。请问这样合理吗?被删除的6万行里也有1万条因变量为1的。

请问这个数据应该怎么办?

写回答

1回答

liuyubobobo

2021-10-04

其实我没有特别理解你的具体问题,但我大体理解就是,你的数据中存在大量缺失值。


关于数据中缺失值的处理,可以参考这个问答中列出的一些内容:https://coding.imooc.com/learn/questiondetail/G4daeRY493bXnWEp.html


13 w 的数据砍半,是否可以?只能说值得尝试,但我无法给出肯定的回答。对于有些应用来说,7 w 数据足够了,有些应用则不够。


从另外一个角度,也和你的这最终得到的 7w 数据,是否有偏有关。这就是缺失值产生的原因有关。有可能因为某一个特定原因产生了缺失值。比如病人数据中,监测血压的仪器是坏的,高压到一定程度就读不出数了,最终结果就是所有有缺失值的数据都是高血压患者,那么砍掉有缺失值的数据,剩下的数据就反映不出“高血压”这个条件。在这种情况下,你有 1000 万数据,剩下 999 万数据,也不能反映出高血压这个条件。用算法补缺失值也没有用,因为算法无法根据已有数据推出缺失值是异常的高压。(除非有其他指标和高压强关联。)


这就是机器学习本身复杂的地方,他是没有一定之规的。并且,在大多数真实应用中,单纯的从数据或者算法的角度考量,是不能发现很多问题的。而必须从领域的角度考量。到底为什么产生了这些缺失值?用算法补缺失值合理吗?还是扔掉缺失值就行?在这个应用下,到底多少数据够用?等等等等,这些问题都是强领域相关,甚至在同一个领域下,强任务相关的。


最后,一个很重要的点就是,去探究一下有没有可能获得缺失值更少的数据(而非陷入算法和数据处理中,和当前的数据较劲)。当然,这也是领域相关的,比如有些领域的有些数据拿到就是难的(医学领域很明显),那就没有办法;担忧的情况,可能只是你获得数据的算法或者设备稍作改良或者升级就可以,那就值得做。

这个投资,无论是时间上还是金钱上,很有可能比将大量时间和金钱花在数据分析和模型试验上要值。这本身也是数据为什么值钱的原因。


继续加油!:)

0
3
weixin_慕莱坞0510968
2、有个自变量叫country_US,是我把country变量(值是CN/JP/US/空,表示是公司为哪个国家建的网站,为哪个国家做打开语言都是那个国家的文字,方便那个国家的客户浏览网站并付款下单)做哑变量get_dummies得到的,country_US的值为1表示这个客户是在美国版的网站注册的。二分类因变量resp表示是否下单。实际上美国网站的注册客户下单特别多,是我们的销售重点,但是模型的结果country_US的系数是负的。就算在放入模型前,它和因变量的corr也是负相关,老板那里我不知道怎么解释…
2021-10-06
共3条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程