在機器學習中,電腦運用統計學習技術自動識別資料中的模式。這些技術可以用來做出高度準確的預測。

繼續往下看,我們將使用一組關於房屋的資料集,建立一個機器學習模型,來區分紐約的房屋和舊金山的房屋。

假設你需要判斷一棟房子是在舊金山還是紐約。以機器學習的術語來說,將資料點分類是一項分類任務。

由於舊金山地勢較為丘陵,房屋的海拔高度可能是區分兩個城市的好方法。

根據右側的房屋海拔資料,你可以認為海拔高於240英尺的房屋應該被歸類為舊金山的房屋。

加入另一個維度可以讓判斷更細緻。例如,紐約的公寓每平方英尺價格可能非常昂貴。

因此,將海拔和每平方英尺價格繪製成散點圖,有助於我們區分低海拔的房屋。

資料顯示,在海拔240英尺或以下的房屋中,價格高於每平方英尺1776美元的房屋屬於紐約市。

資料集中的維度稱為特徵、預測變數或變量。

你可以將海拔(>242英尺)和每平方英尺價格(>$1776)的觀察值視為散點圖中區域的邊界。繪製在綠色和藍色區域的房屋分別屬於舊金山和紐約。

利用數學識別資料中的邊界是統計學習的核心。

當然,你還需要更多資訊來區分低海拔且每平方英尺價格較低的房屋。

我們用來建立模型的資料集有7個不同維度。建立模型也稱為訓練模型。

右側的散點圖矩陣展示了各維度兩兩之間的關係。

資料中明顯存在模式,但劃分邊界並不明顯。

尋找資料中的模式正是機器學習的用武之地。機器學習方法利用統計學習來識別邊界。

其中一種機器學習方法是決策樹。決策樹一次只看一個變數,是一種相對容易理解(但較為基礎)的機器學習方法。

讓我們回到先前提出的240英尺海拔邊界,看看如何改進我們的直覺判斷。

顯然,這需要不同的視角。

將視覺化轉換成直方圖後,我們可以更清楚看到各海拔高度的房屋出現頻率。

雖然紐約最高的房屋約240英尺,但大多數房屋的海拔明顯較低。

決策樹使用if-then語句來定義資料中的模式。

例如,如果房屋海拔高於某個數值,則該房屋很可能位於舊金山。

在機器學習中,這些語句稱為分叉,根據某個值將資料分成兩個分支。

分支間的那個值稱為分割點。分割點左側的房屋被歸類為一類,右側的則歸為另一類。分割點是決策樹中的邊界。

選擇分割點有取捨。我們最初的分割點(約240英尺)錯誤地將一些舊金山房屋歸類為紐約房屋。

看看左側圓餅圖中那大塊綠色部分,這些都是被誤分類的舊金山房屋,稱為假陰性。

然而,若分割點設計為捕捉所有舊金山房屋,則會包含許多紐約房屋,這稱為假陽性。

最佳分割點應使每個分支的結果盡可能同質(純淨)。有多種數學方法可用來計算最佳分割點。

如圖所示,即使是單一特徵的最佳分割點,也無法完全區分舊金山和紐約的房屋。

為了加入另一個分割點,演算法會對資料子集重複上述過程。這種重複稱為遞迴,是訓練模型時常見的概念。

左側的直方圖顯示每個子集的分布,並對每個變數重複。

最佳分割點會根據你所處的樹分支而異。

對於低海拔房屋,每平方英尺價格是下一個if-then語句中最佳的變數。對於高海拔房屋,則是價格。

額外的分叉會加入新資訊,提升決策樹的預測準確度。

往下一層分割後,樹的準確度提升至84%。

再增加幾層後,準確度達到96%。

你甚至可以持續增加分支,直到樹的預測達到100%準確,讓每個分支末端的房屋純粹屬於舊金山或紐約。

這些樹的最終分支稱為葉節點。我們的決策樹模型會根據葉節點中多數房屋的類別來分類房屋。

新訓練的決策樹模型會將每個資料點依序通過樹的分支,判斷該房屋位於舊金山或紐約。

這裡可以看到用來訓練樹的資料流經決策樹。

這些資料稱為訓練資料,因為它們用來訓練模型。

由於我們將樹長到100%準確,這棵樹能完美對應每個訓練資料點所屬的城市。

當然,更重要的是樹對未見過資料的表現。

為了測試樹對新資料的表現,我們需要將它應用於從未見過的資料點。這些未使用過的資料稱為測試資料。

理想情況下,樹在已知和未知資料上的表現應該相似。

這些錯誤是過擬合造成的。我們的模型學會將訓練資料中的每個細節視為重要,即使有些細節其實無關緊要。

過擬合是機器學習中的一個基本概念,我們會在下一篇文章中詳細說明。

下一篇文章中,我們將探討過擬合以及它與機器學習中一個基本取捨的關係。