天天看點

機器學習如何進行算法選擇?

作者:superpenglife

我們将讨論如何選擇适合特定工作的正确機器算法所使用的基本技術。我還将介紹每個算法的概述。

下面的流程圖旨在為使用者提供一個大緻的指南,以解決關于在資料上嘗試哪些估計器的問題。

機器學習如何進行算法選擇?

圖檔中的流程是用來選擇合适的機器學習算法的一個指南。它從右上角的紅色“開始”節點開始,根據不同的問題和條件,分為四個部分:分類、聚類、回歸和降維。每個部分有不同的算法可供選擇,例如:

  • 分類部分包括SGD分類器、線性SVC、樸素貝葉斯、K近鄰分類器、SVC和內建分類器等。
  • 聚類部分包括K均值聚類、均值漂移、譜聚類、小批量K均值聚類、VBGMM等。
  • 回歸部分包括SGD回歸器、Lasso、彈性網絡、嶺回歸、SVR和內建回歸器等。
  • 降維部分包括PCA、LLE、Isomap等。

首先,檢查樣本數量是否超過50個。如果是,可以繼續;如果不是,需要收集更多資料以供機器學習算法使用。

接下來,确定模型類型,主要看我們是否需要進行分類。

如果答案是“是”,再進一步确認是否擁有已标注的資料。

如果有标注資料,那麼需要選擇适當的分類算法。

然後,由于分類算法有多種,需要更進一步地确定。

樣本數量是否超過100,000個?

如果答案是“是”,那麼推薦使用SGD分類器或者核近似方法。

SGD Classifier

随機梯度下降(SGD)是一種簡單而非常高效的方法,用于拟合線性分類器和回歸器,适用于凸損失函數,如(線性)支援向量機和邏輯回歸。

SGDClassifier實作了一個簡單的随機梯度下降學習過程,支援不同的損失函數和分類的懲罰。

下面是使用鉸鍊損失訓練的SGD分類器的決策邊界,相當于線性支援向量機。

機器學習如何進行算法選擇?

Linear SVM

支援向量機(SVM)是用于分類、回歸和異常值檢測的監督學習方法。

支援向量機的優勢包括:

  • 在高維空間中有效。
  • 在次元數大于樣本數的情況下仍然有效。
  • 使用決策函數中的訓練點子集(稱為支援向量),是以也具有記憶體效率。
  • 多功能:可以為決策函數指定不同的核函數。提供了常見的核函數,但也可以指定自定義核函數。

Naive Bayes

樸素貝葉斯方法是一組基于應用貝葉斯定理的監督學習算法,其“樸素”假設是在給定類變量的值的情況下,每對特征之間都有條件獨立性。

盡管其過于簡化的假設,樸素貝葉斯分類器在許多實際情況下表現良好,尤其是在文檔分類和垃圾郵件過濾等領域。它們隻需要少量的訓練資料來估計必要的參數。

與更複雜的方法相比,樸素貝葉斯學習器和分類器可以非常快速。類條件特征分布的解耦意味着每個分布可以獨立地估計為一維分布。這反過來有助于緩解由于次元災難而産生的問題。

另一方面,盡管樸素貝葉斯被認為是一個不錯的分類器,但它被認為是一個糟糕的估計器,是以從 predict_proba 得到的機率輸出不應被過于認真對待。

現在,如果我們沒有标注的資料,可以使用各種聚類方法,如K均值聚類,均值漂移,譜聚類等。

有關模型的更多細節,請參考scikit-learn。

機器學習如何進行算法選擇?
我是superpenglife,一個擁有十年經驗的Python、機器學習、深度學習、資料分析和大模型工程師。我的目标是為你提供關于各種清晰且實用的指南。
你的關注是對我最大的支援。

繼續閱讀