決策樹,隨機森林和PCA

本文旨在涵蓋與以下方法相關的重要概念和技巧

  • 決策樹
  • 合奏學習(隨機森林)
  • 維度詛咒

決策樹

這些是非常通用的“非參數白盒模型”,不需要特徵縮放或centering ,並且能夠執行分類和迴歸任務。你可能聽說過神經網絡是黑匣子模型,因為你在學習或推理時看不到底層的東西。相比之下,白盒模型允許您準確查看每一步發生的情況,使您能夠在適合您的情況下手動執行任務。決策樹對於訓練數據的假設很少,如果不受約束,他們會適應最有可能過度使用的數據。

決策樹,隨機森林和PCA

Decision tree of depth 2 for iris dataset

Iris數據集作為基本機器學習的入門示例非常受歡迎。這個例子在參考文獻中提到的書中得到了很好的解釋,它解釋了使用決策樹的過程。決策樹的學習算法有一個apropos名稱,CART(分類和迴歸樹),它只生成二叉樹。對於非二叉樹,可以使用ID3等算法。

深度為0的根節點包含訓練集。基於特定特徵的特定閾值,將樣本分成2個子集,並且該過程遞歸地繼續,目標是最小化子節點的加權平均雜質。這是一種貪婪的算法,它試圖在最高級別或當前級別進行最佳分割,並且不考慮在較低級別具有最小雜質

決策樹,隨機森林和PCA

Cini的基尼雜質和目標函數,K是一個特徵,tk是該特徵的閾值

gini屬性表示節點的純度。如果一個節點所應用的所有訓練樣本都屬於同一類,則該節點是純的,且gini雜質為0。我們也可以用熵來衡量純度。當一個集合只包含一個類的實例時,它的熵將為零。Gini雜質是首選的,因為它吸引人的因素是將最常見的類隔離到樹的一個單獨的分支中,而且它的計算容易且速度快,因為熵產生了更平衡的樹,而不是默認的選項。

決策樹,隨機森林和PCA

分類:每個深度的決策邊界

在迴歸的情況下,預測不是預測一個類,而是預測是與特定節點相關聯的訓練實例的平均值,用於得到均方誤差。CART算法以使大多數訓練實例儘可能接近預測值的方式分割每個區域。在這種情況下,我們最小化MSE而不是基尼的雜質。其他一切都保持不變。

決策樹,隨機森林和PCA

迴歸:決策樹

指定樹沒有任何預先確定的參數數目,並且不受許多自由度的限制。約束或規範化樹的一種方法是設置最大深度約束。它們可能有幾個超參數,比如max_depth或min_samples_split。通常,減少max_*和增加min_* hyper參數將使模型充分規範化。

決策樹,隨機森林和PCA

決策樹,隨機森林和PCA

當你在分類和迴歸中沒有正規化時會發生什麼?

不穩定性問題

找到最優樹是一個NP-Complete問題,並且由於預測涉及遍歷樹,所以總體預測複雜度為O(log(m)/ log(2)),其是節點的數量並且這與節點的特徵數量n無關。然而,CART通過比較每個節點上所有樣本的所有特徵和查找閾值進行訓練,因此決策樹的時間複雜度為O(n * m * log(m)/ log(2))

正如您可以注意到的那樣,分割的決策邊界是正交的(垂直於軸),決策樹的主要問題是它們對訓練數據的變化非常敏感。

決策樹,隨機森林和PCA

決策樹,隨機森林和PCA

(左)顯示訓練集細節的敏感度,(右)顯示訓練集旋轉的敏感度

如果訓練算法是隨機的,即使基礎數據相同,我們也可以得到非常不同的模型。這種不穩定性可以通過對作為隨機森林核心概念的許多樹進行平均預測來解決。

注:決策樹樁(Decision stump)是深度為1的決策樹。它有一個決策節點和兩個葉節點

集成學習(ensemble learning)

決策樹,隨機森林和PCA

在機器學習領域眾所周知,使用集成學習方法可以將模型的準確性提高2-3%。

決策樹的集合構成了一個隨機森林。

這裡的集合意味著一組預測變量(或分類器)。通過聚合一組分類器的預測(即使它們很弱,即,進行隨機猜測),預測獲得最多投票的類別比任何其他單獨的強分類器都好得多,這被稱為hard-voting分類器。這與選擇統計模式(最常見的預測)相同。如果分類器可以估計類別概率,那麼以最高概率預測類別,對於集合中所有單個分類器的平均值稱為soft-voting分類器。當然,這比硬投票有更好的結果,因為它給予高度信任的投票更多的權重或重要性。

為了理解為什麼這種方法如此有效,我們可以畫一個大數定律的平行圖。假設你有一枚有偏見的硬幣有51%的概率是正面朝上。拋了一百次之後,我們有理由假設我們可能有51個正面和49個反面。正面多於反面。在1000次投擲中,數量的差異只會增加,因為正面比反面多20次(510-490次)。同樣的道理,當我們擲得越多,正面多於反面的概率就會不斷增加,確保正面的比例總是接近51%

正如常識所指出的那樣,只有所有弱分類器彼此獨立且充分多樣化時,這才會起作用。如果所有弱分類器產生相同類型的錯誤,那麼對預測進行聚合或投票就沒有多大用處。為了提高整體的準確性,重要的是要有不相關的錯誤,但這非常困難,除非使用不同的方法訓練分類器,因為共同點是訓練集。一組決策樹是一個隨機森林,但是當所有的分類器都是相同的時候,隨機性的來源究竟是什麼,如果所有的決策樹都是在相同的數據上進行訓練的話,它又有多好?

一種使集成方法有效的方法是為各個分類器使用非常不同的訓練算法,以便它們的預測是多樣的或有不同的錯誤,但是由於隨機森林只包含決策樹,我們需要在數據本身中引入隨機性。決策樹對培訓數據變化敏感的事實對我們的優勢點起作用。

決策樹,隨機森林和PCA

大致分為三類技術

因此,我們對所有分類器使用相同的學習方法,但將訓練數據限制為隨機子集。對這些數據子集進行抽樣,可以使用或不替換。在統計數據中,重新抽樣和替換是bootstrapping。沒有替換的採樣稱為pasting。

Bagging

Bagging是引導聚合的簡稱

Bagging允許對每個預測器的訓練實例進行多次採樣,並引入這些子集的多樣性。集成現在通過聚合單個預測來對新實例進行預測,即使每個預測器比在整個數據集上進行訓練時具有更高的偏差,聚合減少了偏差和方差,因為預測器之間的相關性較小。bagging過程不需要僅限於實例。有兩種方法:

  • 隨機子空間 - 僅採樣特徵
  • 隨機Patches - 對訓練實例和功能進行採樣
  • 額外的樹 - 極其隨機的樹。這些訓練速度較快,因為我們為特徵設置了隨機閾值而不是找到它,但如果這比替代選項更好,我們無法確定。

由於Bagging多次抽樣多次,所以少數情況下永遠不會抽樣。每個預測變量現在都有一組不可見的out of bag實例,可用作驗證集,並可通過平均每個預測變量的oob評估來評估集合。

隨機森林中隨機性的另一個來源是,當生長樹時,您可以在隨機子集中搜索最佳特徵,而不是優化以找到分割節點的最佳特徵。在這種方法中,您交易高偏差以降低方差並獲得更好的整體模型。

注意:隨機森林的一個重要方面是它們可以幫助選擇特徵。一個特徵的重要性決定於樹節點使用它來平均減少雜質的程度。該平均值由與每個節點相關的樣本數加權

Boosting

這是另一種形式的集成學習,在自然界中是連續的。這個想法仍然是將幾個弱的學習者結合起來,形成一個強大的學習者,但是在這裡,預測者是按順序訓練的,每個人都試圖糾正或改進前一個預測器。自然地,這個過程不能並行化,因此不經常使用它,因為它不能像bagging 或pasting那樣進行擴展。兩種最流行的boosting 方法是

  • Adaboost(自適應增強) - 錯誤分類實例的相對權重增加,使用這些更新的權重對第二個預測器進行訓練,並且此過程再次發生在下一個預測器上。這種順序學習確實與SGD相似,區別在於不是調整單個預測參數,而是為整體增加一個預測因子,並逐漸使其更好。
  • 梯度提升 - 這種方法不是在每次迭代時調整實例權重,而是將新預測因子與前一個殘差進行匹配。學習速率超參數將縮放每棵樹或預測變量的貢獻。這是一種稱為收縮的正規化技術。如果將它設置為較低的值,那麼您需要在整體中增加更多的樹來適應訓練集,從而提供更好的預測精度。另一方面,子樣本超參數指定了用於訓練每棵樹的訓練實例的比例,這被稱為隨機梯度提升( Stochastic Gradient Boosting)。

注意:為了找到最佳增強樹數,我們使用提前停止。

Stacking

Stacking是堆疊泛化的簡稱。前提是,我們可以訓練一個模型來執行聚合或從中學習,而不是像mode或average這樣的普通函數來聚合單個的預測。這個模型被稱為blender 或 meta-learner。

訓練這種blender的常用方法是:

  1. 將數據拆分為2個子集,並使用第一個拆分來使用任何方法訓練集合中的各個預測變量。
  2. 對此進行個別預測,將其split。
  3. 現在我們有一個新的數據集,其中包含單獨的預測作為我們的輸入,以及來自數據的初始目標值。
  4. 在這個數據上訓練blender

這個過程可以通過多次分割並使用多個blenders來完成。

維度詛咒

到目前為止,你無疑已經多次遇到這個詞。在處理大量維度的數據時,訓練算法變得困難,我們總是擔心縮小維度可能會導致某些重要信息的丟失。另一方面,它使我們能夠更快速地訓練數據,並使數據可視化,因此這是大多數人願意做出的妥協。高維度的數據通常意味著數據是分散或分散的。降維有兩種主要方法

  • Projection
  • Manifold Learning

在現實世界的數據中,訓練實例不是在所有維度上均勻分佈,而且它們都可能位於較低維度的子空間上。Projection只不過是代表低維數據。

Manifold 是一個拓撲空間,在每個點附近都與歐幾里得空間局部相似。

2D manifold 是一個二維的形狀,可以扭曲和彎曲在更高的維度空間。大多數真實世界的高維數據集靠近低維流形。這被稱為流形假設(manifold hypothesis)。

決策樹,隨機森林和PCA

一般來說,減少維度可以縮短培訓時間,但它完全取決於數據集,因此可以帶來更好的解決方案。

最流行的降維算法是主成分分析(PCA)其標識與數據最接近的超平面並將數據投影到其上。這裡的約束是,為了選擇正確的超平面,它提供了最小的信息損失,我們需要保留我們能夠達到的最大方差。主要組成部分是定義彼此正交的軸的單位向量(與數據中的維數一樣多),第一部分考慮最大方差。然而,它們的方向是不穩定的,因為數據中的微小擾動可能導致一對PC指向相反方向,甚至旋轉或交換。他們所定義的平面大部分都是相同的。然而,PCA假定數據是以原點為中心的,所以這種方法的一個先決條件是將數據置於中心位置。我們可以從稱為矩陣分解技術中獲得這些分量奇異值分解,然後選擇將數據投影到由第一個d分量定義的超平面上,其中d的維數小於實際數據的維數。選擇此值d取決於需要保留多少差異。然而,對於可視化,d通常是2或3。

決策樹,隨機森林和PCA

不同的降維方法


分享到:


相關文章: