econml介绍

EconML简介

EconML: A Python Package for ML-Based Heterogeneous Treatment Effects Estimation

EconML是一个通过机器学习方法从观察数据中估计heterogeneous treatment effects的Python包。该软件包是微软研究院ALICE项目的一部分,目的是将最新的机器学习方法与计量经济学结合,从而实现复杂因果推断问题的自动化。EconML希望做到以下几点:

  • 实现同时涉及计量经济学和机器学习的最新方法
  • 保持对effect heterogeneity建模的灵活性(通过随机森林、boosting、lasso和神经网络等技术),同时保留所学模型的因果解释,并同时提供有效的置信区间
  • 使用统一的API
  • 构建标准的Python包以用于机器学习和数据分析

机器学习最大的promise之一是在许多领域实现决策的自动化。许多数据驱动的决策场景的核心问题是对heterogeneous treatment effects的估计,也即:对于具有特定特征集的样本,干预对输出结果的causal effect是什么?简言之,这个Python工具包旨在测量某些干预变量T对结果变量Y的causal effect,控制一组特征X和W,来衡量causal effect如何随X的变化而变化。这个包里实现的方法适用于观察的数据集(非实验或历史)。为了使估计结果具有因果解释,一些算法假设数据中没有未观察到的混杂因子(即同时对T和Y产生影响的因子均被包含在X,W中),而其他一些算法则假设可以使用工具变量Z(即观测变量Z对干预T有影响,但对结果变量Y没有直接影响)。并且包中的大多数算法都可以提供置信区间和推断结果。

EconML包的详细文档见:Welcome to econml’s documentation。

causal inference和heterogeneous treatment effects的使用背景和具体的case见文档。具体的例子有:ABtest的例子,客户细分,软件公司的多元投资归因

 

GITHUB :https://github.com/py-why/EconML

doc::econml.dml.CausalForestDML — econml 0.14.1 documentation

econml介绍_第1张图片

CausalForestDML

est = CausalForestDML(discrete_treatment=False)
# 拟合模型
est.fit(y, T, X=X)
# 最终模型结果
est.summary() # 如果dlm最终模型是线性模型,那这里显示线性模型的回归系数,此时是一个二次项模型,还有截距项
est.coef_# The coefficients in the linear model of the constant marginal treatment effect. 最终模型是线性的话,就是线性回归系数
est.intercept_ # 线性模型的截距项

# 使用的模型:最终模型 / T~X模型 / Y~X模型
est.model_cate,est.models_t,est.models_y

# 模型计算过程中,前面步骤的残差
res_dict = ['y_res', 'T_res', 'X', 'W']
{res_dict[n]:i for n,i in enumerate(est.residuals_)}  # y_res, T_res, X, W,需要cache_values=True

 

from lightgbm import LGBMRegressor
from econml.dml import DML, CausalForestDML
 
######第一步,训练uplift模型########
dmlmodel = CausalForestDML(
    criterion='mse',
    n_estimators=240,
    max_depth=4,
    min_samples_leaf=2000,
    min_samples_split=2000,
    n_jobs=-1,
    model_y=LGBMRegressor(n_estimators=250, ##
                       max_depth=5,
                       num_leaves=31,
                       learning_rate=0.01,
                       subsample=0.7,
                       min_child_samples=2000,
                       reg_alpha=0.01,
                       reg_lambda=0.01,
                       importance_type='gain'),
     #model_t=RandomPropensityScoreModel(t),此处可以自定义,但是如果不添加,那么用默认的数据
    , verbose=0
    , discrete_treatment=False
    , honest=True
    , min_var_fraction_leaf=0.1
    , min_var_leaf_on_val=True
)
 
dmlmodel.fit(Y=y, T=t, X=x)
#预测部分,在treatment=1时候的结果
pred1=dmlmodel.effect(X=X_test,T0=0,T1=1)
pred2=dmlmodel.effect(X=X_test,T0=0,T1=2)
 
model_path = 'model.pkl'
with open(model_path, 'wb') as f:
    pickle.dump(dmlmodel, f)
 
 
######第二步,训练y0基础模型###########
base_model=LGBMClassifier(n_estimators=400,
                       max_depth=4,
                       num_leaves=16,
                       learning_rate=0.2,
                       subsample=0.3,
                       min_child_samples=5000,
                       reg_alpha=0.01,
                       reg_lambda=0.01,
                       importance_type='gain',
                         class_weight=None)
base_model.fit(X_train, y_train, eval_set=(X_test, y_test), 
             eval_names=None, 
             eval_sample_weight=None, 
             eval_class_weight=None, 
             eval_init_score=None, 
             eval_metric='auc', 
             early_stopping_rounds=100,
         )
 
base_prob = base_model.predict_proba(X_test)

econml介绍_第2张图片

 

在EconML的LinearDML模型中,有不同的属性用于表示不同的模型部分,如treatment_model_表示干预模型,outcome_model_表示结果模型,final_model_表示最终模型等。

LinearDML模型中,cate_model表示常数边际CATE模型,它是在拟合模型后通过fit方法获得的。你可以使用cate_model属性来对已经拟合好的常数边际CATE模型进行预测操作,计算不同干预值下的CATE。

econml介绍_第3张图片

 

参考

  1. 微软EconML简介:基于机器学习的Heterogeneous Treatment Effects估计 - 知乎
  2. 因果推断笔记——因果图建模之微软开源的EconML(五) - 知乎
  3. 用户增长因果推断方法_因果路径决策树_wendaJ的博客-CSDN博客
  4. 史上最全因果推断合集-10(滴滴的国际化外卖团队智能补贴实战)_滴滴 单明辉_草帽-路飞的博客-CSDN博客
  5. 应用双重机器学习(Double Machine Learning)计算额度-响应弹性系数 - 知乎
  6. 【机器学习-因果推断】EconML 双重机器学习正交森林上手小案例 n(Python) - 知乎
  7. 一图讲清因果推断 - 搜索结果 - 知乎
  8. 因果推断笔记(五)——自整理因果推断应用 - 知乎
  9. 【因果前沿】因果效应估计综述:挑战、机会和最新进展 - 知乎
  10. 因果推断与反事实预测——利用DML进行价格弹性计算(二十四) - 知乎
  11. 基于表征学习的因果推断技术在快手的实践 - AIQ
  12. 因果推断笔记——DML :Double Machine Learning案例学习(十六)_悟乙己的博客-CSDN博客
  13. 因果论文精读与总结(一)_语洛的博客-CSDN博客

 

 

你可能感兴趣的:(因果推断,机器学习,人工智能)