可解釋性和隨機森林那些事兒

點擊上方關注,All in AI中國

我們如何以及為什麼可以從隨機森林分類器中獲得特徵重要性?

機器學習的出現是因為人類不能總是很好地解釋自己,尤其是對機器解釋。很長一段時間,機器只能執行精確的一步接一步的指令,而且通常簡單的人工任務對我們來說太自然了,無法顯式將它們作為算法明確地寫下來。舉個例子來說一下,我沒有辦法向電腦解釋清楚我是如何確切的認識到某物是一隻貓的。

可解釋性和隨機森林那些事兒

孩子,你需要學習很多東西。

我知道一隻貓通常有兩隻耳朵,四條腿,一個圓形的臉形,以及獨特的貓眼,但這只是揭開了第一層解釋。在此基礎上,我必須在算法上解釋前一句中的每個形容詞和名詞的含義:二、耳、圓等,以及其擴展細節,例如貓的眼睛究竟是什麼樣子的。從理論上講,我實際上可能會繼續用一個一個的術語來解釋這個術語 - 雖然這可能會花費我很多的時間。

我們人類相當聰明地決定,數學學習過程可能比通過算法分解每個決策過程更容易,這就是我們一開始機器學習的方法。然而,我們使用的學習模型並不總是對應於任何類型的我們人類固有的“自然”的學習方法,而建模學習並不能解決我們與計算機的基本通信問題。機器學習並沒有擺脫解釋數據關係的困難,這導致在構建和分析學習模型時,可解釋性和準確性之間存在衝突。

可解釋性與準確性之間的衝突

在使用機器學習模型時,數據科學中只有兩個目標:

  1. 應用程序,我們使用訓練有素的模型執行任務,理想情況下儘可能準確有效。
  2. 解釋,我們使用訓練的模型通過特徵和響應變量之間的學習關係來獲得對數據的洞察。

正如我們剛才所討論的那樣,我們人類幾乎不知道我們如何真正去識別東西的,但比起機器,我們確實很擅長它。換句話說,我們大腦的內在邏輯是準確的,非常適合應用,但它不是很容易理解。因此,通常最精確的機器學習方法是最不易解釋的,這不應該讓人感到意外。

可解釋性和隨機森林那些事兒

RoboCat:第一次接觸

所謂的黑盒模型,如神經網絡,給我們提供了很少的決策過程信息;他們學習的函數的代數複雜性往往會失去與原始特徵變量集相關的任何含義。另一方面,有助於解釋性的模型(如線性迴歸和決策樹)往往在準確性部門中不足,因為它們通常無法捕獲數據集中的任何細微差別或複雜關係。我們可以概括地總結這種關係如下:

對於足夠複雜的數據,決策算法的可解釋性與其應用的準確性之間存在著一種自然的權衡。就像是我們不太擅長對於高階數值關係的內在理解一樣,計算機彷彿對於通過用腿和耳朵來辨認貓天生就沒有親和力。我們無法清晰有意義地解釋神經網絡的複雜決策邊界,也無法向計算機解釋貓是什麼,這可能是同一枚硬幣的兩面。

尋找平衡

我們的史前穴居人的大腦似乎非常喜歡解釋線性關係/決策邊界。線性迴歸是一種高度可解釋的算法,毫無疑問:如果x增加1,y增加m,我們都可以回家。然而,行是簡單的和高度偏見的,因此它們通常不會產生很好的學習算法。當然,我們可以調整我們對線性的定義,並擴展我們的基數以包括多項式、指數和其他任何其他項,但在某些時候必須支付債務,並且我們在參數中失去了這種自然意義感。

可解釋性和隨機森林那些事兒

Barney和Fred對線性迴歸很感興趣

另一個易於理解但基本上弱的分類器是決策樹:通過貪婪地將特徵空間分割成矩形,我們最終得到了一個描述決策過程背後邏輯的漂亮圖表,並且除了最基本的之外,還有一個相當無用的模型關係。但是,回想一下樹模型非常適合集成方法,而隨機森林是一種特別強大的方法,可以將大量單獨的弱樹聚合成一個強大的預測模型。

隨機森林和特徵重要性

瞭解隨機森林能否違背這種可解釋性 - 準確性權衡,或者至少將其推向極限,這似乎令人驚訝。畢竟,隨機森林的決策過程中存在一個固有的隨機因素,並且有如此多的樹木,任何固有的含義都可能在樹林中迷失。然而,與樹木協同工作以減少預測誤差的方式完全相同,它們協同工作以準確地表示特徵重要性。為了理解它們是如何這樣做的,首先需要研究一種在單個樹中解釋特徵重要性的自然方法。

如果知道隨機森林能夠克服這種解釋精度之間的權衡,或者至少將其推到極限,可能會讓人感到驚訝。畢竟,在隨機森林的決策過程中有一個固有的隨機因素,有這麼多樹,任何固有的含義都可能在森林中丟失。然而,就像這些樹一起工作以減少預測錯誤一樣,它們一起工作以準確地表示特性的重要性。要理解它們是如何做到這一點的,首先有必要研究一種自然的方法來解釋單個樹中的特性重要性。

單樹中的特徵重要性

回想一下,單個樹的目的是在分割特徵空間時以局部最優方式減少誤差。分類樹使用雜質度量來評估當前類別的分離,而回歸樹使用殘差平方誤差。我們將使用分類樹的思想來使我們的可視化效果更好,但是在交換了錯誤函數之後,迴歸情況是相同的。

為了減少決策樹的分類誤差,減少雜質(或熵)是迭代分割區域的最快、最穩定的方法。衡量一個特徵在該決策過程中所產生影響的一種自然方法是查看該特徵從系統中移除的熵量。即,通過對該特徵的決策所獲得的信息量或準確度。僅此功能。下面的可視化演示了此過程,因為我們拆分了特徵空間並構建了決策樹。我們從初始熵值(D)開始,我們計算每個子區域的熵值,然後對樹中每個特徵變量的熵值變化進行求和。

可解釋性和隨機森林那些事兒

我們從D = 1.31開始並分割特徵空間,直到我們達到零熵。減少的1.011是由於對y作出的決定,而x僅負責0.299的減少。

我以前說過,不過這裡會重新表達一次:決策樹是弱分類器。訓練數據的微小變化可能意味著我們最終會得到一個完全不同的樹,因此對我們的特徵重要性做出了不同的估計。考慮在我們的可視化中原始數據的這種輕微改動:

可解釋性和隨機森林那些事兒

現在,由x引起的熵減少為1.011,而由y引起的減少為0.299。變量的重要性已經切換!

減少許多樹的方差

如果這種計算特徵重要性的方法是如此不穩定,那對我們來說並沒有多大用處。問題在於測量的方差太高,這就是隨機森林的用武之地:回想一下,隨機森林的最終工作方式是首先通過基本上消除它並分裂的方式減少對個體樹所具有的局部最優策略的偏差,然後通過聚合樹來減少模型的整體方差。

這種方差的減少穩定了模型,減少了對訓練數據選擇的偏見,並導致更少變量和更準確的預測。如果就像我們在預測中做的那樣,通過獲取歸因於每個特徵變量的熵或準確度變化的平均值,將我們對隨機森林中樹木的特徵重要性的度量值進行彙總,我們就會得到完全相同的效果。

直觀地,對隨機特徵進行拆分使得模型中的每個特徵都有機會在樹的各個層面的所有可能點上顯示其決策權,並且聚合減少了最終結果的可變性。基本上,與隨機森林提高最終預測的準確性的方式相同,它提高了這種特徵重要性度量的準確性。如果你不相信我,這裡有一小部分證據:

可解釋性和隨機森林那些事兒

A,B,C都是i.i.d

當將連續變量與分類變量進行對比時,這種方法存在一些明確的問題;連續變量有更多的“空間”來分割,因此可以在不重要的情況下在分類變量之上得到一個。

這種方法也沒有真正違反可解釋性 - 準確性權衡的想法,因為它只是真實地告訴我們變量如何相互疊加,即它沒有告訴我們如果我們增加或減少我們的特徵,我們的決定會發生什麼變化(如舊的線性迴歸)。但是,這很有用,我從來沒有說過隨機森林是完美的。

無論如何,現在你知道你的scikit-learn RandomForestClassifier上的feature_importances_屬性的強大功能,但是你仍然無法向計算機解釋貓是什麼。

可解釋性和隨機森林那些事兒

相關推薦

推薦中...