線性迴歸(Linear Regression)可能是最受歡迎的機器學習演算法。線性迴歸就是要找一條直線,並且讓這條直線盡可能地擬合散佈圖中的資料點。它試圖透過將直線方程式與該資料擬合來表示自變數(x 值)和數值結果(y 值)。然後就可以用這條線來預測未來的數值!
這種演算法最常用的技術是最小平方法(Least of squares)。這個方法計算出最佳擬合線,以使得與直線上每個資料點的垂直距離最小。總距離是所有資料點的垂直距離(綠線)的平方和。其想法是透過最小化這個平方誤差或距離來擬合模型。
例如,簡單線性迴歸,它有一個自變數(x 軸)和一個因變數(y 軸)。
邏輯迴歸(Logistic regression)與線性迴歸類似,但它是用來輸出為二進位的情況(即,當結果只能有兩個可能的值)。最終輸出的預測是一個非線性的 S 型函數,稱為 logistic function, g()。
這個邏輯函數將中間結果值對應到結果變數 Y,其值範圍從 0 到 1。然後,這些值可以解釋為 Y 出現的機率。 S 型邏輯函數的性質使得邏輯迴歸更適合用於分類任務。
邏輯迴歸曲線圖,顯示了通過考試的機率與學習時間的關係。
決策樹(Decision Trees)可用於迴歸和分類任務。
在這個演算法中,訓練模型透過學習樹表示(Tree representation)的決策規則來學習預測目標變數的值。樹是由具有相應屬性的節點組成的。
在每個節點上,我們根據可用的特徵詢問有關資料的問題。左右分支代表可能的答案。最終節點(即葉節點)對應於一個預測值。
每個特徵的重要性是透過自頂向下方法確定的。節點越高,其屬性就越重要。
決定是否在餐廳等候的決策樹範例。
樸素貝葉斯(Naive Bayes)是基於貝葉斯定理。它測量每個類別的機率,每個類別的條件機率給出 x 的值。這個演算法用來分類問題,得到一個二元「是 / 非」的結果。看看下面的方程式。
樸素貝葉斯分類器是一種流行的統計技術,可用於過濾垃圾郵件!
支援向量機(Support Vector Machine,SVM)是一種用於分類問題的監督演算法。支援向量機試圖在資料點之間繪製兩條線,它們之間的邊距最大。為此,我們將資料項繪製為 n 維空間中的點,其中,n 是輸入特徵的數量。在此基礎上,支援向量機找到一個最優邊界,稱為超平面(Hyperplane),它透過類別標籤將可能的輸出進行最佳分離。
超平面與最近的類別點之間的距離稱為邊距。最優超平面具有最大的邊界,可以對點進行分類,從而使最近的資料點與這兩個類別之間的距離最大化。
例如,H1 並沒有將這兩個類別分開。但 H2 有,不過只有很小的邊距。而 H3 以最大的邊距將它們分開了。
K- 最近鄰演算法(K-Nearest Neighbors,KNN)非常簡單。 KNN 透過在整個訓練集中搜尋 K 個最相似的實例,即 K 個鄰居,並為所有這些 K 個實例分配一個公共輸出變量,來對物件進行分類。
K 的選擇很關鍵:較小的值可能會得到大量的雜訊和不準確的結果,而較大的值是不可行的。它最常用於分類,但也適用於迴歸問題。
用來評估實例之間相似性的距離可以是歐幾里德距離(Euclidean distance)、曼哈頓距離(Manhattan distance)或明氏距離(Minkowski distance)。歐幾裡得距離是兩點之間的普通直線距離。它實際上是點座標之差平方和的平方根。
▲KNN 分類範例
K- 平均值(K-means)是透過對資料集進行分類來聚類的。例如,這個演算法可用於根據購買歷史將使用者分組。它在資料集中找到 K 個聚類。 K- 平均值用於無監督學習,因此,我們只需使用訓練資料 X,以及我們想要識別的聚類數量 K。
演算法根據每個資料點的特徵,將每個資料點迭代地分配給 K 個群組中的一個群組。它為每個 K- 聚類(稱為質心)選擇 K 個點。基於相似度,將新的數據點添加到具有最近質心的聚類中。這個過程一直持續到質心停止改變為止。
隨機森林(Random Forest)是一種非常流行的整合機器學習演算法。這個演算法的基本想法是,許多人的意見要比個人的意見更準確。在隨機森林中,我們使用決策樹整合(請參閱決策樹)。
為了對新物件進行分類,我們從每個決策樹中進行投票,並結合結果,然後根據多數投票做出最終決定。
在訓練過程中,每個決策樹都是基於訓練集的引導樣本來建構的。
在分類過程中,輸入實例的決定是根據多數投票做出的。
由於我們今天能夠擷取的資料量之大,機器學習問題變得更加複雜。這意味著訓練極其緩慢,而且很難找到一個好的解決方案。這一問題,通常被稱為「維數災難」(Curse of dimensionality)。
降維(Dimensionality reduction)試圖在不遺失最重要資訊的情況下,透過將特定的特徵組合成更高層次的特徵來解決這個問題。主成分分析(Principal Component Analysis,PCA)是最受歡迎的降維技術。
主成分分析透過將資料集壓縮到低維線或超平面 / 子空間來降低資料集的維數。這盡可能地保留了原始資料的顯著特徵。
可以透過將所有資料點近似到一條直線來實現降維的範例。
人工神經網路(Artificial Neural Networks,ANN)可以處理大型複雜的機器學習任務。神經網路本質上是一組帶有權值的邊和節點組成的相互連接的層,稱為神經元。在輸入層和輸出層之間,我們可以插入多個隱藏層。人工神經網路使用了兩個隱藏層。除此之外,還需要處理深度學習。
人工神經網路的工作原理與大腦的結構類似。一組神經元被賦予一個隨機權重,以確定神經元如何處理輸入資料。透過對輸入資料訓練神經網路來學習輸入和輸出之間的關係。在訓練階段,系統可以存取正確的答案。
如果網路無法準確辨識輸入,系統就會調整權重。經過充分的訓練後,它將始終如一地識別出正確的模式。
每個圓形節點表示一個人工神經元,箭頭表示從一個人工神經元的輸出到另一個人工神經元的輸入的連接。
接下來是什麼?現在,你已經了解了最受歡迎的機器學習演算法的基礎介紹。你已經準備好學習更為複雜的概念,甚至可以透過深入的動手實作來實現它們。如果你想了解如何實現這些演算法,可以參考 Educative 出品的 Grokking Data Science 課程,該課程將這些令人興奮的理論應用於清晰、真實的應用程式。
祝你學習愉快!
以上是機器學習必知必會十大演算法!的詳細內容。更多資訊請關注PHP中文網其他相關文章!