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(mn),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=1KNNkD(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=1npkilog⁡pkiqkiKL\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=1npkilogqkipki

  • 欧式距离,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=1n(pkiqki)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=1nqki(pkiqki)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, rightD(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】特征选择篇相关推荐

  1. 机器学习 特征选择篇——python实现MIC(最大信息系数)计算

    机器学习 特征选择篇--python实现MIC(最大信息系数)计算 摘要 python实现代码 计算实例 摘要 MIC(最大信息系数) 可以检测变量之间的非线性相关性,常用于特征工程中的特征选择,即通 ...

  2. 自然语言处理——文本分类概述

    内容提要 分类概述 分类流程 数据采集 爬虫技术 页面处理 文本预处理 英文处理 中文处理 去停用词 文本表示 特征选择 分类模型 分类概述   分类(Classification)是指自动对数据进行 ...

  3. 文本分类入门(番外篇)特征选择与特征权重计算的区别

    文本分类入门(番外篇)特征选择与特征权重计算的区别 在文本分类的过程中,特征(也可以简单的理解为"词")从人类能够理解的形式转换为计算机能够理解的形式时,实际上经过了两步骤的量化- ...

  4. [转]文本分类入门(番外篇)特征选择与特征权重计算的区别

    原文地址:http://www.blogjava.net/zhenandaci/archive/2009/04/19/266388.html 在文本分类的过程中,特征(也可以简单的理解为"词 ...

  5. lasso特征选择python_特征选择怎么做?这篇文章告诉你

    原标题:特征选择怎么做?这篇文章告诉你 照片由 Clem Onojeghuo 发布在 Unsplash 上面 作者 | Pier Paolo Ippolito 翻译 | Skura 编辑 | 唐里 原 ...

  6. 机器学习中特征选择怎么做?这篇文章告诉你

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 来源 | AI开发者 简  介 据<福布斯>报道,每天大约会有 250 万 ...

  7. 分词之后的如何做特征选择_特征选择怎么做?这篇文章告诉你

    作者 | Pier Paolo Ippolito 翻译 | Skura 编辑 | 唐里 原文标题:Feature Selection Techniques 据<福布斯>报道,每天大约会有 ...

  8. 深度学习核心技术精讲100篇(六十四)-特征选择原理及应用实战案例

    前言 据<福布斯>报道,每天大约会有 250 万字节的数据被产生.然后,可以使用数据科学和机器学习技术对这些数据进行分析,以便提供分析和作出预测.尽管在大多数情况下,在开始任何统计分析之前 ...

  9. 800 篇顶会论文纵览推荐系统的前沿进展

    © 作者|张君杰 机构|中国人民大学高瓴人工智能学院 引言:推荐系统作为人工智能领域最具有应用前景的方向之一,在学术界和工业界一直占据着重要地位.本文聚焦于推荐系统在学术研究方面的前沿进展,在之前整理 ...

  10. 【机器学习】机器学习算法优缺点对比(汇总篇)

    作者 | 杜博亚 来源 | 阿泽的学习笔记 「本文的目的,是务实.简洁地盘点一番当前机器学习算法」.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的 ...

最新文章

  1. Flask 教程 第十三章:国际化和本地化
  2. 关闭edge任务栏预览_如何在Microsoft Edge中关闭选项卡预览
  3. Android之如何实现阿拉伯版本(RTL)的recycleView的网格布局
  4. 华为交换机VLAN的配置和实施
  5. java 类里面对象共享_Java并发编程 - 对象的共享
  6. [20180626]函数与标量子查询14.txt
  7. 专有网络VPC搭建FTP站点
  8. EasyUi-1 拖放
  9. Liunx 常用命令
  10. 特斯拉开始发布其汽车的开源Linux软件代码
  11. 免费苹果账号(apple id)申请ios证书p12真机调试
  12. 理解Mach-O文件格式(1)
  13. 正在与拖延症病魔抗争中
  14. Android通过USB与PC通信
  15. 机器学习(周志华)-支持向量机课后习题:
  16. TunesKit Video Cutter for Mac(视频分割编辑工具)
  17. SQLyog 试用期过的解决办法
  18. vue单页应用首屏加载速度慢如何解决
  19. POJ - 3384 Feng Shui(半平面交)
  20. VisualVM 启动报错Error Starting VisualVM:You are running VisualVM using Java Runtime Environment(JRE)

热门文章

  1. 了解Xcelsius2008系统
  2. centos8安装和启动中文智能拼音
  3. 软件测试的术语SRS,HLD,LLD,BD,FD,DD意义
  4. 白蛋白纳米-超声微泡载组织型纤溶酶原激活物基因靶向制备研究
  5. BZOJ2109: [Noi2010]Plane 航空管制 解题报告
  6. 知物由学 | SO加固如何提升Android应用的安全性?
  7. 2019东北四省 H. Skyscraper (树状数组)
  8. IDEA设置默认浏览器为chrome
  9. Echarts 3d地球toolstips实现
  10. UNews | 1.8亿!优维科技完成C轮融资!