如何根據資料的分佈來選擇ML演算法? - Reddit

banq發表於2022-03-26

問題:根據基礎理論/資料分佈,何時使用決策樹而不是 SVM 或 KNN 更好?

答案:
1. xgboost在結構化資料和監督學習問題上很難被擊敗。
相對特徵規模不是問題,類不平衡不是問題,它可以處理空資料,而且由於決策樹的性質,它在非線性資料上表現得非常好。它缺乏線性迴歸的可解釋性,但透過SHAP值等技術,你仍然可以在模型或單一預測層面獲得特徵重要性。
 
2. 我認為模型架構更多的是取決於你要解決的問題和相關的約束。

如果我想要一些簡單或可解釋的東西,我可能會選擇一個決策樹。如果我想要一些高效能的分割,我可能會使用像UNet或MaskRCNN這樣的成熟方法。為什麼這些方法都能很好地工作,在文獻中都有簡潔的記錄。

最終,我認為選擇ML演算法的很大一部分要歸結為了解兩者的利弊,以及被建模的非線性函式的種類(也就是對基礎資料進行的假設,如果有的話)。例如,Naive Bayes或GDA都對你的資料做出不同的關鍵假設。
 
3. 所有的機器學習模型都會在特徵空間中建立超平面,選擇一個模型而不是其他模型的更好方法是瞭解這些超平面是如何被模型建立的,以及你的特徵在空間中是如何表示的(用一些 dimensonality reduction 技術進行視覺化,如 UMAP 或 t-SNE)。

相關文章