用机器学习算法进行提升建模和因果推理的python包
causalml的Python项目详细描述
免责声明
这个项目是稳定的,正在酝酿长期的支持。它可能包含新的实验代码,api可能会更改。
因果ml:用ml进行提升建模和因果推理的python包
因果ml是一个python包,它使用基于最新的机器学习算法提供了一套提升建模和因果推理方法
研究。它提供了一个标准接口,允许用户估计条件平均治疗效果(cate)或个别治疗
实验或观测数据的影响。本质上,它估计了干预对使用者的结果的因果影响。
具有观测到的特征X
,对模型形式没有很强的假设。典型用例包括
campaign targeting optimization:提高广告活动投资回报率的一个重要杠杆是将广告定位于在给定的关键绩效指标(如参与度或销售额)中有良好响应的一组客户。cate通过从a/b实验或历史观察数据中估计广告曝光对kpi的影响来识别这些客户。
Personalized Engagement:一家公司有多种与客户互动的选择,例如在向上销售或用于通信的消息传递渠道中有不同的产品选择。利用cate估计每个客户的异构处理效果,并结合处理方案组合,得到一个最优的个性化推荐系统。
包当前支持以下方法
- 基于树的算法
- 关于kl散度、欧氏距离和卡方的提升树/随机森林
- 背景处理选择上的提升树/随机森林
- 元学习算法
- S-学习者
- T-学习者
- X-学习者
- R-学习者
安装
先决条件
安装依赖项:
$ pip install -r requirements.txt
从PIP安装:
$ pip install causalml
从源安装:
$ git clone https://github.com/uber-common/causalml.git
$ cd causalml
$ python setup.py build_ext --inplace
$ python setup.py install
快速启动
S、T和X学习者的平均治疗效果评估
fromcausalml.inferenceimportLinearRegressionSLearnerfromcausalml.inferenceimportXGBTLearner,MLPTLearnerfromcausalml.inferenceimportBaseXLearnerfromcausalml.datasetimportsynthetic_datay,X,treatment,_=synthetic_data(mode=1,n=1000,p=5,sigma=1.0)lr=LinearRegressionSLearner()te,lb,ub=lr.estimate_ate(X,treatment,y)logger.info('Average Treatment Effect (Linear Regression): {:.2f} ({:.2f}, {:.2f})'.format(te,lb,ub))xg=XGBTLearner(random_state=42)te,lb,ub=xg.estimate_ate(X,treatment,y)logger.info('Average Treatment Effect (XGBoost): {:.2f} ({:.2f}, {:.2f})'.format(te,lb,ub))nn=MLPTLearner(hidden_layer_sizes=(10,10),learning_rate_init=.1,early_stopping=True,random_state=42)te,lb,ub=nn.estimate_ate(X,treatment,y)logger.info('Average Treatment Effect (Neural Network (MLP)): {:.2f} ({:.2f}, {:.2f})'.format(te,lb,ub))xl=BaseXLearner(learner=XGBRegressor(random_state=42))te,lb,ub=xl.estimate_ate(X,p,treatment,y)logger.info('Average Treatment Effect (XGBoost): {:.2f} ({:.2f}, {:.2f})'.format(te,lb,ub))
贡献
我们欢迎社区贡献者参与这个项目。在开始之前,请先阅读我们的code of conduct并查看contributing guidelines。
版本控制
我们在changelog中记录版本和更改。
许可证
此项目是在Apache2.0许可下授权的—有关详细信息,请参阅LICENSE文件。
参考资料
论文
- 尼古拉斯J拉德克利夫和帕特里克D苏里。基于显著性提升树的真实世界提升模型。白皮书TR-2011-1,随机解决方案,2011年。
- 赵燕,小芳,李大卫。多种处理和一般响应类型的抬升模型。2017年会议记录 暹罗国际数据挖掘会议,暹罗,2017年。
- 舍仁·克孜尔、贾斯吉特·塞孔、彼得·比克尔和本·余。使用机器学习估计异质治疗效果的金属制造者。 《美国国家科学院院刊》,2019年。
- 聂新坤和斯特凡打赌。非均匀处理效果的准预言估计。大西洋因果推断会议,2018年。
相关项目
- uplift:r中的提升模型
- grf:在r
- rlearner:实现r-learner的r包
- DoWhy:基于朱迪亚·珀尔微积分的python因果推理
- EconML:一个python包,它实现了来自计量经济学和机器学习方法的异构处理效果估计器