精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于因果森林算法的決策定位應(yīng)用

譯文 精選
人工智能 機(jī)器學(xué)習(xí)
本文將通過(guò)一個(gè)實(shí)戰(zhàn)案例來(lái)深入探討如何使用機(jī)器學(xué)習(xí)隨機(jī)森林算法來(lái)輔助實(shí)現(xiàn)管理決策的戰(zhàn)略定位。

譯者 | 朱先忠?

審校 | 孫淑娟?

在我之前的??博客??中,我們已經(jīng)了了如何使用因果樹來(lái)評(píng)估政策的異質(zhì)處理效應(yīng)。如果你還沒有讀過(guò),我建議你在閱讀本文前先讀一遍,因?yàn)槲覀?/span>在本文中認(rèn)為你已經(jīng)了解了此文中部分與本文相關(guān)的內(nèi)容。

為什么是異質(zhì)處理效應(yīng)(HTE:heterogenous treatment effects)?首先,對(duì)異質(zhì)處理效應(yīng)的估計(jì)允許我們根據(jù)們的預(yù)期結(jié)果(疾病、公司收入、客戶滿意度等)選擇提供處理(藥物、廣告、產(chǎn)品等)的用戶(患者、用戶、客戶等)。換句話說(shuō),估計(jì)HTE有助于我們進(jìn)行目標(biāo)定位。事實(shí)上,正如我們將在文章后面看到的那樣,一種處理方法在給一部分用戶帶來(lái)積極益處的同時(shí),平均來(lái)說(shuō)可能無(wú)效甚至適得其反。相反的情況也可能是這樣的:一種藥物平均來(lái)說(shuō)是有效的,但如果我們明確它對(duì)其有副作用的使用者信息的話此藥物的有效性就會(huì)進(jìn)一步提高。?

在本文中,我們將探討因果樹的一個(gè)擴(kuò)展——因果林。正如隨機(jī)森林通過(guò)將多個(gè)自助樹平均在一起來(lái)擴(kuò)展回歸樹一樣,因果森林也擴(kuò)展了因果樹。主要的區(qū)別來(lái)自于推理的角度,它不那么直接。我們還將了解如何比較不同HTE估計(jì)算法的輸出,以及如何將其用于政策目標(biāo)。?

在線折扣案例?

在本文的其余部分,我們繼續(xù)使用我上一篇有關(guān)因果樹文章中使用的玩具示例:我們假設(shè)我們是一家在線商店,我們有興趣了解向新客戶提供折扣是否會(huì)增加他們?cè)谏痰曛械闹С觥?

為了了解折扣是否劃算,我們進(jìn)行了以下隨機(jī)實(shí)驗(yàn)或A/B測(cè)試:每次新客戶瀏覽我們的在線商店時(shí),我們都會(huì)將其隨機(jī)分配給一個(gè)處理條件。我們?yōu)槭?/span>處理的用戶提供折扣而為控制用戶,我們不提供折扣。我從文件src.dgp導(dǎo)入數(shù)據(jù)生成過(guò)程dgp_online_discounts()。我還從src.utils庫(kù)導(dǎo)入一些繪圖函數(shù)和庫(kù)。為了不僅包括代碼,還包括數(shù)據(jù)和表等內(nèi)容,我使用了Deepnote框架,這是一個(gè)類似Jupyter的基于Web的協(xié)作筆記本環(huán)境。?

我們有100000名在線cstore訪問(wèn)者的數(shù)據(jù),我們觀察他們?cè)L問(wèn)網(wǎng)站的時(shí)間、使用的設(shè)備、瀏覽器和地理區(qū)域。我們還會(huì)觀察到他們是否得到了折扣,我們的處理方式,他們的花費(fèi)是多少,以及其他一些感興趣的結(jié)果?

由于實(shí)驗(yàn)是隨機(jī)分配的,我們可以使用簡(jiǎn)單的均值差估計(jì)來(lái)估計(jì)實(shí)驗(yàn)效果。我們期望實(shí)驗(yàn)組和對(duì)照組相似,但折扣除外,因此我們可以將支出的任何差異歸因于折扣。?

折扣看起來(lái)似乎是有效的:實(shí)驗(yàn)組的平均花費(fèi)增加了1.95美元。但是所有的顧客都受到同樣的影響嗎??

為了回答這個(gè)問(wèn)題,我們想估計(jì)異質(zhì)處理效應(yīng),可能是在個(gè)體層面。?

因果森林?

計(jì)算異質(zhì)處理效應(yīng)有許多不同的選擇。最簡(jiǎn)單的方法是以異質(zhì)性的維度與感興趣的結(jié)果進(jìn)行交互。這種方法的問(wèn)題在于選擇哪個(gè)變量。有時(shí),我們有可能指導(dǎo)我們行動(dòng)事先信息;例如,我們可能知道移動(dòng)用戶的平均花費(fèi)比桌面用戶多。其他時(shí)候,出于商業(yè)原因,我們可能對(duì)某個(gè)維度感興趣;例如,我們可能希望在某個(gè)地區(qū)投資更多。然而,當(dāng)我們沒有額外的信息時(shí),我們希望這個(gè)過(guò)程是數(shù)據(jù)驅(qū)動(dòng)的。?

在上一篇文章中,我們探索了一種數(shù)據(jù)驅(qū)動(dòng)的方法來(lái)估計(jì)異質(zhì)處理效應(yīng)——因果樹。我們現(xiàn)在將把它們擴(kuò)展到因果森林。然而,在我們開始之前,我們必須介紹一下它的非因果表親——隨機(jī)森林。?

隨機(jī)森林,顧名思義,是回歸樹的延伸,在其上增加了兩個(gè)獨(dú)立的隨機(jī)性來(lái)源。特別是,隨機(jī)森林算法能夠對(duì)許多不同的回歸樹進(jìn)行預(yù)測(cè),每個(gè)樹都在數(shù)據(jù)的自助樣本上進(jìn)行訓(xùn)練,并將它們平均在一起。該過(guò)程通常稱為引導(dǎo)聚集算法,又稱裝袋算法,可以應(yīng)用于任何預(yù)測(cè)算法,而不是隨機(jī)森林特有的。隨機(jī)性的額外來(lái)源來(lái)自特征選擇,因?yàn)樵诿看畏指顣r(shí),只有所有特征X的隨機(jī)子集被考慮用于最優(yōu)分割。?

這兩個(gè)額外的隨機(jī)性來(lái)源非常重要,有助于提高隨機(jī)森林的性能。首先,裝袋算法允許隨機(jī)森林通過(guò)對(duì)多個(gè)離散預(yù)測(cè)進(jìn)行平均來(lái)產(chǎn)生比回歸樹更平滑的預(yù)測(cè)。相反,隨機(jī)特征選擇允許隨機(jī)森林更深入地探索特征空間,允許它們發(fā)現(xiàn)比簡(jiǎn)單回歸樹更多的交互。事實(shí)上,變量之間可能存在相互作用,這些相互作用本身不具有很強(qiáng)的預(yù)測(cè)性(因此不會(huì)產(chǎn)生分裂),但共同作用非常強(qiáng)大。?

因果森林相當(dāng)于隨機(jī)森林,但用于估計(jì)異質(zhì)處理效應(yīng),與因果樹和回歸樹完全相同。正如因果樹一樣,我們有一個(gè)基本問(wèn)題:我們有興趣預(yù)測(cè)一個(gè)我們沒有觀察到的對(duì)象:個(gè)體處理效果τ?。解決方案是創(chuàng)建一個(gè)輔助結(jié)果變量Y*,其每一次觀察的預(yù)期值正好是處理效果。?

輔助結(jié)果變量?

如果你想更多了解為什么這個(gè)變量對(duì)個(gè)體處理效果沒有添加偏置的話,請(qǐng)看一下??我之前的文章??,我在這篇文章中進(jìn)行了詳細(xì)介紹。簡(jiǎn)而言之,您可以認(rèn)為Y?*作為單個(gè)觀測(cè)的均值差估計(jì)量。

一旦我們有了一個(gè)結(jié)果變量,為了使用隨機(jī)森林來(lái)估計(jì)異質(zhì)處理效應(yīng),我們還需要做一些事情。首先,我們需要建造在每片葉子上具有相同數(shù)量的處理單元和控制單元的樹。其次,我們需要使用不同的樣本來(lái)構(gòu)建樹并對(duì)其進(jìn)行評(píng)估,即計(jì)算每片葉子的平均結(jié)果。這個(gè)過(guò)程通常被稱為誠(chéng)實(shí)樹(honest trees),因?yàn)槲覀兛梢詫⒚總€(gè)葉子的樣本視為獨(dú)立于樹結(jié)構(gòu),所以它對(duì)推斷非常有用。?

在進(jìn)行評(píng)估之前,讓我們先為分類變量device、browserregion生成虛擬變量。?

df_dummies = pd.get_dummies(df[dgp.X[1:]], drop_first=True)?
df = pd.concat([df, df_dummies], axis=1)?
X = ['time'] + list(df_dummies.columns)?

現(xiàn)在,我們可以使用隨機(jī)森林算法來(lái)估計(jì)異質(zhì)處理效應(yīng)。幸運(yùn)的是,我們不必手動(dòng)完成所有這些,因?yàn)?/span>微軟公司的EconML包中已經(jīng)提供了一個(gè)很好的因果樹和森林實(shí)現(xiàn)。我們將使用其中的CausalForestML函數(shù)。?

from econml.dml import CausalForestDML?

np.random.seed(0)?
forest_model = CausalForestDML(max_depth=3)?
forest_model = forest_model.fit(Y=df[dgp.Y], X=df[X], T=df[dgp.D])?

與因果樹不同,因果森林更難解釋,因?yàn)槲覀儫o(wú)法可視化每一棵樹。我們可以使用SingleTreeateInterpreter函數(shù)來(lái)繪制因果森林算法的等效表示。?

from econml.cate_interpreter import SingleTreeCateInterpreter?

intrp = SingleTreeCateInterpreter(max_depth=2).interpret(forest_model, df[X])?
intrp.plot(feature_names=X, fnotallow=12)?

因果森林模型表示?

我們可以像因果樹模型一樣解釋樹形圖。在頂部,我們可以看到數(shù)據(jù)中的平均$Y^*$的值為1.917$。從那里開始,根據(jù)每個(gè)節(jié)點(diǎn)頂部突出顯示的規(guī)則,數(shù)據(jù)被拆分為不同的分支。例如,根據(jù)時(shí)間是否晚于11.295,第一節(jié)點(diǎn)將數(shù)據(jù)分成大小為46878$和53122$的兩組。在底部,我們得到了帶有預(yù)測(cè)值的最終分區(qū)。例如,最左邊的葉子包含40191$的觀察值(時(shí)間早于11.295,非Safari瀏覽器環(huán)境下),我們預(yù)測(cè)其花費(fèi)為0.264$。較深的節(jié)點(diǎn)顏色表示預(yù)測(cè)值較高。?

這種表示的問(wèn)題在于,與因果樹的情況不同,它只是對(duì)模型的解釋。由于因果森林是由許多自樹組成的,因此無(wú)法直接檢查每個(gè)決策樹。了解在確定樹分割時(shí)哪個(gè)特征最重要的一種方法是所謂的特征重要性。?

顯然,時(shí)間是異質(zhì)性的第一個(gè)維度,其次是設(shè)備(特別是移動(dòng)設(shè)備)和瀏覽器(特別是Safari)。其他維度無(wú)關(guān)緊要。?

現(xiàn)在,讓我們檢查一下模型性能如何?

性能?

通常,我們無(wú)法直接評(píng)估模型性能,因?yàn)榕c標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)設(shè)置不同,我們沒有觀察到實(shí)際情況。因此,我們不能使用測(cè)試集來(lái)計(jì)算模型精度的度量。然而,在我們的案例中,我們控制了數(shù)據(jù)生成過(guò)程,因此我們可以獲得基本的真相。讓我們從分析模型如何沿著數(shù)據(jù)、設(shè)備、瀏覽器和區(qū)域的分類維度估計(jì)異質(zhì)處理效應(yīng)開始。?

def compute_discrete_effects(df, hte_model):?
temp_df = df.copy()?
temp_df.time = 0?
temp_df = dgp.add_treatment_effect(temp_df)?
temp_df = temp_df.rename(columns={'effect_on_spend': 'True'})?
temp_df['Predicted'] = hte_model.effect(temp_df[X])?
df_effects = pd.DataFrame()?
for var in X[1:]:?
for effect in ['True', 'Predicted']:?
v = temp_df.loc[temp_df[var]==1, effect].mean() - temp_df[effect][temp_df[var]==0].mean()?
effect_var = {'Variable': [var], 'Effect': [effect], 'Value': [v]}?
df_effects = pd.concat([df_effects, pd.DataFrame(effect_var)]).reset_index(drop=True)?
return df_effects, temp_df['Predicted'].mean()?

df_effects, avg_effect_notime = compute_discrete_effects(df, forest_model)?

對(duì)于每個(gè)分類變量,我們繪制了實(shí)際和估計(jì)的平均處理效果。?

fig, ax = plt.subplots()?
sns.barplot(data=df_effects, x="Variable", y="Value", hue="Effect", ax=ax).set(?
xlabel='', ylabel='', title='Heterogeneous Treatment Effects')?
ax.set_xticklabels(ax.get_xticklabels(), rotatinotallow=45, ha="right");?

作者提供的每個(gè)分類值的真實(shí)和估計(jì)處理效果?

因果森林算法非常善于預(yù)測(cè)與分類變量相關(guān)的處理效果。至于因果樹,這是預(yù)期的,因?yàn)樗惴ň哂蟹浅kx散的性質(zhì)。然而,與因果樹不同的是,預(yù)測(cè)更加微妙。?

我們現(xiàn)在可以做一個(gè)更相關(guān)的測(cè)試:算法在時(shí)間等連續(xù)變量下的表現(xiàn)如何?首先,讓我們?cè)俅胃綦x預(yù)測(cè)的處理效果,并忽略其他協(xié)變量。?

def compute_time_effect(df, hte_model, avg_effect_notime):?

df_time = df.copy()?
df_time[[X[1:]] + ['device', 'browser', 'region']] = 0?
df_time = dgp.add_treatment_effect(df_time)?
df_time['predicted'] = hte_model.effect(df_time[X]) + avg_effect_notime?
return df_time?

df_time = compute_time_effect(df, forest_model, avg_effect_notime)?

我們現(xiàn)在可以復(fù)制之前的數(shù)字,但時(shí)間維度除外。我們繪制了一天中每個(gè)時(shí)間的平均真實(shí)和估計(jì)處理效果。?

sns.scatterplot(x='time', y='effect_on_spend', data=df_time, label='True')?
sns.scatterplot(x='time', y='predicted', data=df_time, label='Predicted').set(?
ylabel='', title='Heterogeneous Treatment Effects')?
plt.legend(title='Effect');?

沿時(shí)間維度繪制的真實(shí)和估計(jì)的處理效果?

我們現(xiàn)在可以充分理解因果樹和森林之間的區(qū)別:雖然在因果樹的情況下,估計(jì)基本上是一個(gè)非常粗略的階躍函數(shù),但我們現(xiàn)在可以看到因果樹如何產(chǎn)生更平滑的估計(jì)。?

我們現(xiàn)在已經(jīng)探索了該模型,是時(shí)候使用它了!?

策略定位?

假設(shè)我們正在考慮向訪問(wèn)我們?cè)诰€商店的新客戶提供4美元的折扣。?

cost = 4?

折扣對(duì)哪些客戶有效?我們估計(jì)平均處理效果為1.9492美元。這意味著,平均而言折扣并不真正有利可圖。然而,現(xiàn)在可以針對(duì)單個(gè)客戶,我們只能向一部分新客戶提供折扣。我們現(xiàn)在將探討如何進(jìn)行政策目標(biāo)定位,為了更好地了解目標(biāo)定位的質(zhì)量,我們將使用因果樹模型作為參考點(diǎn)。?

我們使用相同的CauselForestML函數(shù)構(gòu)建因果樹,但將估計(jì)數(shù)和森林大小限制為1。?

from econml.dml import CausalForestDML?

np.random.seed(0)?
tree_model = CausalForestDML(n_estimators=1, subforest_size=1, inference=False, max_depth=3)?
tree_model = tree_model.fit(Y=df[dgp.Y], X=df[X], T=df[dgp.D])?

接下來(lái),我們將數(shù)據(jù)集分成一個(gè)訓(xùn)練集和一個(gè)測(cè)試集。這一想法與交叉驗(yàn)證非常相似:我們使用訓(xùn)練集來(lái)訓(xùn)練模型——在我們的案例中是異質(zhì)處理效應(yīng)的估計(jì)器——并使用測(cè)試集來(lái)評(píng)估其質(zhì)量。主要區(qū)別在于,我們沒有觀察到測(cè)試數(shù)據(jù)集中的真實(shí)結(jié)果。但是我們?nèi)匀豢梢允褂糜?xùn)練測(cè)試分割來(lái)比較樣本內(nèi)預(yù)測(cè)和樣本外預(yù)測(cè)。?

我們將所有觀察結(jié)果的80%放在訓(xùn)練集中,20%放在測(cè)試集中。?

df_train, df_test = df.iloc[:80_000, :], df.iloc[20_000:,]?

首先,讓我們僅在訓(xùn)練樣本上重新訓(xùn)練模型。?

np.random.seed(0)?
tree_model = tree_model.fit(Y=df_train[dgp.Y], X=df_train[X], T=df_train[dgp.D])?
forest_model = forest_model.fit(Y=df_train[dgp.Y], X=df_train[X], T=df_train[dgp.D])?

現(xiàn)在,我們可以確定目標(biāo)策略,即決定我們向哪些客戶提供折扣。答案似乎很簡(jiǎn)單:我們向所有預(yù)期處理效果大于成本(4美元)的客戶提供折扣。?

借助于一個(gè)可視化工具,它可以讓我們了解處理對(duì)誰(shuí)有效以及如何有效,這就是所謂的處理操作特征(TOC)曲線。這個(gè)名字可以看作基于另一個(gè)更著名的接收器操作特性(ROC)曲線的修正,該曲線描繪了二元分類器的不同閾值的真陽(yáng)性率與假陽(yáng)性率。這兩種曲線的想法類似:我們繪制不同比例受處理人群的平均處理效果。在一個(gè)極端情況下,當(dāng)所有客戶都被處理時(shí),曲線的值等于平均處理效果而在另一個(gè)極端情況下,當(dāng)只有一個(gè)客戶被處理時(shí)曲線的值則等于最大處理效果。?

現(xiàn)在讓我們計(jì)算曲線。?

def compute_toc(df, hte_model, cost, truth=False):?
df_toc = pd.DataFrame()?
for q in np.linspace(0, 1, 101):?
if truth:?
df = dgp.add_treatment_effect(df_test)?
effect = df['effect_on_spend']?
else:?
effect = hte_model.effect(df[X])?
ate = np.mean(effect[effect >= np.quantile(effect, 1-q)])?
temp = pd.DataFrame({'q': [q], 'ate': [ate]})?
df_toc = pd.concat([df_toc, temp]).reset_index(drop=True)?
return df_toc?

df_toc_tree = compute_toc(df_train, tree_model, cost)?
df_toc_forest = compute_toc(df_train, forest_model, cost)?

現(xiàn)在,我們可以繪制兩個(gè)CATE估算器的處理操作特征TOC)曲線。?

def plot_toc(df_toc, cost, ax, color, title):?
ax.axhline(y=cost, lw=2, c='k')?
ax.fill_between(x=df_toc.q, y1=cost, y2=df_toc.ate, where=(df_toc.ate > cost), color=color, alpha=0.3)?
if any(df_toc.ate > cost):?
q = df_toc_tree.loc[df_toc.ate > cost, 'q'].values[-1]?
else: ?
q = 0?
ax.axvline(x=q, ymin=0, ymax=0.36, lw=2, c='k', ls='--')?
sns.lineplot(data=df_toc, x='q', y='ate', ax=ax, color=color).set(?
title=title, ylabel='ATT', xlabel='Share of treated', ylim=[1.5, 8.5]) ?
ax.text(0.7, cost+0.1, f'Discount cost: {cost:.0f}$', fnotallow=12)?

fix, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6))?
plot_toc(df_toc_tree, cost, ax1, 'C0', 'TOC - Causal Tree')?
plot_toc(df_toc_forest, cost, ax2, 'C1', 'TOC - Causal Forest')?

處理操作特性曲線?

正如預(yù)期的那樣,兩種估算器的TOC曲線都在下降,因?yàn)槠骄?yīng)隨著我們處理客戶份額的增加而降低。換言之,我們?cè)诎l(fā)布折扣時(shí)越有選擇,每個(gè)客戶的優(yōu)惠券效果就越高。我還畫了一條帶有折扣成本的水平線,以便我們可以將TOC曲線下方和成本線上方的陰影區(qū)域解釋為預(yù)期利潤(rùn)。?

這兩種算法預(yù)測(cè)的處理份額相似,約為20%,因果森林算法針對(duì)的客戶略多一些。然而,他們預(yù)測(cè)的利潤(rùn)結(jié)果卻大相徑庭。因果樹算法預(yù)測(cè)的邊際較小且恒定,而因果林算法預(yù)測(cè)的是更大且更陡的邊際。那么,種算法更準(zhǔn)確?

為了比較它們,我們可以在測(cè)試集中對(duì)它們進(jìn)行評(píng)估。我們采用訓(xùn)練集上訓(xùn)練的模型,預(yù)測(cè)處理效果,并將其與測(cè)試集上訓(xùn)練模型的預(yù)測(cè)進(jìn)行比較。注意,與機(jī)器學(xué)習(xí)標(biāo)準(zhǔn)測(cè)試程序不同,有一個(gè)實(shí)質(zhì)性的區(qū)別:在我們的案例中,我們無(wú)法根據(jù)實(shí)際情況評(píng)估我們的預(yù)測(cè),因?yàn)闆]有觀察到處理效果。我們只能將兩個(gè)預(yù)測(cè)相互比較。?

def compute_effect_test(df_test, hte_model, cost, ax, title, truth=False):?
df_test['Treated'] = hte_model.effect(df_test[X]) > cost?
if truth:?
df_test = dgp.add_treatment_effect(df_test)?
df_test['Effect'] = df_test['effect_on_spend']?
else:?
np.random.seed(0)?
hte_model_test = copy.deepcopy(hte_model).fit(Y=df_test[dgp.Y], X=df_test[X], T=df_test[dgp.D])?
df_test['Effect'] = hte_model_test.effect(df_test[X])?
df_test['Cost Effective'] = df_test['Effect'] > cost?
tot_effect = ((df_test['Effect'] - cost) * df_test['Treated']).sum()?
sns.barplot(data=df_test, x='Cost Effective', y='Treated', errorbar=None, width=0.5, ax=ax, palette=['C3', 'C2']).set(?
title=title + '\n', ylim=[0,1])?
ax.text(0.5, 1.08, f'Total effect: {tot_effect:.2f}', fnotallow=14, ha='center')?
return ?


fix, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))?
compute_effect_test(df_test, tree_model, cost, ax1, 'Causal Tree')?
compute_effect_test(df_test, forest_model, cost, ax2, 'Causal Forest')?

因果樹模型似乎比因果森林模型表現(xiàn)得更好一些,總凈效應(yīng)為8386美元——相對(duì)于4948美元。從圖中,我們也可以了解差異的來(lái)源。因果森林算法往往限制性更強(qiáng),處理的客戶更少,沒有誤報(bào)的陽(yáng)性,但也有很多誤報(bào)的陰性。另一方面,因果樹算法看起來(lái)更加“慷慨”,并將折扣分配給更多的新客戶。這既轉(zhuǎn)化為更多的真陽(yáng)性,也轉(zhuǎn)化為假陽(yáng)性。總之,凈效應(yīng)似乎有利于因果樹算法。?

通常,我們討論到這里就可以停止,因?yàn)槲覀兛梢宰龅氖虑椴欢嗔恕H欢谖覀兊?/span>案例情形中,我們可以訪問(wèn)真正的數(shù)據(jù)生成過(guò)程。因此,接下來(lái)我們不妨檢查一下這兩種算法的真實(shí)精度。?

首先,讓我們根據(jù)處理效果的預(yù)測(cè)誤差來(lái)比較它們。對(duì)于每個(gè)算法,我們計(jì)算處理效果的均方誤差。?

from sklearn.metrics import mean_squared_error as mse?

def compute_mse_test(df_test, hte_model):?
df_test = dgp.add_treatment_effect(df_test)?
print(f"MSE = {mse(df_test['effect_on_spend'], hte_model.effect(df_test[X])):.4f}")?


compute_mse_test(df_test, tree_model)?
compute_mse_test(df_test, forest_model)?

結(jié)果是,隨機(jī)森林模型更好地預(yù)測(cè)了平均處理效果,均方誤差為0.5555美元,而不是0.9035美元。?

那么,這是否意味著更好的目標(biāo)定位呢?我們現(xiàn)在可以復(fù)制上面所做的相同的柱狀圖,以了解這兩種算法在策略目標(biāo)方面的表現(xiàn)。?

fix, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))?
compute_effect_test(df_test, tree_model, cost, ax1, 'Causal Tree', True)?
compute_effect_test(df_test, forest_model, cost, ax2, 'Causal Forest', True)?

幅圖非常相似,但結(jié)果卻大相徑庭。事實(shí)上,因果森林算法現(xiàn)在優(yōu)于因果樹算法,總效果為10395美元,而8828美元。為什么會(huì)出現(xiàn)這種突然的差異?

為了更好地理解差異的來(lái)源,讓我們根據(jù)實(shí)際情況繪制TOC。?

df_toc = compute_toc(df_test, tree_model, cost, True)?

fix, ax = plt.subplots(1, 1, figsize=(7, 5))?
plot_toc(df_toc, cost, ax, 'C2', 'TOC - Ground Truth')?

處理操作特性曲線。?

正如我們所看到的,TOC是傾斜度非常大的,存在一些平均處理效果非常高的客戶。隨機(jī)森林算法能夠更好地識(shí)別它們,因此總體上更有效,盡管目標(biāo)客戶較少?

結(jié)論?

在這篇文章中,我們學(xué)習(xí)了一個(gè)功能非常強(qiáng)大的估計(jì)異質(zhì)處理效應(yīng)算法——因果森林。因果森林建立在與因果樹相同的原則上,但受益于對(duì)參數(shù)空間和裝袋算法的更深入探索。?

此外,我們還了解了如何使用異質(zhì)處理效應(yīng)的估計(jì)來(lái)執(zhí)行政策定位。通過(guò)識(shí)別具有最高處理效果的用戶,我們能夠確保一項(xiàng)政策有利可圖。我們還看到了政策目標(biāo)與異質(zhì)處理效應(yīng)評(píng)估目標(biāo)的不同,因?yàn)榉植嫉奈膊靠赡鼙绕骄?/span>具有更強(qiáng)的相關(guān)?

參考文獻(xiàn)?

  • S. Athey, G. Imbens, Recursive partitioning for heterogeneous causal effects (2016), PNAS.?
  • S. Wager, S. Athey, Estimation and Inference of Heterogeneous Treatment Effects using Random Forests (2018), Journal of the American Statistical Association.?
  • S. Athey, J. Tibshirani, S. Wager, Generalized Random Forests (2019). The Annals of Statistics.?
  • M. Oprescu, V. Syrgkanis, Z. Wu, Orthogonal Random Forest for Causal Inference (2019). Proceedings of the 36th International Conference on Machine Learning.?

譯者介紹

朱先忠,51CTO社區(qū)編輯,51CTO專家博客、講師,濰坊一所高校計(jì)算機(jī)教師,自由編程界老兵一枚。?

原文標(biāo)題:??From Causal Trees to Forests??,作者:Matteo Courthoud



責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2014-07-07 10:05:57

機(jī)械學(xué)習(xí)

2017-05-19 12:49:18

大數(shù)據(jù)時(shí)空算法商業(yè)決策

2016-12-05 16:33:30

2017-08-04 14:28:40

決策樹隨機(jī)森林CART模型

2014-12-15 10:59:08

RFIDWiFi定位

2021-05-28 17:18:44

TensorFlow數(shù)據(jù)機(jī)器學(xué)習(xí)

2024-01-30 00:55:23

2024-04-12 07:40:37

因果推斷推薦模型推薦系統(tǒng)

2022-10-14 16:48:40

因果推斷數(shù)據(jù)預(yù)處理特征設(shè)計(jì)

2022-10-27 14:25:46

無(wú)服務(wù)器Serverless云原生

2017-10-18 14:11:20

機(jī)器學(xué)習(xí)決策樹隨機(jī)森林

2022-11-11 08:00:00

決策樹機(jī)器學(xué)習(xí)監(jiān)督學(xué)習(xí)

2023-09-22 10:34:19

學(xué)習(xí)算法隨機(jī)森林Java

2023-05-04 08:28:30

因果推斷方法算法

2021-03-24 15:19:15

數(shù)據(jù)應(yīng)用企業(yè)管理

2017-09-25 16:16:49

決策樹隨機(jī)森林機(jī)器學(xué)習(xí)

2022-09-25 23:19:01

機(jī)器學(xué)習(xí)決策樹Python

2023-03-22 10:12:30

機(jī)器學(xué)習(xí)KPI自動(dòng)化

2025-03-17 08:45:00

AI模型數(shù)據(jù)

2023-02-17 08:10:58

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日韩vs国产vs欧美| 东京热av一区| 91视频综合网| 涩涩视频网站在线观看| 精品无人码麻豆乱码1区2区 | 亚洲一区二区电影| 国产喂奶挤奶一区二区三区| 91国内免费在线视频| 亚洲自拍的二区三区| av一级在线观看| 久久综合社区| 亚洲成人免费观看| 国产精品对白刺激久久久| 欧美偷拍第一页| 偷拍亚洲精品| 欧美午夜精品久久久久久久| 国产精品一区二区免费看| 欧美三级免费看| 国产999精品在线观看| 中文字幕在线不卡| 国产精品自拍偷拍| 中文字幕观看av| 亚洲高清影院| 亚洲欧美日韩在线| 91社区国产高清| 欧美色图亚洲视频| 国产日韩视频在线| 欧美亚洲动漫另类| 在线视频亚洲自拍| 精品国产av 无码一区二区三区| aiss精品大尺度系列| 亚洲一二三四在线观看| 国产青春久久久国产毛片| 国产成人无码精品| 欧美热在线视频精品999| 色欧美日韩亚洲| 日韩福利视频| 一级黄色片免费看| 偷拍欧美精品| 欧美成人三级在线| 男女高潮又爽又黄又无遮挡| 国产二区在线播放| 精品欧美激情在线观看| 精品视频一区三区九区| 一区二区三区四区免费观看| 亚洲成人av综合| av成人国产| 在线观看欧美成人| 韩国三级与黑人| 在线免费三级电影网站| 国产精品素人一区二区| 97se亚洲综合| 伊人手机在线视频| 国产乱码精品一区二区亚洲| 亚洲高清不卡av| 熟女少妇精品一区二区| av在线播放观看| 99国产欧美另类久久久精品| 国产精品久久久久国产a级| 粉嫩av性色av蜜臀av网站| 日韩精品久久| 精品国产免费久久| 91淫黄看大片| 精品亚洲美女网站| 国产精品女同一区二区三区| 国产高清自拍99| 蜜桃av噜噜一区二区三区麻豆 | 中文字幕亚洲欧美| 男人午夜视频在线观看| 日本蜜桃在线观看视频| 欧美日韩黄色大片| 公共露出暴露狂另类av| 中文字幕在线三区| 日本一二三不卡| 日韩精品久久久| 日本在线天堂| 久久综合网色—综合色88| 91亚洲精品在线| 超碰在线播放97| 波多野结衣中文字幕一区| 国产欧美精品在线| 精品区在线观看| av一区二区久久| 亚洲一区亚洲二区| 亚洲精品国产精品乱码视色| 在线欧美三区| 欧美另类69精品久久久久9999| 国精产品一区二区三区| 538任你躁精品视频网免费| 欧美大片一区二区| 欧美激情第一区| 91大神精品| 国产香蕉一区二区三区在线视频 | 国产日韩欧美不卡在线| 国产精品一二三在线观看| 成人综合影院| 久久久久久久网| 国产精品日韩欧美一区二区| 深夜影院在线观看| 成人美女视频在线看| 91丨九色丨国产在线| 秋霞网一区二区| 欧美国产欧美综合| 日韩美女爱爱视频| 丝袜美女在线观看| 亚洲伦理在线精品| 黄色网络在线观看| 综合日韩av| 91精品国产91久久久久久最新毛片| 亚洲xxxx2d动漫1| 秋霞国产精品| 精品99一区二区| 亚洲女同二女同志奶水| 亚洲天堂日韩在线| 亚洲美女精品成人在线视频| 三级男人添奶爽爽爽视频| 巨人精品**| 久久精品久久久久久| 美国一级片在线观看| 亚洲欧美日韩国产综合精品二区| 欧美在线激情网| 啦啦啦免费高清视频在线观看| 久久精品国产在热久久| 91美女片黄在线观看游戏| 你懂的在线视频| 国产精品色在线| 欧美成人一区二区在线观看| 国产免费不卡| 精品视频1区2区| 37p粉嫩大胆色噜噜噜| 一区三区在线欧| 欧美激情xxxxx| 国产精品xxxx喷水欧美| 国产·精品毛片| 蜜桃传媒视频麻豆一区| 成人在线观看免费| 日韩欧美亚洲国产一区| 成年人的黄色片| 激情久久中文字幕| 91精品婷婷国产综合久久蝌蚪| 午夜视频在线观看免费视频| 欧洲另类一二三四区| 一道本在线免费视频| 日韩成人视屏| 日韩精品高清在线| 久久久国产一级片| 日韩和欧美一区二区| 欧美h视频在线| 亚洲少妇视频| 国产一区二区欧美日韩| 中国a一片一级一片| 国产欧美1区2区3区| 成人区一区二区| 欧美aa视频| 日韩三级视频在线看| 国产免费看av| 欧美在线视屏| 国产精品pans私拍| hs视频在线观看| 一区二区三区加勒比av| 国产免费人做人爱午夜视频| 国产精品一区二区三区av| 日韩在线不卡视频| 日韩免费视频一区二区视频在线观看| 奇米影视一区二区三区小说| 国产免费一区二区| 欧美男人天堂| 在线看片第一页欧美| 91中文字幕在线播放| 亚洲精品亚洲人成人网 | 99久久精品免费精品国产| 日韩精品一区二区三区久久| 国产探花在线精品| 91美女片黄在线观| 毛片电影在线| 在线观看精品自拍私拍| 精品国精品国产自在久不卡| 亚洲.国产.中文慕字在线| 视频二区在线播放| 亚洲成人精选| 国产精品久久av| 高清全集视频免费在线| 精品国产乱码久久久久久久| 一级片免费在线播放| 亚洲婷婷在线视频| 一起草在线视频| 美国欧美日韩国产在线播放| 水蜜桃在线免费观看| 任你弄精品视频免费观看| 欧美黑人性视频| 天天干天天爽天天操| 一区二区高清在线| 国产人妻一区二区| 国产精品资源网站| 亚洲黄色网址在线观看| 麻豆视频一区| 国产女同一区二区| 国产理论在线| 亚洲激情电影中文字幕| 国产在线拍揄自揄拍| 国产精品资源在线看| 国产aaa一级片| 网友自拍一区| 成人信息集中地欧美| 激情视频在线观看| 黄毛片在线观看| 欧美一区二区网站| 中文字幕国产在线观看| 97se亚洲国产综合自在线 | a级片在线观看免费| 久久综合国产精品| 又大又长粗又爽又黄少妇视频| 久久精品av| 成人a级免费视频| 久久久男人天堂| 插插插亚洲综合网| 亚洲第一大网站| 欧美日韩午夜精品| 亚洲视频 欧美视频| 亚洲电影一级黄| 91视频免费在线看| 亚洲欧洲一区二区在线播放| 国产精品嫩草影院8vv8| 91亚洲人成网污www| 欧美日本亚洲| 色狠狠一区二区三区| 全球成人中文在线| 九九色在线视频| 欧美乱大交xxxxx| 快射视频在线观看| 中日韩午夜理伦电影免费| 色播色播色播色播色播在线| 欧美自拍偷拍午夜视频| 亚洲欧美精品一区二区三区| 亚洲电影一区二区| 日本在线视频免费| 国产视频一区不卡| 在线免费观看成年人视频| 成人动漫av在线| 69亚洲乱人伦| 不卡视频一二三| 亚洲啪av永久无码精品放毛片| 影音先锋在线一区| 丰满人妻一区二区三区53号| 综合天天久久| 久久福利电影| 精品福利在线| 久久久久久免费精品| 韩国三级av在线免费观看| 欧美日韩成人综合在线一区二区 | 一区二区三区**美女毛片| 91成人福利视频| 亚洲视频一区在线| 青青草原在线免费观看| 夜夜精品浪潮av一区二区三区| 老妇女50岁三级| 亚洲国产wwwccc36天堂| 日本中文字幕免费观看| 精品国产福利视频| 成年人视频软件| 成人一区二区三区视频在线观看| 免费欧美一级片| 成人激情免费网站| 亚洲国产精品成人综合久久久| 久久97超碰国产精品超碰| 久久成人免费观看| 老鸭窝毛片一区二区三区| 久久视频免费在线| 国内精品99| 一区二区三区在线视频111| 亚洲国产精品久久久天堂| 在线观看av的网址| 在线综合亚洲| 91亚洲免费视频| 成人午夜精品在线| 我和岳m愉情xxxⅹ视频| 中文字幕一区二区三区四区不卡| 欧美精品久久久久性色| 中文字幕视频一区二区三区久| 国产黄色小视频网站| 欧美高清在线一区二区| 国产suv精品一区二区68| 午夜视频一区二区| 中文字幕欧美在线观看| 欧美特级www| 一区二区国产欧美| 亚洲国产高清高潮精品美女| 成年网站在线| 欧美激情第1页| 国内自拍亚洲| 国产一区免费| 99国产精品免费视频观看| av日韩一区二区三区| 欧美精品九九| 青青草影院在线观看| 99精品久久久| 午夜视频在线观| 久久精品欧美一区二区三区不卡 | 国产精品亚洲美女av网站| 国产精品调教视频| 俄罗斯精品一区二区三区| 国产日产一区| 免费在线观看视频a| 久久精品国产**网站演员| 亚洲一区二区三区综合| 亚洲欧美激情在线| 国产又粗又猛又爽又| 欧美在线色视频| 手机在线观看毛片| 精品视频9999| 激情中国色综合| 欧美裸体网站| 99在线精品免费视频九九视| 亚洲午夜激情影院| 国产精品中文欧美| 国产三级黄色片| 自拍偷拍亚洲欧美日韩| 色屁屁影院www国产高清麻豆| 日韩一卡二卡三卡| 麻豆最新免费在线视频| 久久精品视频va| 天天综合网站| 鲁丝一区二区三区免费| 在线电影一区| 性折磨bdsm欧美激情另类| 中文字幕一区二区三区四区| 久久国产香蕉视频| 亚洲欧洲第一视频| 黄色在线播放网站| 国产精品成人品| 国产不卡av一区二区| 婷婷无套内射影院| av不卡在线观看| 日韩三级视频在线| 亚洲精品在线观看视频| 蜜臀av在线| 日本精品视频在线观看| 99精品国自产在线| 成人免费自拍视频| 水蜜桃久久夜色精品一区| 99热手机在线| 国产成人免费av在线| 精品夜夜澡人妻无码av| 午夜精品免费在线观看| 欧美熟妇交换久久久久久分类 | 久久精品国产免费看久久精品| 午夜精产品一区二区在线观看的| 色婷婷久久99综合精品jk白丝| 一区二区三区黄| 色av中文字幕一区| 黄毛片在线观看| 麻豆精品蜜桃一区二区三区| 国产精品亚洲欧美| 97超碰人人看| 久久久久亚洲综合| 久久久久久无码精品大片| 亚洲天堂av综合网| 日韩城人网站| 日本福利视频网站| 免费在线观看成人| 久久人妻一区二区| 日韩欧美视频一区二区三区| 国产乱视频在线观看| 国产精品一区二区三区久久| 仙踪林久久久久久久999| 欧美熟妇另类久久久久久多毛| 亚洲午夜久久久久| 免费在线视频你懂得| 国产欧美一区二区三区久久人妖| 欧美一级二级三级视频| 人妻有码中文字幕| 国产精品污污网站在线观看| 99产精品成人啪免费网站| 亚洲丝袜av一区| 国产资源一区| 日韩视频免费播放| 久久久久久久久蜜桃| 91麻豆成人精品国产| 久久久久久久久电影| 九九热爱视频精品视频| 午夜福利123| 欧美午夜电影在线| 91亚洲精选| 国产精欧美一区二区三区| 国产精品二区不卡| 国产人妻黑人一区二区三区| 色欧美片视频在线观看在线视频| aaa大片在线观看| 欧美不卡三区| 国产成a人亚洲精品| 97人妻一区二区精品视频| 欧美日韩999| 狠狠色狠狠色综合婷婷tag| 免费观看污网站| 亚洲一区在线观看视频| 每日更新av在线播放| 俄罗斯精品一区二区| 精品一区二区综合| 国产剧情在线视频| 欧美日韩不卡合集视频|