您現在的位置是:首頁 > 垂釣

如何選擇正確的機器學習演算法

  • 由 不靠譜的貓 發表于 垂釣
  • 2022-06-26
簡介機器學習任務的型別監督學習無監督學習強化學習監督學習監督學習要求演算法的可能輸出已知,並且用於訓練演算法的資料已經標記有正確的答案

演算法的特徵是什麼

機器學習通用方法

1 - 將問題分類

按輸入分類:如果是標記資料,則是監督學習問題。如果它是用於查詢結構的未標記資料,那麼這是一個無監督機器學習學習問題。如果解決方案是透過與環境互動來最佳化目標函式,那麼這就是強化學習問題。

按輸出分類:如果模型的輸出是數字,那就是迴歸問題。如果模型的輸出是一個類,那就是分類問題。如果模型的輸出是一組輸入組,則是一個聚類問題。

2 - 瞭解資料

在為正確的問題選擇正確的演算法的過程中,資料的理解過程起著關鍵的作用。一些演算法可以處理較小的樣本集,而另一些演算法則需要大量的樣本。某些演算法處理分類資料,而另一些演算法則喜歡處理數值輸入。

分析資料:這一步有兩個重要的任務:用描述性統計理解資料,用視覺化和圖表理解資料。

處理資料:資料處理包括預處理、概要分析、清理,它通常還涉及從不同的內部系統和外部源收集資料。

轉換資料:將資料從原始狀態轉換為適合建模的狀態的傳統想法是特徵工程。轉換資料和特徵工程實際上可能是同義詞。特徵工程是將原始資料轉換為更能代表預測模型的基礎問題的特徵的過程,它提高了模型對不可見資料的準確性。

3 - 查詢可用的演算法

在對問題進行分類並理解資料之後,下一個里程碑是確定在合理的時間內可以應用和實際實現的演算法。影響模型選擇的因素包括:

模型的準確性。

模型的可解釋性。

模型的複雜性。

模型的可擴充套件性。

構建,訓練和測試模型需要多長時間?

使用該模型進行預測需要多長時間?

該模型是否符合業務目標?

4 - 實現機器學習演算法

設定一個機器學習管道,使用一組精心選擇的評估標準比較每個演算法在資料集上的效能。另一種方法是在不同的資料集子組上使用相同的演算法。對此,最好的解決方案是隻執行一次,或者讓一個服務在新增新資料時每隔一段時間執行一次。

5 - 最佳化超引數。

最佳化超引數有三種選擇:網格搜尋、隨機搜尋和貝葉斯最佳化。

機器學習任務的型別

監督學習

無監督學習

強化學習

監督學習

監督學習要求演算法的可能輸出已知,並且用於訓練演算法的資料已經標記有正確的答案。如果輸出是實數,我們稱任務迴歸。如果輸出來自有限數量的值,這些值是無序的,那麼它就是分類。

如何選擇正確的機器學習演算法

無監督學習

無監督機器學習更接近於一些人所說的真正的人工智慧,即計算機可以學習識別複雜的過程和模式,而無需人工提供指導。無監督機器學習適用於物件資訊較少的情況,特別是訓練集沒有標記的場景。無監督機器學習可以觀察物件組之間的一些相似性,並將它們包含在適當的聚類中。有些物件可能與所有聚類有很大不同,這些物件通常是離群值。

如何選擇正確的機器學習演算法

強化學習

強化學習是指面向目標的演算法,它學習如何在多個步驟中實現複雜目標或沿特定維度最大化。例如,透過多次移動最大化遊戲中贏得的積分。它與監督學習的不同之處在於,在監督學習中,訓練資料具有關鍵作用,因此模型用正確答案本身進行訓練,而在強化學習中,沒有答案。在沒有訓練資料集的情況下,必然要從其經驗中學習。

如何選擇正確的機器學習演算法

常用的機器學習演算法

1-線性迴歸

線性迴歸是一種統計方法,它允許總結和研究兩個連續(定量)變數之間的關係:一個變數,表示為X,被視為自變數。表示為y的另一個變數被視為因變數。線性迴歸使用一個自變數X來解釋或預測因變數y的結果,而多元迴歸使用兩個或兩個以上自變數根據損失函式(如均方誤差(MSE)或平均絕對誤差( MAE))來預測結果。所以當你被告知預測當前正在執行的程序的未來值時,你可以使用迴歸演算法。儘管這個演算法很簡單,但是當有成千上萬個特徵時,它還可以很好地工作,例如自然語言處理中的bag of words和n-grams。更復雜演算法的缺點是對許多特徵的過度擬合(資料集不夠大),而線性迴歸提供了良好的質量。但是,如果特徵冗餘,則不穩定。

如何選擇正確的機器學習演算法

線性迴歸

2-Logistic迴歸

不要將這些分類演算法與迴歸方法混淆。Logistic迴歸執行二元分類,因此標籤輸出是二進位制的。當輸出變數是分類時,我們也可以把邏輯迴歸看作是線性迴歸的一個特例,我們使用機率的對數作為因變數。邏輯迴歸採用特徵的線性組合並應用一個非線性函式(sigmoid),所以它是神經網路的一個小例項!

如何選擇正確的機器學習演算法

3-K-means

假設你有很多資料點(水果的測量值),你想把它們分成蘋果和梨兩組。K均值聚類是一種聚類演算法,用於自動將大組劃分為更小的組。

假設你有13個數據點,實際上是7個蘋果和6個梨,(但你不知道),你想把它們分成兩組。在這個例子中,我們假設所有的梨都比所有的蘋果大。您選擇兩個隨機資料點作為起始位置。然後,你把這些點和所有其他點進行比較,找出哪個與起始點最接近。這是您第一次嘗試聚類,這是最慢的部分。

你有你最初的組,但是因為你隨機選擇,這可能是不準確的。假設你有六個蘋果和一個梨在一組,一個蘋果和五個梨在另一組。所以,取一組所有點的平均值作為該組的新起點對另一組也做同樣的計算。然後再次進行聚類以獲得新的組。

你怎麼知道你做完了呢?你做平均值,然後再做一次分組,看看是否有任何點改變了分組。如果沒有,則完成了。否則,你需要再來。

如何選擇正確的機器學習演算法

4-KNN

K-最近鄰是分類演算法,是監督學習的子集。K-means是一種聚類演算法,它是無監督學習的一個子集。

如果我們有足球運動員的資料集(包含他們的位置和測量資料),我們想要在我們有測量但沒有位置的新資料集中為足球運動員分配位置,那麼我們可以使用K-最近鄰。

另一方面,如果我們有足球運動員的資料集,需要根據相似性分組為K個不同的組,我們可能會使用K-means。

在K-最近鄰中,K表示在確定新玩家位置時投票的鄰居的數量。檢查K = 5的示例。如果我們有一個新的足球運動員需要一個位置,我們將資料集中的五個足球運動員與最接近我們的新足球運動員的測量值進行對比,我們讓他們對我們應該分配新球員的位置進行投票。

在K-means中,K表示我們最終想要擁有的聚類數。如果K = 7,那麼在我的資料集上執行演算法後,我將擁有七個足球運動員聚類。

如何選擇正確的機器學習演算法

5-支援向

量機

SVM使用超平面(直線)來分隔兩個不同標記的點(X和O)。有時這些點不能被直接分開,所以它需要將它們對映到更高維的空間(使用核),在那裡它們可以被直接分開(超平面)。這看起來像原始空間上的曲線,實際上它在更高維度的空間中確實是一個直線!

如何選擇正確的機器學習演算法

6-隨機森林

假設我們想知道什麼時候投資寶潔,基於過去一個月的資料(如開盤價格、收盤價格、價格變化和成交量,假設有900個數據點),我們有三種選擇:買進,賣出和持有。

我們想要建立一個決策樹來決定最佳策略,例如,如果股票價格的變化比前一天高出10%,並且交易量很大,我們就購買這隻股票。我們不知道該使用哪些特徵,我們有很多特徵。

因此,我們採用隨機的一組度量和隨機抽樣的訓練集,並構建決策樹。然後我們使用不同的隨機測量集和每次隨機資料樣本多次進行相同的操作。最後,我們有許多決策樹,我們使用它們來預測價格,然後根據多數決定最終預測。

如何選擇正確的機器學習演算法

7-神經網路

神經網路是一種人工智慧。神經網路背後的基本思想是模擬計算機內部大量密集互連的腦細胞,使其能夠學習東西,識別模式,並以類似人的方式做出決策。關於神經網路的驚人之處在於,它不需要對其進行程式設計就可以明確地學習:它可以自己學習,就像大腦一樣!

一方面,神經網路有輸入,這可能是一張圖片,來自無人機的資料,或者圍棋棋盤的狀態。另一方面,還有神經網路想要做的輸出。在它們之間有節點和連線。連線的強度根據輸入決定需要什麼輸出。

如何選擇正確的機器學習演算法

Top