5行代码系列,是包大人班车日更精选的原理简单明确,效果立竿见影的机器学习武器库。

往期:

5行代码提升GBDT,提升巨大!

5行代码提升时间序列预测,都有用!

5行代码实现的对比学习,效果超好!

我们还是用一道题目开场吧!

问题引入

大家都招过外包标注,怎么选出合适的数据是一个技术活。

如果你标的是图片分类数据集,合适的含义就有两层

第一,不一样的类别。有太多猫猫了,那么再加数据也意义不大了。

第二,有代表性的类别,狗狗照片里面有太多柴犬了,你也得把二哈,萨摩耶,德牧,短腿柯基也弄进去。

怎么解决这个问题,给标注每天选数据呢?

这进入了我们今天的关键,分布不一致检测。他有个洋气的学术名叫concept drift detection,概念漂移检测。

传统的学术派解决这个问题的经典方法,就是用一个分布函数,把历史的数据拟合出来,然后看看待检测数据超出置信空间的水平。

以上方法有两个问题,第一,严重依赖于分布函数的先验。第二,他是无监督的,无监督听起来就不靠谱。总结起来就是又费劲又受限。

他的应用场景有开头的新样本发现,如果你标的意图识别数据,就是意图发现。其他应用还有其他的像异常检测,debias等。

那么今天的主角呼之欲出了,有监督,无先验。又简单,又好用

我以意图发现为例(找出有可能好友新意图类别的样本),几句话讲明白这个方法。


方法原理

已有的数据打上0,待检测数据打上1,然后样本拼接,训练一个lstm。最好做一个5折交叉验证,然后把验证概率大于0.9(自己设)的找出来。

他的原理就是用分类器做一个数据来源分类任务。大家都知道,两个分布重叠的部分,一会儿0,一会儿1,模型就学懵了。

要是数量均衡的话,模型只好给你个0.5敷衍完事。既然模型在重叠的分布上敷衍了事,那我把模型有把握的部分,找出来不就行了吗?

嗯,有把握的部分就是高置信的部分,你可以相信模型找到了一点不一样的东西。这些不一样的东西,才会被他学到。所以过高的置信度样本,就是我们要找的刺头。

除了意图发现,结构化数据可以用这个方法来找出分布不一致的样本和特征。

怎么做呢?和前面过程一样,一部分给0,一部分给1。你把分类器换成LightGBM就可以了,他还可以生产特征重要性,在划分新老数据的时候,他把特征bias的程度,给你打了一个排名。

这是以前我在PAKDD AUTOML竞赛中用来处理drift特征的方法。验证AUC大于0.65的话,特征用时间窗来更新下,删掉一部分特别飘的。这个方法在工业界上线也挺有意义的。


代码实现

如果你看懂了前面,基本就不需要看代码就能实现出来了。核心原理代码。

df_history['lable'] = 0 #历史数据
df_now['lable'] = 1 #检测数据
df_all = pd.concat([df_history,df_now]).reset_index(drop=True)
model_list,prob = model.fit(X= df_all['feature'],y = df_all['lable'], kfold=True)
df_drift = df_all[df_all['prob']>drift_thres]#找到prob>drift_thres的样本

完整的代码在后台回复 漂移检测


最后,会的同学说,这不就是adversial validation吗?

包大人你又在这水班车日更了。

包大人:哎,你会了不代表所有人都会。班车到站了,打卡上工打灰了。

都看到了这里了,点个关注吧!包大人的精彩班车知识分享。

往期精彩回顾适合初学者入门人工智能的路线及资料下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载本站qq群955171419,加入微信群请扫码:

【数据竞赛】5行代码检测分布不一致,代码少效果好!相关推荐

  1. [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  2. [系统安全] 三十四.恶意代码检测(4)编写代码自动提取IAT表、字符串及时间信息

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  3. [系统安全] 三十三.恶意代码检测(3)基于机器学习的恶意代码检测技术

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  4. [系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  5. 信息安全与技术——(十一)恶意代码检测与防范技术

    文章目录 1.恶意代码(Malicious Code) 2.恶意代码对系统带来的影响 3.典型病毒 3.1蠕虫病毒 3.2熊猫烧香病毒 3.3木马病毒 3.4DDoS攻击木马 3.5邮箱病毒 4.恶意 ...

  6. android中如何通过代码检测是否有root权限?

    2019独角兽企业重金招聘Python工程师标准>>> Android android中如何通过代码检测是否有root权限? while 3 票 1892 评论 (0) • 分享 • ...

  7. 【数据竞赛】5行代码提升GBDT,提升巨大!

    看过我历史文章的都知道,以lightgbm,xgboost,catboost为代表的GBDT,在部分工业界场景的表格数据集上,一直一览众山小. 如果你打过kaggle应该一定都知道,大家心照不宣的表格 ...

  8. 爱可可推荐!关于竞赛思路,方法和代码实践,Datawhale数据竞赛Baseline开源分享!...

    数据竞赛中baseline是最入门的分享, 它不仅有思路.方法还有内容: 或许你与Top选手的差距就是一个baseline! 01 项目介绍 如果你是数据竞赛的初学者.爱好者,比赛的baseline不 ...

  9. 爱可可推荐!关于竞赛思路,方法和代码实践,数据竞赛Baseline开源分享!

    数据竞赛中baseline是最入门的分享, 它不仅有思路.方法还有内容: 或许你与Top选手的差距就是一个baseline! 01 项目介绍 如果你是数据竞赛的初学者.爱好者,比赛的baseline不 ...

最新文章

  1. 音乐咖android,GitHub - hackers365/musicafe: musicafe音乐咖 — 网易、虾米、QQ音乐一处搞定...
  2. java写一个99到0_Java中一个普通的循环为何从10开始到99连续相乘会得到0?
  3. Qt之QToolBox
  4. atitit.eclipse有多少api  扩展点,以及扩展点的设计
  5. ToStringBuilder
  6. 如何使用Excel的数据去查询数据库?
  7. C/C++——set的基本操作总结
  8. 5w 字 | 172 图 | 超级赛亚级 Spring Cloud 实战
  9. itools3.0服务器维护,苹果设备管理哪家强?iTools3.0 完胜 iTunes
  10. b站视频下载日记新篇2021年4月3日
  11. 如何查看计算机的网络网址,怎么查看电脑IP地址_如何查看电脑IP地址?-192路由网...
  12. 飞腾CPU体系结构(八)
  13. NGUI的localize的更换KEY后刷新的问题
  14. Blocking Queue
  15. 面试专题——Redis
  16. 百度手机输入法for android16,百度输入法下载
  17. PTA B1019/A069 .数字黑洞 几个测试点分析 C语言
  18. 〖Python自动化办公篇⑯〗 - PPT 文件自动化 - PPT 段落的使用
  19. Revit教程- Revit中如何控制屋顶的标高
  20. C语言 字符串1234转换成数字1234

热门文章

  1. selenium自学笔记---ecshop购买脚本 xpath定位元素(下拉框,单选框)
  2. 台湾ML笔记--1.2 formalize the learning probelm
  3. 大牛的距离(笑cry)精简算法
  4. TreeView的复选框隐藏 重新整理
  5. 引入extThree20JSON之后,怎么在工程中使用
  6. The Road to SDN: An Intellectual History of Programmable Networks
  7. [leetcode]83.Remove Duplicates from Sorted List
  8. 如何在eclipse中修改jsp默认编码
  9. 光流 | 基于HS光流算法的稠密光流提取(Matlab源代码)
  10. 计算机视觉与深度学习 | 基于边缘与形态学的细胞检测