【Uplift】特征选择篇
https://zhuanlan.zhihu.com/p/363866684
【Uplift】特征选择篇
文章目录
- 【Uplift】特征选择篇
- Filter方法
- F-filter和LR-filter
- Bin-Based方法
- Embed方法
- 特征过滤的效果
- 个人理解
本文主要参考论文《Feature Selection Methods for Uplift Modeling》介绍Uplift Modeling中的特征筛选问题,主要包括”Filter方法“和”Embed方法“。具体实现参考CausalML源码。
做好特征选择可以带来很多好处,包括计算效率、维护成本、可解释性、减少过拟合等。机器学习中有一系列进行特征选择的方法,主要可以分为3类,即”过滤方法“、”封装方法“、”嵌入方法“,下图是《美团机器学习实践》中的一个比较图。
简单说,”过滤方法“是通过特征变量和目标变量的一些指标计算并设定阈值做过滤;”封装方法“是通过不断尝试特征组合并借助模型效果来打分;”嵌入方法“是用模型训练过程中附带的关于特征重要性的描述作为依据。
Filter方法
过滤方法计算快,复杂度为O(m⋅n)O(m\cdot n)O(m⋅n),m为特征数,n为样本数。
这里介绍了3种过滤方法,分别是F-filter、LR-filter、Bin-Based filter
F-filter和LR-filter
- F-filter首先用相关特征训练线性回归模型,特征包括”treatment、目标feature、二者交叉、常数项“,然后用交叉项系数的F-statistic作为得分
statsmodels.regression.linear_model.OLSResults.f_test
- LR-filter则基于逻辑回归模型,用交叉项系数的likelihood ratio test statistic作为得分
statsmodels.discrete.discrete_model.LogitResults.llf
Bin-Based方法
Step1:对目标特征排序,并按比例分为K组。
Step2:分别计算每组内,T组和C组中,outcome的分布散度,并求和。即
Δ=∑k=1KNkND(Pk:Qk)\Delta=\sum_{k=1}^{K} \frac{N_{k}}{N} D\left(P_{k}: Q_{k}\right) Δ=k=1∑KNNkD(Pk:Qk)
其中,假设outcome共有C类,Pk=(pk1,...,pkC)P_k=(p_{k1},...,p_{kC})Pk=(pk1,...,pkC)和Qk=(qk1,...,qkC)Q_k=(q_{k1},...,q_{kC})Qk=(qk1,...,qkC)分别表示T组和C组概率分布,NkN\frac{N_k}{N}NNk表示第kkk组的样本占比,DDD表示分布散度,介绍了3种计算方法
- KL算法,Kullback-Leibler divergence
KL(Pk:Qk)=∑i=1npkilogpkiqkiKL\left(P_{k}: Q_{k}\right)=\sum_{i=1}^{n} p_{k i} \log \frac{p_{k i}}{q_{k i}} KL(Pk:Qk)=i=1∑npkilogqkipki
- 欧式距离,Euclidean distance
ED(Pk:Qk)=∑i=1n(pki−qki)2E D\left(P_{k}: Q_{k}\right)=\sum_{i=1}^{n}\left(p_{k i}-q_{k i}\right)^{2} ED(Pk:Qk)=i=1∑n(pki−qki)2
- 卡方散度,chi-squared divergence
Chi(Pk:Qk)=∑i=1n(pki−qki)2qki\operatorname{Chi}\left(P_{k}: Q_{k}\right)=\sum_{i=1}^{n} \frac{\left(p_{k i}-q_{k i}\right)^{2}}{q_{k i}} Chi(Pk:Qk)=i=1∑nqki(pki−qki)2
Embed方法
嵌入方法的特征重要性取自模型训练过程中得到的中间数值,这里提出两种嵌入式方法和一种作为对比的嵌入式方法
- two-model method:基于meta-learning中的T-learner,取目标特征在两个模型中的特征重要性之和。
- Uplift-tree(KL divergence):在训练uplift tree过程中,每次分裂会计算分布散度的增益,取该特征的Δ\DeltaΔ之和,本文中DDD取KL散度。
Δ=∑k=left, right D(Pk:Qk)−D(P:Q)\Delta=\sum_{k=\text { left, right }} D\left(P_{k}: Q_{k}\right)-D(P: Q) Δ=k=left, right∑D(Pk:Qk)−D(P:Q)
- 作为对比的outcome embeded方法:直接对Y训练模型,并取模型给出的目标特征重要性做过滤。
特征过滤的效果
- 首先,对不同类型有效特征的提取能力。下图是指通过100次模拟试验,不同过滤方法筛选出的top6的特征,是实际有效特征的比例。可以看到,Bin-Based方法整体好于其他,尤其是平方、三角函数类型特征。
- 其次,看筛选后的模型效果。下图是不同meta-learner、不同uplift model、不同feature selection方法,选择top20特征时的AUUC值对比 。可以看出RLearner-RF模型,配KL-filter可以取得最佳的效果。
- 最后,看时间成本。Filter方法都很快,Embed-KL由于是纯python实现所以很慢,Embed的其他方法由于使用scikit-learn有Cython实现所以很快。
个人理解
在标准的机器学习预测模型中,特征筛选能够减少维护成本,提高训练速度,但并不能(或很少)带来准确率提升。而uplift modeling不同,该类问题对于无效特征更为敏感,如果能更准确的剔除无效特征,对准确率是会有提升效果的。
在实操中,使用Meta-Learning方法时,泛化能力更强的RF可以优先考虑;结合上述结果,bin-based(KL)方法和KL-embed方法是不错的选择。
【Uplift】特征选择篇相关推荐
- 机器学习 特征选择篇——python实现MIC(最大信息系数)计算
机器学习 特征选择篇--python实现MIC(最大信息系数)计算 摘要 python实现代码 计算实例 摘要 MIC(最大信息系数) 可以检测变量之间的非线性相关性,常用于特征工程中的特征选择,即通 ...
- 自然语言处理——文本分类概述
内容提要 分类概述 分类流程 数据采集 爬虫技术 页面处理 文本预处理 英文处理 中文处理 去停用词 文本表示 特征选择 分类模型 分类概述 分类(Classification)是指自动对数据进行 ...
- 文本分类入门(番外篇)特征选择与特征权重计算的区别
文本分类入门(番外篇)特征选择与特征权重计算的区别 在文本分类的过程中,特征(也可以简单的理解为"词")从人类能够理解的形式转换为计算机能够理解的形式时,实际上经过了两步骤的量化- ...
- [转]文本分类入门(番外篇)特征选择与特征权重计算的区别
原文地址:http://www.blogjava.net/zhenandaci/archive/2009/04/19/266388.html 在文本分类的过程中,特征(也可以简单的理解为"词 ...
- lasso特征选择python_特征选择怎么做?这篇文章告诉你
原标题:特征选择怎么做?这篇文章告诉你 照片由 Clem Onojeghuo 发布在 Unsplash 上面 作者 | Pier Paolo Ippolito 翻译 | Skura 编辑 | 唐里 原 ...
- 机器学习中特征选择怎么做?这篇文章告诉你
点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 来源 | AI开发者 简 介 据<福布斯>报道,每天大约会有 250 万 ...
- 分词之后的如何做特征选择_特征选择怎么做?这篇文章告诉你
作者 | Pier Paolo Ippolito 翻译 | Skura 编辑 | 唐里 原文标题:Feature Selection Techniques 据<福布斯>报道,每天大约会有 ...
- 深度学习核心技术精讲100篇(六十四)-特征选择原理及应用实战案例
前言 据<福布斯>报道,每天大约会有 250 万字节的数据被产生.然后,可以使用数据科学和机器学习技术对这些数据进行分析,以便提供分析和作出预测.尽管在大多数情况下,在开始任何统计分析之前 ...
- 800 篇顶会论文纵览推荐系统的前沿进展
© 作者|张君杰 机构|中国人民大学高瓴人工智能学院 引言:推荐系统作为人工智能领域最具有应用前景的方向之一,在学术界和工业界一直占据着重要地位.本文聚焦于推荐系统在学术研究方面的前沿进展,在之前整理 ...
- 【机器学习】机器学习算法优缺点对比(汇总篇)
作者 | 杜博亚 来源 | 阿泽的学习笔记 「本文的目的,是务实.简洁地盘点一番当前机器学习算法」.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的 ...
最新文章
- Flask 教程 第十三章:国际化和本地化
- 关闭edge任务栏预览_如何在Microsoft Edge中关闭选项卡预览
- Android之如何实现阿拉伯版本(RTL)的recycleView的网格布局
- 华为交换机VLAN的配置和实施
- java 类里面对象共享_Java并发编程 - 对象的共享
- [20180626]函数与标量子查询14.txt
- 专有网络VPC搭建FTP站点
- EasyUi-1 拖放
- Liunx 常用命令
- 特斯拉开始发布其汽车的开源Linux软件代码
- 免费苹果账号(apple id)申请ios证书p12真机调试
- 理解Mach-O文件格式(1)
- 正在与拖延症病魔抗争中
- Android通过USB与PC通信
- 机器学习(周志华)-支持向量机课后习题:
- TunesKit Video Cutter for Mac(视频分割编辑工具)
- SQLyog 试用期过的解决办法
- vue单页应用首屏加载速度慢如何解决
- POJ - 3384 Feng Shui(半平面交)
- VisualVM 启动报错Error Starting VisualVM:You are running VisualVM using Java Runtime Environment(JRE)
热门文章
- 了解Xcelsius2008系统
- centos8安装和启动中文智能拼音
- 软件测试的术语SRS,HLD,LLD,BD,FD,DD意义
- 白蛋白纳米-超声微泡载组织型纤溶酶原激活物基因靶向制备研究
- BZOJ2109: [Noi2010]Plane 航空管制 解题报告
- 知物由学 | SO加固如何提升Android应用的安全性?
- 2019东北四省 H. Skyscraper (树状数组)
- IDEA设置默认浏览器为chrome
- Echarts 3d地球toolstips实现
- UNews | 1.8亿!优维科技完成C轮融资!