機器學習正在改變世界。谷歌使用機器學習向用戶推薦搜索結果?.NETflix 使用它來推薦電影供您觀看。Facebook 使用機器學習來推薦您可能認識的人。
機器學習從未如此重要。同時,理解機器學習也很困難。該領域充滿了行話。并且不同的機器學習算法的數量每年都在增長。
本文將向您介紹機器學習領域的基本概念。更具體地說,我們將討論今天最重要的 9 種機器學習算法背后的基本概念。
推薦系統
什么是推薦系統?
推薦系統用于在數據集中找到相似的條目。
也許最常見的真實世界推薦示例存在于 Netflix 內部。更具體地說,其視頻流服務將根據您已經觀看的內容推薦推薦的電影和電視節目。
另一個推薦系統是 Facebook 的“您可能認識的人”功能,它根據您現有的朋友列表為您推薦可能的朋友。完全開發和部署的推薦系統非常復雜。它們也非常耗費資源。
推薦系統和線性代數
成熟的推薦系統需要深厚的線性代數背景才能從頭開始構建。
因此,如果您以前從未學習過線性代數,則本節中可能會有一些您不理解的概念。
不過不用擔心—scikit-learn Python/ target=_blank class=infotextkey>Python 庫讓構建推薦系統變得非常容易。S0 你不需要太多的線性代數背景來構建現實世界的推薦系統。
推薦系統如何工作?
推薦系統主要有兩種類型:
基于內容的推薦系統
協同過濾推薦系統
基于內容的推薦系統根據項目與您已經使用過的項目的相似性為您提供建議。它們的行為與您期望推薦系統的行為完全相同。
協同過濾推薦系統基于用戶與項目交互的知識產生推薦。換句話說,他們利用群眾的智慧。(因此在其名稱中使用了“群體協作”一詞。)
在現實世界中,協同過濾推薦系統比基于內容的系統更常見。這主要是因為它們通常會提供更好的結果。一些從業者還發現協同過濾推薦系統更容易理解。
協同過濾推薦系統還具有基于內容的系統所缺少的獨特功能。也就是說,他們有能力自己學習特征。
這意味著他們甚至可以根據您甚至沒有告訴他們考慮的屬性開始識別項目之間的相似性。
協同過濾中有兩個子類別:
基于記憶的協同過濾
基于模型的協同過濾
您無需了解這兩種類型的協同過濾推薦系統之間的區別即可在機器學習中取得成功。認識到存在多種類型就足夠了。
部分總結
以下是我們在本教程中討論的關于推薦系統的內容的簡要總結:
現實世界中的推薦系統示例
不同類型的推薦系統,以及協同過濾系統如何比基于內容的推薦系統更常用
推薦系統與線性代數的關系
線性回歸
線性回歸y用于根據另一組值的值來預測某些x值。
線性回歸的歷史
線性回歸由Francis Galton在 1800 年代創建。
高爾頓是一位研究父母與孩子之間關系的科學家。更具體地說,高爾頓正在調查父親的身高和兒子的身高之間的關系。
高爾頓的第一個發現是兒子的身高往往與父親大致相同。這并不奇怪。
后來,高爾頓發現了更有趣的事情。兒子的身高往往比他自己的父親更接近所有人的平均身高 。
高爾頓給這種現象起了一個名字:回歸。具體來說,他說“父親的兒子的身高趨向于回歸(或趨向)平均(平均)身高”。這導致了統計和機器學習的整個領域,稱為回歸。
線性回歸的數學
在創建回歸模型時,我們要做的就是繪制一條盡可能接近數據集中每個點的線。
這方面的典型例子是線性回歸的“最小二乘法”,它只計算一條直線在上下方向的接近度。
這是一個示例來幫助說明這一點:

最小二乘回歸背后的數學示例
當您創建回歸模型時,您的最終產品是一個方程,您可以使用它來預測 x 值的 y 值,而無需事先實際知道 y 值。
邏輯回歸
邏輯回歸類似于線性回歸,只是它不是計算數值y,而是估計數據點屬于哪個類別。
什么是邏輯回歸?
邏輯回歸是一種用于解決分類問題的機器學習模型。
以下是機器學習分類問題的一些示例:
垃圾郵件(垃圾郵件還是非垃圾郵件?)
汽車保險索賠(注銷或維修?)
疾病診斷
每個分類問題都有兩個類別,這使它們成為二元分類問題的示例。
邏輯回歸非常適合解決二元分類問題—我們只需為不同的類別分別分配0和的值1。
為什么我們需要邏輯回歸?
因為您不能使用線性回歸模型進行二元分類預測。它不會導致很好的擬合,因為您試圖通過只有兩個可能值的數據集擬合一條直線。
這張圖片可以幫助你理解為什么線性回歸模型不適合二元分類問題:
線性回歸分類
在該圖像中,y-axis表示腫瘤為惡性的概率。相反,該值1-y表示腫瘤不是惡性的概率。如您所見,線性回歸模型在預測數據集中大多數觀察的概率方面做得很差。
這就是邏輯回歸模型有用的原因。它們對最佳擬合線有一個彎曲,這使它們更適合預測分類數據。
這是一個使用相同訓練數據將線性回歸模型與邏輯回歸模型進行比較的示例:
邏輯回歸模型的曲線有彎曲的原因是因為它不是使用線性方程計算的。相反,邏輯回歸模型是使用 Sigmoid 函數(也稱為邏輯函數,因為它用于邏輯回歸)構建的。
您無需記住Sigmoid 函數即可在機器學習中取得成功。話雖如此,對它的外觀有所了解是很有用的。
Sigmoid 函數值得理解的主要特點是:無論你傳入什么值,它總是會產生一個介于 0 和 1 之間的輸出。
使用邏輯回歸模型進行預測
要使用線性回歸模型進行預測,通常需要指定一個截止點。這個截止點通常是0.5。
讓我們使用我們早期圖像中的癌癥診斷示例來查看實踐中的這一原理。如果邏輯回歸模型輸出的值低于 0.5,則數據點被歸類為非惡性腫瘤。同樣,如果 Sigmoid 函數輸出的值高于 0.5,則腫瘤將被歸類為惡性。
混淆矩陣可用作比較機器學習中的真陽性、真陰性、假陽性和假陰性的工具。
混淆矩陣在用于衡量邏輯回歸模型的性能時特別有用。以下是我們如何使用混淆矩陣的示例:
在此圖中,TN 代表“真陰性”,FN 代表“假陰性”。
混淆矩陣可用于評估您的模型在混淆矩陣的特定象限中是否特別弱。例如,它可能有異常多的誤報。
它在某些應用程序中也很有幫助,以確保您的模型在混淆矩陣的特別危險區域中表現良好。例如,在這個癌癥示例中,您需要非常確定您的模型沒有很高的假陰性率,因為這表明某人患有您錯誤地歸類為非惡性的惡性腫瘤。
部分總結
-
-
邏輯函數(也稱為 Sigmoid 函數)始終輸出介于 0 和 1 之間的值
-
-
K-最近鄰
K-最近鄰算法可以幫助您解決兩個以上類別的分類問題。
K近鄰算法是一種基于簡單原理的分類算法。其實原理很簡單,最好通過例子來理解。
想象一下,您有足球運動員和籃球運動員的身高和體重數據。K-最近鄰算法可用于預測新運動員是足球運動員還是籃球運動員。
為此,K-最近鄰算法識別K最接近新觀測值的數據點。
在此圖像中,足球運動員被標記為藍色數據點,籃球運動員被標記為橙色點。我們試圖分類的數據點被標記為綠色。
由于新數據點的大多數(3 個中的 2 個)數據點是藍色足球運動員,因此 K-最近鄰算法將預測新數據點也是一名足球運動員。
構建 K-最近鄰算法的步驟
K 在 K-最近鄰算法中的重要性
雖然從一開始可能并不明顯,但K在 K 近鄰算法中更改 的值將改變新點分配到的類別。
更具體地說,具有非常低的K值將導致您的模型完美地預測您的訓練數據并且很差地預測您的測試數據。同樣,值太高K會使您的模型變得不必要地復雜。
為了結束對 K 近鄰算法的介紹,我想簡要討論使用該模型的一些優缺點。
該模型只接受兩個參數:K以及您想使用的距離度量(通常是歐幾里得距離)
進行預測的計算成本很高,因為您需要對整個數據集進行排序
-
K-最近鄰算法可以解決的分類問題(足球運動員與籃球運動員)示例
-
K-最近鄰如何使用相鄰數據點的歐幾里得距離來預測新數據點屬于哪個類別
-
-
決策樹和隨機森林
更具體地說,決策樹是機器學習模型,用于通過逐個循環遍歷數據集中的每個特征來進行預測。隨機森林是決策樹的集合,它使用數據集中特征的隨機順序。
在我們深入研究機器學習中樹方法的理論基礎之前,從一個例子開始會很有幫助。
想象一下,你每周一都打籃球。而且,你總是邀請同一個朋友來和你一起玩。
是否來的決定取決于許多因素,如天氣、溫度、風和疲勞。您開始注意到這些功能,并開始跟蹤它們以及您朋友是否玩的決定。
您可以使用這些數據來預測您的朋友是否會來打籃球。您可以使用的一種技術是決策樹。下面是這個決策樹的樣子:
您可以在上圖中看到 和的outlook節點。這些屬性中的每一個的每個潛在價值都有一個優勢。humiditywindy
您現在對什么是決策樹有了基本的了解。我們將在下一節學習如何從頭開始構建決策樹。
構建決策樹比您想象的要難。這是因為決定將數據拆分到哪些特征(這是屬于熵和信息增益領域的主題)是一個數學上復雜的問題。
為了解決這個問題,機器學習從業者通常使用許多決策樹,使用隨機選擇的特征樣本作為分割。換句話說,在每次拆分時為每棵樹選擇一個新的隨機特征樣本。這種技術稱為隨機森林。
通常,從業者通常選擇特征隨機樣本的大小(表示為m)作為數據集中總特征數的平方根(表示為p)。簡而言之,m是 的平方根p,然后從 中隨機選擇一個特定的特征m。
如果現在這不完全有意義,請不要擔心。當你最終建立你的第一個隨機森林模型時會更清楚。
使用隨機森林的好處
想象一下,您正在使用具有一個非常強大功能的數據集。換句話說,數據集有一個特征比數據集中的其他特征更能預測最終結果。
如果您手動構建決策樹,那么使用此功能作為決策樹的頂部拆分是有意義的。這意味著您將擁有多個預測高度相關的樹。
我們希望避免這種情況,因為取高度相關變量的平均值不會顯著減少方差。通過為隨機森林中的每棵樹隨機選擇特征,這些樹變得去相關并且結果模型的方差減少了。這種去相關是使用隨機森林而不是手工決策樹的主要優勢
部分總結
以下是您在本文中學到的有關決策樹和隨機森林的簡要總結:
決策樹的元素:nodes、edges、roots和leaves
為什么使用隨機森林去相關變量有助于減少最終模型的方差
支持向量機
支持向量機是分類算法(盡管從技術上講,它們也可用于解決回歸問題),通過切分類別之間的最大差距將數據集劃分為類別。稍后將通過可視化使這個概念更加清晰。
支持向量機(或簡稱 SVM)是有監督的機器學習模型,具有分析數據和識別模式的相關學習算法。
支持向量機可用于分類問題和回歸問題。在本文中,我們將專門研究使用支持向量機解決分類問題。
給定一組訓練示例——每個訓練示例都被標記為屬于兩個類別之一——支持向量機訓練算法構建一個模型。該模型將新示例分配到兩個類別之一。這使得支持向量機成為非概率二元線性分類器。
更具體地說,SVM 模型將數據點映射為空間中的點并劃分單獨的類別,以便將它們劃分為盡可能寬的開放間隙。新數據點被預測屬于基于它們屬于差距的哪一側的類別。這是一個可視化示例,可以幫助您理解支持向量機背后的直覺:
如您所見,如果一個新的數據點落在綠線的左側,它將被標記為紅色類別。同樣,如果一個新數據點落在綠線的右側,它將被標記為屬于藍色類別。
這條綠線稱為超平面,它是支持向量機算法的重要詞匯。
在該圖中,超平面被標記為最優超平面。支持向量機理論將最優超平面定義為使每個類別中最接近的數據點之間的邊距最大化的超平面。
如您所見,邊緣線實際上觸及三個數據點——兩個來自紅色類別,一個來自藍色類別。這些接觸邊緣線的數據點稱為支持向量,并且是支持向量機得名的地方。
部分總結
支持向量機如何使用超平面對數據點進行分類,從而最大化數據集中類別之間的邊距
在支持向量機中接觸邊緣線的數據點稱為支持向量。這些數據點是支持向量機名稱的來源。
K-Means 聚類
K-means 聚類是一種機器學習算法,可讓您識別數據集中的相似數據段。
這意味著它會接收未標記的數據,并將嘗試在您的數據中將類似的觀察聚類分組在一起。
K-means 聚類算法對于解決實際問題非常有用。以下是此機器學習模型的一些用例:
亞馬遜、UPS 或 FedEx 等公司的配送路線優化
K 均值聚類算法的主要目標是將數據集劃分為不同的組,以使每組內的觀察結果彼此相似。
我們將在本教程的下一部分探討 K-means 聚類背后的數學。
K-Means 聚類算法如何工作?
運行 K-means 聚類算法的第一步是選擇您希望將數據劃分到的聚類數量。該聚類數是K算法名稱中引用的值。
在 K-means 聚類算法中選擇K值是一個重要的選擇。K我們將在本文后面更多地討論如何選擇合適的值。
接下來,您必須將數據集中的每個點隨機分配給一個隨機集群。這給出了我們的初始分配,然后您運行以下迭代,直到集群停止更改:
這是一個動畫,它在實踐中如何用于K值為 的K-means 聚類算法3。您可以看到由黑色+字符表示的每個簇的質心。K 均值聚類算法的可視化
如您所見,此迭代一直持續到集群停止更改——這意味著不再將數據點分配給新集群。
為 K-means 聚類算法選擇一個合適的K值實際上是相當困難的。K選擇“最佳”值沒有“正確”答案。
要使用肘部方法,您需要做的第一件事是為一組值的 K 均值聚類算法計算平方誤差之和 (SSE) K。K 均值聚類算法中的 SSE 定義為聚類中每個數據點與該聚類質心之間的平方距離之和。
接下來,您將要針對這些不同的K值生成 SSE 圖。您將看到誤差隨著K值的增加而減小。
這是有道理的——您在數據集中創建的類別越多,每個數據點就越有可能靠近其特定集群的中心。
話雖如此,肘法背后的想法是選擇一個值,K在該值上 SSE 會突然減緩其下跌速度。elbow這種突然的下降在圖中產生了一個。
例如,這里是 SSE 對K. 在這種情況下,肘部方法建議使用K大約 的值6。
K 均值聚類算法的可視化
重要的6是,這只是對使用價值的估計K。K-means 聚類算法中從來沒有“最佳”K值。與機器學習領域的許多事情一樣,這是一個高度依賴于情況的決定。
部分總結
K-means 聚類算法能夠解決的無監督機器學習問題示例
如何使用肘法K在 K-means 聚類模型中選擇合適的值
主成分分析
主成分分析用于將多特征數據集轉換為具有較少特征的轉換數據集,其中每個新特征都是預先存在的特征的線性組合。這個轉換后的數據集旨在更簡單地解釋原始數據集的大部分方差。
什么是主成分分析?
主成分分析是一種機器學習技術,用于檢查變量集之間的相互關系。
換句話說,主成分分析研究變量集以識別這些變量的基本結構。
基于此描述,您可能會認為主成分分析與線性回歸非常相似。
事實并非如此。事實上,這兩種技術有一些重要的區別。
線性回歸與主成分分析的區別
線性回歸通過數據集確定最佳擬合線。主成分分析確定了幾條最適合數據集的正交線。
如果您不熟悉術語正交,它僅表示這些線彼此成直角(90 度) - 就像地圖上的北、東、南和西一樣。
在此圖像中,x 軸主成分示例了數據集中 73% 的方差。y 軸主成分解釋了數據集中約 23% 的方差。
這意味著數據集中仍有 4% 的方差無法解釋。您可以通過在分析中添加更多主成分來進一步減少此數字。