機器學習預測2018年世界盃冠軍隊

機器學習預測2018年世界盃冠軍隊

參與文末話題討論,每日贈送異步圖書

麻省理工學院報道,他們開發了一種新型人工智能,用以預測世界盃走勢。而應用了一種名為random-forest的計算方法,通過結合機器自我學習和常規統計,其準確率可能遠勝於傳統的統計方法。

在眾多資深評論員的預測中,巴西擁有16.6%的最高奪冠幾率,德國和西班牙緊隨其後,奪冠概率分別有12.8%和12.5%。但random-forest認為,西班牙擁有更高的奪冠幾率,其捧杯概率為17.8%,高於德國。這其中主要是因德國在16強中失利的可能性相對較大。在麻省理工的相關報告中,他們表示:

“西班牙比德國稍受AI青睞,這主要是因為德國在16強被爆冷的可能更高。”

近年來random-forest已經成為一種分析大型數據集的可靠方法,其在運行分析的同時規避了其他數據挖掘系統的一些缺陷。Random-forest的主要運算邏輯基於未來事件可以由決策樹來決定這一原則,而決策樹通過分析每一組數據集來得出其相應分支的結果。

在麻省理工的報告中稱,影響西班牙和德國未來走向的重要因素是賽事本身的結構。他們指出,如果德國在小組階段出線,其在16強淘汰賽面臨的挑戰將遠大於西班牙,“翻車”的可能性不小。基於此點,random-forest通過計算,認為德國進入1/4決賽的概率只有58%;相比之下,西班牙則有73%的機率進入八強。

當然,假如西班牙和德國都成功進入1/4決賽,那麼他們將有平等的機會最終捧杯。

random-forest中文翻譯為隨機森林,隨機森林離不開決策樹,下面我們就聊聊決策樹和random-forest是如何計算的。

決策樹模型雖然簡單明瞭,但單獨使用時效果並不理想。決策樹和邏輯迴歸配合使用,將兩種模型聯結成為一個整體後,模型的效果得到了明顯的提升。但由於其中涉及兩種完全不同的模型,在數學上很難給這種聯結方式一個比較理想的抽象,因此在工程實現上,很難做到自動尋找最優的模型組合。

為了使模型間的組合更加自動化,最常規或者最成熟的做法就是隻使用一種模型,比如決策樹。通過某種方式將多個決策樹組合起來,使用它們的“集體智慧”來解決問題,學術上被稱為集成方法(ensemble method)。

針對決策樹的集成方法通常可以被分為兩類:平均方法(averaging methods)和提升方法(boosting methods)。它們的代表模型分別是隨機森林和GBTs。

1.1隨機森林

隨機森林(random forests)由n個決策樹組成,模型的預測結果等於各決策樹結果的某種“加權平均”,如圖1所示。

機器學習預測2018年世界盃冠軍隊

圖1

• 對於分類問題,最終結果等於在決策樹預測結果中出現次數最多的類別。直觀上,可以將每個決策樹想象成一個人,而隨機森林想象成一場投票,通過少數服從多數的原則得到最終的結果。

• 對於迴歸問題,最終結果等於決策樹預測結果的平均值。

隨機森林的建模依據是:一棵樹犯錯的概率比較大,但很多樹同時犯錯的概率就很小了。通過一個簡單的例子,從數學上來證明一下這種做法的正確性。假設針對某個分類問題,有3棵相互獨立的決策樹,它們各自預測錯誤的概率為20%。如果將它們按少數服從多數的原則組合起來,形成一個隨機森林,那麼預測犯錯的情況可分為如下兩種:3棵決策樹都錯誤或者只有一棵樹預測正確。計算可得這個隨機森林的犯錯概率下降到10.4%。

〖0.2〗^3 + 3 × 〖0.2〗^2 × 0.8 = 10.4% (8-34)

由上面的例子可以看到,隨機森林預測效果最重要的保證是森林中的決策樹是相互獨立的(極端地,假設森林中的每棵樹都是一樣的,則隨機森林模型等同於決策樹模型)。那麼針對同一份訓練數據,應該如何產生隨機的決策樹呢?

首先回顧一下決策樹劃分節點的具體步驟。使用訓練集中的所有數據(假設數據被分為訓練集和測試集)訓練模型。對於需要劃分的節點,選擇最優的一個自變量以及相應的閾值,將其劃分為左右兩個子節點,使得子節點的不純度之和達到最小。因此,可以從如下的3個層面引入決策樹的隨機性。

• 對於每個決策樹,從原始訓練集中隨機選取訓練該決策樹的數據。

• 在劃分節點時,並不遍歷全部自變量,而是隨機挑選其中的一部分作為候選自變量。

• 在選擇自變量的劃分閾值時,並不求得最優的解,而是隨機構成一個候選閾值集合,並從中選取效果最優的(子節點的不純度之和最低)。

針對隨機森林,第三方庫scikit-learn提供了兩種實現:random forests和extremely randomized trees。這兩者的差異在於random forests實現了隨機性中的前兩點,即訓練數據隨機以及候選自變量隨機,而extremely randomized trees實現了隨機性中的全部3點。在代碼層面,這兩類模型被封裝成4個類(模型的參數和調用代碼與決策樹類似,在此不再贅述,有興趣的讀者請參考scikit-learn官方網站)。

• random forests 包括兩個類:用於分類問題的RandomForestClassifier和用於迴歸問題的RandomForestRegressor。

• extremely randomized trees也包含兩個類:ExtraTreesClassifier和ExtraTreesRegressor。它們分別解決分類問題和迴歸問題。

1.2Random forest embedding

隨機森林雖然是監督式學習,但它其實同樣能處理沒有標籤變量的數據(或者故意不使用數據中的標籤變量)。也就是說隨機森林能被當作非監督式學習的模型使用[ ],先來看看這種方法的具體步驟。

假設訓練數據一共有n個且數據由m維向量表示,記為{X_i = (x_(i,1),x_(i,2),...,x_(i,m)),1 "≤" i "≤" n}。將這n個原始數據都歸為一類,也就是說憑空生成標籤變量{y_i = 0,1 "≤" i "≤" n}。然後按如下的方法生成合成數據{X_i,n + 1 "≤" i "≤" 2n}:對於數據X_(n + 1),從原始數據第1個變量的取值裡(即{x_(i,1)})隨機抽取一個作為它的第1個變量;從原始數據第2個變量的取值裡(即{x_(i,2)})隨機抽取一個作為它的第2個變量,並以此類推,生成合成數據X_(n + 1)。不斷重複上面的這個過程,直到生成n個新的合成數據。數據生成完成之後,將合成數據歸為另一類,即{y_i = 1,n + 1 "≤" i "≤" 2n},整個過程如圖2所示。

機器學習預測2018年世界盃冠軍隊

圖2

原始數據、合成數據以及生成的標籤變量放在一起,就構成了有標籤的訓練數據,不妨記為{(X_i,y_i),1 "≤" i "≤" 2n}。對於這樣的數據,可以對其使用隨機森林進行分類,這樣操作的目的有兩個[ ]。

• 分析各個變量之間是否存在比較強烈的相關關係。同原始數據相比,合成數據裡每個變量的分佈情況是沒有變化的(因為隨機抽取)。唯一不同的是,合成數據破壞了原始數據中各個變量間可能存在相關關係。因此當分類結果的誤差較大時,說明原始數據的各個變量幾乎是相互獨立,反之則說明各變量間的相關關係比較強烈。

• 將原本較低維度的原始數據映射到高維空間,同支持向量學習機中的核函數類似。這在學術上被稱為random forest embedding,也是如此使用隨機森林的主要目的。下面將討論它的具體細節。

在上節中,我們討論瞭如何利用決策樹來做特徵提取,而隨機森林是由n棵決策樹組成,因此相應的處理方法與之很相似。舉個例子,假設訓練好的隨機森林(訓練數據為{(X_i,y_i),1 "≤" i "≤" 2n})裡有兩棵決策樹,它們的葉子節點數分別為2和4。第i個數據X_i落在了第一棵決策樹的第1個葉子,第二棵決策樹的第2個葉子。那麼這個數據相應的新特徵為(1, 0, 0, 1, 0, 0),如圖3所示,這樣就完成了低維數據到高維數據(隨機森林裡決策樹的個數可以很大)的映射。random forest embedding方法常配合其他監督式學習模型一起使用.

機器學習預測2018年世界盃冠軍隊

圖3

為了提升模型效果,需要借鑑支持向量學習機(SVM)中核函數(kernel method)的做法,將低維數據映射到高維空間,而且需要保證在高維空間裡,各變量的取值只能是0或者1。random forests embedding正好滿足這樣的要求,因此在實際中,常使用它將數據升到高維,再在此基礎上使用伯努利模型對數據進行分類。

舉個簡單的例子,假設原始數據只有兩個變量x_1,x_2,將數據表現在平面上,可以得到如圖3所示的圖形,圖中的三角形表示類別0,而圓點表示類別1,兩個類別均呈半月型。如程序清單9-4所示,先使用RandomTreesEmbedding將原始的二維數據映射到高維空間,再使用BernoulliNB對變換後的數據做分類。分類的結果還不錯,圖4中灰色部分的預測結果是類別0的區域,而白色區域的預測結果是類別1。

機器學習預測2018年世界盃冠軍隊

圖4

來看下代碼清單

機器學習預測2018年世界盃冠軍隊

本文摘自《精通數據科學:從線性迴歸到深度學習》

機器學習預測2018年世界盃冠軍隊

《精通數據科學:從線性迴歸到深度學習》唐亙 著

京東購書 噹噹購書

數據科學入門到實戰,介紹數據科學常用的工具——Python、數學基礎及模型,討論數據科學的前沿領域——大數據和人工智能

,包括機器學習領域經典的模型、分佈式機器學習、神經網絡和深度學習等。

  • 在數據學科的角度,融合了數學、計算機科學、計量經濟學的精髓
  • 為讀者闡釋了數據科學所要解決的核心問題—數據模型、算法模型的理論內涵和適用範圍
  • 以常用的IT工具—Python為基礎,教會讀者如何建模以及通過算法實現數據模型,具有很強的實操性。
  • 本書還為讀者詳解了分佈式機器學習、神經網絡、深度學習等大數據和人工智能的前沿技術。

今日互動

你覺得2018年冠軍球隊是哪個?為什麼?截止時間6月22日17時,留言+轉發本活動到朋友圈,小編將抽獎選出3名讀者贈送紙書1本和2張e讀版20元異步社區代金券,(留言點贊最多的自動獲得一張)。

在“異步圖書”微信後臺回覆“關注”,即可免費獲得2000門在線視頻課程


分享到:


相關文章: