实现过程个人觉得很坎坷。
下午找到了sklearn库中有个 imblearn包,可以无脑运算,基于完成任务考虑,看了之后确实有很多收货。
更加熟悉了模型的原理,数据处理的过程和结果优化的一些理论。
排除朴素随机抽样之外的其他方法,在增加小样本和删除大样本的时候,时间消耗过于巨大,对于讲求效率的我而言,理论的优越并不能是我信服imblearn的优越性。
在面对几十万条数据的时候,确实感到了个人计算机的无力。
既然是大数据,还是要想大数据框架来靠拢的。
接下来说具体思路:
参考着巨人的理论,是否可以通过人为制造随机数据和随机采样来进行算法的优化。
基本的正样本个数为:706610,负样本个数为:3293
看到这么感人的比例,我还能多说什么呢,还是自己操作吧。
首先随机抽取训练集(axis=0)按行来抽取。并将正负样本集分开。
然后随机选择正样本的数量,并将负样本链接到对应的正样本之后
然后进行训练和调试,终于摆脱了召回率和F2值为0的尴尬情况。
然后按照基本的逻辑斯谛回归,岭回归,lgm模型进行了测试。
结果依次是:逻辑斯的回归F2值在0.50-0.65之间;
岭回归在0.55-0.72之间,但是数据波动范围比逻辑斯的回归大一些;
接下来就是我信赖的lgm模型了,不出我所料范围在0.75-0.85之间,但是在样本3W,循环迭代次数多的情况下稳定在0.79这个范围。
最后,就是漫长的等待生成结果了,17W的测试数据还是挺恶心的,现在等了40分钟了还没结束,继续等吧。
最后推荐两篇博客:
https://blog.youkuaiyun.com/u011094454/article/details/77618604