免费开放 33.5 万条 贫困户记录,用来做 机器学习

2016-12-07 22:04:31 +08:00
 crayonyi

github 地址: https://github.com/bowenpay/poormining

我们公司正在做一个贫困户的征信模型 v0.1 ,以发展农村金融。

为了争取开源世界的力量,开放了 2 个县的数据,共 33.5 万条 贫困户记录,每条记录有 33 个字段。时间跨度为 2014 年~2016 年, 3 年共 3 张表。这 2 个县,一个县用于建模,另一个县用于验证。

其中,需要建模预测下一年是否能脱贫以及下一年的人均年收入。

目前用随机森林模型预测是否脱贫,准确率高达 98% ;

用线性回归模型预测下一年人均年收入,在误差为 10%的情况下,准确率为 60%;

使用 Lasso 回归模型 和 岭回归模型 预测效果也为 60%左右。

欢迎大家来修改代码,使用更多的模型来预测,或者调整模型参数,以提高预测准确度。

6512 次点击
所在节点    互联网
45 条回复
crayonyi
2016-12-07 22:12:22 +08:00
不知道为什么刚发布的时候,在首页看不到,回复一条试试
miyuki
2016-12-07 22:45:19 +08:00
正在入门基于 R 的机器学习,感谢 lz
marenight
2016-12-07 22:48:04 +08:00
数据格式是 sql 么?楼主能不能给个其他比较友好的格式,比如 csv 啥的。
crayonyi
2016-12-07 22:54:12 +08:00
@marenight 对的,是 sql 。想要 csv ,可以留邮箱,我发给你
Xs0ul
2016-12-07 22:55:48 +08:00
感觉准确率相当的高啊,有做 feature importance 看看那些因素影响比较大吗?
crayonyi
2016-12-07 23:06:13 +08:00
@Xs0ul 只是统计了一下各个因子,单独作用下的效果,写在这个文档里了:[https://shimo.im/doc/IeBd3kPBK0MC1aQY]( https://shimo.im/doc/IeBd3kPBK0MC1aQY)

我第一次知道有 feature importance , 去查一下
marenight
2016-12-07 23:27:52 +08:00
@crayonyi rolling404@gmail.com 万分感谢
crayonyi
2016-12-07 23:27:58 +08:00
@Xs0ul 跑了一下, feature importance 排名如下:

Feature ranking:
1. feature person_year_total_income (0.712042)
2. feature year_total_income (0.107312)
3. feature member_count (0.041349)
4. feature subsidy_total (0.026403)
5. feature reason (0.020928)
6. feature arable_land (0.017534)
7. feature living_space (0.016653)
8. feature wood_land (0.010882)
9. feature help_plan (0.009243)
10. feature washing_machine (0.006374)
11. feature fridge (0.005236)
12. feature is_danger_house (0.005180)
13. feature tv (0.005083)
14. feature is_debt (0.005042)
15. feature bank_number (0.003775)
16. feature xin_nong_he_total (0.002452)
17. feature call_number (0.002253)
18. feature debt_total (0.001464)
19. feature xin_yang_lao_total (0.000796)
20. feature bank_name (0.000000)
21. feature standard (0.000000)
22. feature is_back_poor (0.000000)

判断脱贫主要就是看 person_year_total_income (人均年收入), 大于 2800 元的就超过国家贫困线了, 因此我去掉这 2 个因子 person_year_total_income 、 year_total_income ,跑完后,预测成功率是: 81.34%, feature importance 排名如下:


Feature ranking:
1. feature subsidy_total (0.198893)
2. feature arable_land (0.176897)
3. feature living_space (0.146558)
4. feature reason (0.129572)
5. feature member_count (0.113734)
6. feature wood_land (0.082290)
7. feature help_plan (0.024511)
8. feature washing_machine (0.020852)
9. feature tv (0.020510)
10. feature is_danger_house (0.019875)
11. feature is_debt (0.014723)
12. feature fridge (0.014228)
13. feature bank_number (0.012896)
14. feature xin_nong_he_total (0.010757)
15. feature call_number (0.007313)
16. feature debt_total (0.003950)
17. feature xin_yang_lao_total (0.002437)
18. feature bank_name (0.000005)
19. feature standard (0.000000)
20. feature is_back_poor (0.000000)

而我统计了下测试数据分布: 贫困 41289 已脱贫 7089 , 如果我全猜已脱贫的概率是 85.3%。

这是不是说明, 随机森林模型 不如 瞎猜?
crayonyi
2016-12-07 23:45:47 +08:00
修正上面那条,应该是 “我全猜贫困的概率是 85.3%”
minami
2016-12-08 00:02:50 +08:00
既然森林分类准确率这么高,考虑下用森林来做回归吧
lightening
2016-12-08 00:06:05 +08:00
"add 去除秘密字段的数据库" 你知道 git 历史上每个版本的数据库都能下载的,对吧?
crayonyi
2016-12-08 00:12:59 +08:00
@minami 可以试试。 不过随机森林分类是用来预测是否脱贫,后面的回归模型是用来预测下一年人均年收入的。 所以没有可比性。
crayonyi
2016-12-08 00:14:26 +08:00
@lightening 我知道。这个 commit 之前,是没有数据库文件的。 我第 1 次添加的就是“去除秘密字段的数据库”。
misaka19000
2016-12-08 00:16:38 +08:00
楼主大大,请问下机器学习要怎么入门啊😖😖
AutoRip
2016-12-08 00:22:18 +08:00
Mark down
skydiver
2016-12-08 00:28:58 +08:00
是脱敏的数据就好…看到标题吓了一跳
crayonyi
2016-12-08 00:31:59 +08:00
@misaka19000 我也刚入门,调用的 sklearn 库,找做这一块的同学问着做的。
minami
2016-12-08 00:50:04 +08:00
@crayonyi 为什么没有可比性呢?你的实验已经证明了所选取的特征很适合使用决策树类方法,因为各维度的 feature importance 相差的很极端,也就是说不能认为每个特征维度的重要性是相同的。决策树因为分裂准则的关系可以避免这个问题,而线性方法会表现的非常糟糕。另一个选择倒是可以考虑 Kernel SVM ,但是需要更多的手工参数调整
Xs0ul
2016-12-08 02:22:45 +08:00
@crayonyi 以我所学的, 98%的准确率基本上在正常的数据上是不太可能做得到。。所以我之前建议跑一下 feature importance ,看看最重要的的 feature 是不是能够从直观上解释为什么重要。结果你也看到了。。因为你们用了不该用的 feature 。

原来数据里贫困和脱贫比例相差太大,可以考虑 resampling 看看。
xupefei
2016-12-08 05:54:40 +08:00
@misaka19000 弊校正好有个入门级别的课程: https://www.cs.helsinki.fi/en/courses/582631/2016/s/k/1
网上课件,练习题,答案全都有。实践用的是 R 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/326041

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX