隨著計算機(jī)系統(tǒng)在各領(lǐng)域(例如醫(yī)療、教育、政府機(jī)關(guān))的應(yīng)用,正確預(yù)測并理解這些設(shè)備的因果影響是非常重要的。沒有A/B測試,建立在模式識別和相關(guān)性分析上的傳統(tǒng)的機(jī)器學(xué)習(xí)方法,是不足以解釋因果推理的。
與用來預(yù)測的機(jī)器學(xué)習(xí)庫類似,微軟研究院推出的DoWhy是一種引起因果思考和分析的Python庫,它提供了一個統(tǒng)一的界面進(jìn)行因果推理,并對許多假設(shè)進(jìn)行自動測試,讓非專業(yè)人士也能進(jìn)行推理。該成果在最近舉辦的KDD 2018上做出了展示,以下是論智對其進(jìn)行的大概介紹。
在《告別曲線擬合:因果推斷和do-Calculus簡介》一文中我們講到,因果推斷區(qū)分了人們可能想要估計的兩種條件分布。在機(jī)器學(xué)習(xí)中,我們通常只會估計一種分布,但在某種情況下,我們可能也需要估計第二種。因果推斷關(guān)注的是一些基礎(chǔ)問題,它能幫我們回答“如果我們對x做了什么,那……”的問題,而這些問題通常需要對照試驗和明確的干預(yù)措施來解決。
幾十年來,社會科學(xué)和生物醫(yī)學(xué)中,因果推斷方法的使用十分廣泛。隨著計算機(jī)在我們的工作和日常生活中所占比例越來越大,因果關(guān)系問題在計算機(jī)科學(xué)中的重要性也不斷增加。為了解決這個廣泛的問題,我們推出了一個新的軟件庫——DoWhy(名稱來源于Judea Pearl的do-calculus)。除了為常見的因果推斷方法提供一個程序設(shè)計界面,DoWhy的設(shè)計還是為了顯示常被忽略的因果分析假設(shè)。所以,DoWhy的特點(diǎn)之一就是會讓潛在的假設(shè)更容易理解。另外,DoWhy可以進(jìn)行敏感度分析和其他魯棒性檢查。我們的目的是讓人們關(guān)注他們在對因果推斷做假設(shè)時的思考而不是其中的細(xì)節(jié)
過去幾年對因果推斷的研究,讓我們產(chǎn)生了創(chuàng)造DoWhy的想法,不論是估計推薦系統(tǒng)的影響,還是預(yù)測可能的成果,都對此有所啟發(fā)。在每項研究中,我們總會重復(fù)以下步驟:找到正確的辨別策略、設(shè)計最合適的估計器、檢查魯棒性,每次都要從頭開始。有時,面對大量有關(guān)因果推理的材料,進(jìn)行實證推理就非常困難。想要理解我們的假設(shè)并證明它們,是很有挑戰(zhàn)性的工作。
所以我們思考,能否創(chuàng)建一個軟件庫,通過簡單的界面進(jìn)行因果推斷。但不幸的是,因果推斷取決于對未知數(shù)量的估計,這也是因果推斷的基本問題。與監(jiān)督學(xué)習(xí)不同,我們無法從現(xiàn)有的測試集中得出客觀的評估,所以,在因果推斷中無法建立即時可用的方法。例如,對任何方法來說,例如新的算法或醫(yī)療處理過程,人們可以觀察當(dāng)他們被干預(yù)時發(fā)生了什么,或不被干預(yù)時會發(fā)生什么,但無法同時觀察兩種情況。所以,因果分析和數(shù)據(jù)生成過程中的假設(shè)有著重要的關(guān)系。
為了達(dá)到我們的目標(biāo),我們明白假設(shè)應(yīng)該是因果推斷庫中最重要的因素。我們在設(shè)計DoWhy時考慮了兩個指導(dǎo)原則——讓因果假設(shè)易于理解,同時測試預(yù)測對違反假設(shè)的魯棒性。
首先,DoWhy對辨別(identification)和估計(estimation)做了區(qū)分。對因果效應(yīng)進(jìn)行標(biāo)人需要對數(shù)據(jù)生成過程做假設(shè),同時還要從虛擬表示中具體說明目標(biāo)被估量。估計過程完全是數(shù)據(jù)問題,所以辨別過程是最耗時的。為了正式表示假設(shè),DoWhy利用貝葉斯圖模型框架,從中用戶可以詳細(xì)了解他們想知道的東西,更重要的是,知道他們此前不知道的有關(guān)數(shù)據(jù)生成過程的事。對于估計,我們提供了基于潛在輸出框架的方法,例如匹配、分層和輔助變量。使用DoWhy時還有一個“愉悅”的副作用,那就是你會發(fā)現(xiàn)看似分散的圖模型和潛在輸出框架其實是互通對等的。
將對因果影響的辨別和估計區(qū)分開
然后,一旦做出了假設(shè),DoWhy會提供魯棒性檢測和敏感性檢查,來檢查估計的可靠性。由于潛在的假設(shè)多種多樣,你可以測試估計是如何變化的,例如,通過加入一個新的干擾項或用“安慰劑”進(jìn)行替換。不論哪種方法,DoWhy庫都會基于圖模型的假設(shè)自動檢查得出的估計的有效性。不過我們依然知道自動檢測不完美。所以,DoWhy會著重對輸出進(jìn)行解讀。在分析的任何階段,你都可以查看未經(jīng)測試的假設(shè)、經(jīng)過辨認(rèn)的被估量以及得出的估計(如果有的話)。
在四行代碼中進(jìn)行因果推斷。DoWhy的簡單運(yùn)行
未來,我們期待在庫里增加更多特征,包括支持更多的估計和敏感性的方法,以及與其他可用的估算軟件進(jìn)行互通。
Jupyter notebook:causalinference.gitlab.io/dowhy/
-
微軟
+關(guān)注
關(guān)注
4文章
6622瀏覽量
104291 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8435瀏覽量
132887 -
python
+關(guān)注
關(guān)注
56文章
4805瀏覽量
84928
原文標(biāo)題:KDD 2018 | 微軟推出用于因果推斷的Python庫——DoWhy
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論