如何為一個回歸問題找出最好的機器學習演算法?[機器學習 演算法 介紹]

如何為一個回歸問題找出最好的機器學習演算法?[機器學習 演算法 介紹]

如何為一個回歸問題找出最好的機器學習演算法?[機器學習 演算法 介紹]


資料來源: https://buzzorange.com/techorange/2018/08/21/machine-learing/?utm_source=TOLINEIMG_0821&utm_medium=to_0821_02


01.線性和多項式回歸

    優點:
        建模速度快,在模型結構不複雜並且數據較少的情況下很有用。
        線性回歸易於理解,在商業決策時很有價值。
    缺點:
        對非線性數據來說,多項式回歸在設計時有難度,因為在這種情況下必須瞭解數據結構和特徵變量之間的關係。
        綜上,遇到複雜數據時,這些模型的表現就不理想了。


02.回歸樹和隨機森林

    優點:
        對複雜、高度非線性的關係非常實用。它們通常能達到非常高的表現性能,比多項式回歸更好。
        易於使用理解。雖然最後的訓練模型會學會很多複雜的關係,但是訓練過程中的決策邊界易於理解。
    缺點:
        由於訓練決策樹的本質,它們更易於過度擬合。一個完整的決策樹模型會非常複雜,并包含很多不必要的結構。雖然有時通過“修剪”和與更大的隨機森林結合可以減輕這一狀況。
        利用更大的隨機森林,可以達到更好地效果,但同時會拖慢速度,需要更多內存。


03.神經網絡和深度學習

    優點:
        由於神經網絡有很多層(所以就有很多參數),同時是非線性的,它們能高效地對複雜的非線性關係進行建模。
        通常我們不用擔心神經網絡中的數據,它們在學習任何特徵向量關係時都很靈活。
        研究表明,單單增加神經網絡的訓練數據,不論是新數據還是對原始數據進行增強,都會提高網絡性能。
    缺點:
        由於模型的複雜性,它們不容易被理解。
        訓練時可能有難度,同時需要大量計算力、仔細地調參並且設置好學習速率。
        它們需要大量數據才能達到較高的性能,與其他機器學習相比,在小數據集上通常表現更優。


心得

    已知分類方法使用01或02,未知分類方法用03

4 thoughts on “如何為一個回歸問題找出最好的機器學習演算法?[機器學習 演算法 介紹]

  1. 機器學習必學10大演算法

    資料來源:https://mp.weixin.qq.com/s/PT2zu5Wm-_MxgRdC4DVWIQ

    1. 線性回歸: y=b1x+b0

    2. Logistic 回歸:它是二分類問題的首選方法

    3. 線性判別分析(LDA)

    4. 分類和回歸樹

    5. 樸素貝葉斯

    6. K 最近鄰演算法(KNN)

    7. 學習向量量化(LVQ)

    8. 支持向量機(SVM)

    9. 袋裝法和隨機森林

    10. Boosting 和 AdaBoost

  2. 演算法選擇參考

    https://www.itread01.com/content/1541334303.html

    之前翻譯過一些國外的文章,有一篇文章中給出了一個簡單的演算法選擇技巧:

    1. 首當其衝應該選擇的就是邏輯迴歸,如果它的效果不怎麼樣,那麼可以將它的結果作為基準來參考,在基礎上與其他演算法進行比較;

    2. 然後試試決策樹(隨機森林)看看是否可以大幅度提升你的模型效能。即便最後你並沒有把它當做為最終模型,你也可以使用隨機森林來移除噪聲變數,做特徵選擇;

    3. 如果特徵的數量和觀測樣本特別多,那麼當資源和時間充足時(這個前提很重要),使用SVM不失為一種選擇。

    通常情況下:【GBDT>=SVM>=RF>=Adaboost>=Other…】,現在深度學習很熱門,很多領域都用到,它是以神經網路為基礎的,目前我自己也在學習,只是理論知識不是很厚實,理解的不夠深,這裡就不做介紹了。

    演算法固然重要,但好的資料卻要優於好的演算法,設計優良特徵是大有裨益的。假如你有一個超大資料集,那麼無論你使用哪種演算法可能對分類效能都沒太大影響(此時就可以根據速度和易用性來進行抉擇)。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *