在機器學習中,電腦運用統計學習技術自動識別資料中的模式。這些技術可以用來做出高度準確的預測。
繼續往下看,我們將使用一組關於房屋的資料集,建立一個機器學習模型,來區分紐約的房屋和舊金山的房屋。
假設你需要判斷一棟房子是在舊金山還是紐約。以機器學習的術語來說,將資料點分類是一項分類任務。
由於舊金山地勢較為丘陵,房屋的海拔高度可能是區分兩個城市的好方法。
根據右側的房屋海拔資料,你可以認為海拔高於240英尺的房屋應該被歸類為舊金山的房屋。
加入另一個維度可以讓判斷更細緻。例如,紐約的公寓每平方英尺價格可能非常昂貴。
因此,將海拔和每平方英尺價格繪製成散點圖,有助於我們區分低海拔的房屋。
資料顯示,在海拔240英尺或以下的房屋中,價格高於每平方英尺1776美元的房屋屬於紐約市。
資料集中的維度稱為特徵、預測變數或變量。
你可以將海拔(>242英尺)和每平方英尺價格(>$1776)的觀察值視為散點圖中區域的邊界。繪製在綠色和藍色區域的房屋分別屬於舊金山和紐約。
利用數學識別資料中的邊界是統計學習的核心。
當然,你還需要更多資訊來區分低海拔且每平方英尺價格較低的房屋。
我們用來建立模型的資料集有7個不同維度。建立模型也稱為訓練模型。
右側的散點圖矩陣展示了各維度兩兩之間的關係。
資料中明顯存在模式,但劃分邊界並不明顯。
尋找資料中的模式正是機器學習的用武之地。機器學習方法利用統計學習來識別邊界。
其中一種機器學習方法是決策樹。決策樹一次只看一個變數,是一種相對容易理解(但較為基礎)的機器學習方法。
讓我們回到先前提出的240英尺海拔邊界,看看如何改進我們的直覺判斷。
顯然,這需要不同的視角。
將視覺化轉換成直方圖後,我們可以更清楚看到各海拔高度的房屋出現頻率。
雖然紐約最高的房屋約240英尺,但大多數房屋的海拔明顯較低。
決策樹使用if-then語句來定義資料中的模式。
例如,如果房屋海拔高於某個數值,則該房屋很可能位於舊金山。
在機器學習中,這些語句稱為分叉,根據某個值將資料分成兩個分支。
分支間的那個值稱為分割點。分割點左側的房屋被歸類為一類,右側的則歸為另一類。分割點是決策樹中的邊界。
選擇分割點有取捨。我們最初的分割點(約240英尺)錯誤地將一些舊金山房屋歸類為紐約房屋。
看看左側圓餅圖中那大塊綠色部分,這些都是被誤分類的舊金山房屋,稱為假陰性。
然而,若分割點設計為捕捉所有舊金山房屋,則會包含許多紐約房屋,這稱為假陽性。
最佳分割點應使每個分支的結果盡可能同質(純淨)。有多種數學方法可用來計算最佳分割點。
如圖所示,即使是單一特徵的最佳分割點,也無法完全區分舊金山和紐約的房屋。
為了加入另一個分割點,演算法會對資料子集重複上述過程。這種重複稱為遞迴,是訓練模型時常見的概念。
左側的直方圖顯示每個子集的分布,並對每個變數重複。
最佳分割點會根據你所處的樹分支而異。
對於低海拔房屋,每平方英尺價格是下一個if-then語句中最佳的變數。對於高海拔房屋,則是價格。
額外的分叉會加入新資訊,提升決策樹的預測準確度。
往下一層分割後,樹的準確度提升至84%。
再增加幾層後,準確度達到96%。
你甚至可以持續增加分支,直到樹的預測達到100%準確,讓每個分支末端的房屋純粹屬於舊金山或紐約。
這些樹的最終分支稱為葉節點。我們的決策樹模型會根據葉節點中多數房屋的類別來分類房屋。
新訓練的決策樹模型會將每個資料點依序通過樹的分支,判斷該房屋位於舊金山或紐約。
這裡可以看到用來訓練樹的資料流經決策樹。
這些資料稱為訓練資料,因為它們用來訓練模型。
由於我們將樹長到100%準確,這棵樹能完美對應每個訓練資料點所屬的城市。
當然,更重要的是樹對未見過資料的表現。
為了測試樹對新資料的表現,我們需要將它應用於從未見過的資料點。這些未使用過的資料稱為測試資料。
理想情況下,樹在已知和未知資料上的表現應該相似。
這些錯誤是過擬合造成的。我們的模型學會將訓練資料中的每個細節視為重要,即使有些細節其實無關緊要。
過擬合是機器學習中的一個基本概念,我們會在下一篇文章中詳細說明。
下一篇文章中,我們將探討過擬合以及它與機器學習中一個基本取捨的關係。