这个包包含计算条件平均治疗效果的几种方法
econml的Python项目详细描述
econml:基于ml的异构治疗效果评估的python包
econml是一个python包,用于通过机器学习从观察数据中估计异质治疗效果。此软件包是作为Microsoft Research的Alice项目的一部分设计和构建的,目的是将最先进的机器学习结合起来 计量经济学的技术,使复杂的因果推理问题自动化。econml的承诺:
- 在计量经济学和机器学习的交叉点实施文献中的最新技术
- 在建模效果异质性时保持灵活性(通过随机森林、boosting、套索和神经网络等技术),同时保留对所学模型的因果解释,并通常提供有效的置信区间
- 使用统一的API
- 建立在机器学习和数据分析的标准python包之上
简而言之,这个
工具包旨在测量某些治疗变量对治疗结果的因果影响
变量 机器学习的最大承诺之一是在许多领域实现决策自动化。许多数据驱动的个性化决策场景的核心是对异质治疗效果的估计:对于具有特定特征集的样本,干预对感兴趣结果的因果影响是什么? 这些问题经常出现在客户细分(将客户置于另一层之上的某一层的影响是什么)、动态定价(定价政策对需求的影响是什么)和医学研究(治疗对患者的影响是什么)中。在许多这样的情况下,我们有大量的观察数据,其中治疗是通过一些未知的策略选择的,但是运行控制A/B测试的能力是有限的。 企业为客户提供个性化的激励措施,以提高销售额和参与度。任何此类个性化干预都对应于货币投资,而商业分析被要求回答的主要问题是:投资回报率是多少?分析投资回报率本质上是一个治疗效果问题:任何投资对客户支出的影响是什么?了解不同客户的投资回报率如何变化,可以通过更好的目标定位实现更具针对性的投资策略和更高的投资回报率。
个性化折扣在数字经济中已经非常普遍。为了制定最优的个性化折扣政策,企业需要了解价格下跌对客户对产品需求的影响,这是客户特征的函数。这种个性化需求弹性的估计也可以用异质处理效果的语言来表达,其中处理是需求上的价格,作为客户可观察特征的函数。
在页面布局和广告投放的设计中,了解页面组件在页面不同位置的点击率非常重要。现代的方法可能是运行多个A/B测试,但是当这样的页面组件涉及到收入考虑时,观察数据可以帮助指导正确的A/B测试运行。非均匀处理效果估计可以从观测数据中估计页面组件的点击率。在这个设置中,处理方法很简单,就是组件是否被放置在那个页面位置,响应是用户是否点击了它。
2019年6月3日:版本v0.1,欢迎尝试并提供反馈。 从pypi安装最新版本
要从源代码安装,请参见下面的"开发人员"部分。
双机器学习
深层仪器变量
引导置信区间 要查看更复杂的示例,请转到存储库的笔记本部分。有关治疗效果估计算法的更详细描述,请参阅econml文档 您可以从克隆此存储库开始。我们使用
用于构建和分发我们的包的setuptools。
我们依赖于setuptools的一些最新功能,因此请确保使用
此项目使用pytest进行测试。要在安装包后在本地运行测试,
您可以使用 本项目的文档通过sphinx生成。生成本地副本
在这个存储库的克隆文档中,只需运行 构成文档的重构文本文件存储在文档目录中;模块文档由Sphinx生成过程自动生成。 2019年5月:开放数据科学研讨会
2018年:正交随机森林纸
2017年:http://progressions.mlr.press/v70/hartford17a/hartford17a.pdf" rel="nofollow">deepiv文件 这个项目欢迎大家提出意见和建议。大多数捐款要求您同意
出资人许可协议(CLA)声明您有权并且实际上有权授予我们
使用您的捐款的权利。有关详细信息,请访问https://cla.microsoft.com" rel="nofollow">https://cla.microsoft.com 当您提交拉取请求时,cla bot将自动确定您是否需要提供
a cla并适当地装饰pr(例如,标签、注释)。只需按照说明操作
由机器人提供。您只需使用我们的CLA在所有回购协议中执行一次即可。 本项目采用了微软开源行为准则。
有关更多信息,请参见行为准则常见问题解答或
如有任何其他问题或意见,请联系opencode@microsoft.com。 奥普雷斯库,V.锡尔加尼斯和Z.S.吴。
用于因果推理的正交随机林。
2018年,arxiv预印本arxiv:1806.03467。 贾森·哈特福德、格雷格·刘易斯、凯文·莱顿·布朗和马特·塔迪。Deep IV:反事实预测的灵活方法。第34届机器学习国际会议记录,2017。。 V.切尔诺朱科夫、D.切特维里科夫、M.德米尔、E.杜弗洛、C.汉森和A.W.纽伊。治疗和因果参数的双机器学习。arxiv预印本arxiv:1608.00060,2016。y
,控制一组功能x
。关于包裹的详细信息,
请参阅https://econml.azurewebsites.net/上的文档。
<详情>简介
关于治疗效果评估
示例应用程序
<表> IMGsrc="https://warehouse-camo.cmh1.psfhosted.org/357FCA66112A66112A2A3335C9C01DF5C654CBB10CBB10CBB10DDF47E/68747470733A3A3222222222F775706C661642E776966D56469666D65564646966E6567672F67672F6767672F7676767672626672F676767676767676B676767676762622F626F6D6F6D6F6D6E732F7746875666D62626D626D626F62626F652F652F622F652F622F62623070782D427573696号E657335F636172645F2D5F5468655F4E6F756E5F50726F6A6563742E7376672E706E67" /> 客户目标
个性化定价
<表>学习点击率
新闻
入门
安装
pip install econml
用法示例
fromeconml.dmlimportDMLCateEstimatorfromsklearn.linear_modelimportLassoCVest=DMLCateEstimator(model_y=LassoCV(),model_t=LassoCV)est.fit(Y,T,X,W)# W -> high-dimensional confounders, X -> featurestreatment_effects=est.const_marginal_effect(X_test)
fromeconml.ortho_forestimportContinuousTreatmentOrthoForest# Use defaultsest=ContinuousTreatmentOrthoForest()# Or specify hyperparametersest=ContinuousTreatmentOrthoForest(n_trees=500,min_leaf_size=10,max_depth=10,subsample_ratio=0.7,lambda_reg=0.01,model_T=LassoCV(cv=3),model_Y=LassoCV(cv=3))est.fit(Y,T,X,W)treatment_effects=est.const_marginal_effect(X_test)
importkerasfromeconml.deepivimportDeepIVEstimatortreatment_model=keras.Sequential([keras.layers.Dense(128,activation='relu',input_shape=(2,)),keras.layers.Dropout(0.17),keras.layers.Dense(64,activation='relu'),keras.layers.Dropout(0.17),keras.layers.Dense(32,activation='relu'),keras.layers.Dropout(0.17)])response_model=keras.Sequential([keras.layers.Dense(128,activation='relu',input_shape=(2,)),keras.layers.Dropout(0.17),keras.layers.Dense(64,activation='relu'),keras.layers.Dropout(0.17),keras.layers.Dense(32,activation='relu'),keras.layers.Dropout(0.17),keras.layers.Dense(1)])est=DeepIVEstimator(n_components=10,# Number of gaussians in the mixture density networks)m=lambdaz,x:treatment_model(keras.layers.concatenate([z,x])),# Treatment modelh=lambdat,x:response_model(keras.layers.concatenate([t,x])),# Response modeln_samples=1# Number of samples used to estimate the response)est.fit(Y,T,X,Z)# Z -> instrumental variablestreatment_effects=est.effect(T0,T1,X_test)
fromeconml.bootstrapimportBootstrapEstimator# Bootstrap estimator wrapperboot_est=BootstrapEstimator(est,n_bootstrap_samples=10)boot_est.fit(Y,T,X,W)treatment_effect_interval=boot_est.const_marginal_effect_interval(X_test,lower=1,upper=99)
对于开发人员
pip install setuptools--升级
。然后,从存储库的本地副本运行python setup.py develop
开始。运行测试
python setup.py pytest
生成文档
python setup.py build_sphinx
,它将构建文档并放置它
在build/sphinx/html
路径下。博客和出版物
贡献和反馈
参考资料
推荐PyPI第三方库