1. 程式人生 > >Kaggle Machine Learning 教程學習(五)

Kaggle Machine Learning 教程學習(五)

rfi 方法 目標 然而 發生 googl gin learn bag

 四、算法選擇

  這一步驟讓我很興奮,終於談到算法了,雖然沒代碼、沒公式。因為教程君表示並不想過深的去探討算法細節,於是著重於從算法的應用場景、算法的缺點、如何選擇算法來縱向展開。

  我們的訓練模型一般分為監督學習、無監督學習以及強化學習三種。教程中只提到了前兩種,而訓練算法又分為回歸、分類以及聚類。其中回歸與分類屬於監督學習分,聚類屬於無監督學習。

  教程中提到的適用於監督學習下的擬合算法:

    線性回歸(Linear regression)、

    套索回歸(Lasso regression)、

    嶺回歸(Ridge regression)、

    彈性網絡正則化(Elastic net regularization)、

    p.s.邏輯回歸(Logistic regression)。

  以及集成學習(Ensemble Learning)算法:

    集成算法是將多個分類器集成起來而形成的新的分類算法。又稱元算法(meta-algorithm)。

    回歸樹(Regression Tree)、分類樹(Classification Tree),統稱CART。回歸樹是回歸模型下的算法,分類樹分類模型下的算法,它們都是一種決策樹(Decision trees)。

    當集成模型是決策樹時,一般有兩種集成學習算法:隨機森林(Random Forest)、梯度增強樹(Gradient Boosted Tree)。

  1.回歸

    線性回歸使用最普遍的方法就是最小二乘法(Least Squares),最小二乘法的目標函數:

$$ min_{\omega}\space\space\space\Vert X_{\omega} - y \Vert_{2}^{2} $$

    雖然最小二乘是最常用的分析方法,然而,它有兩個缺點:過擬合(overfitting)與不容易表達非線性(即離散)關系。

      (1)如何防止過擬合?比較好的方法就是對其加入正則化(regularization),其中常見的優化算法:索套回歸(最小二乘法 + L1範數正則項(1階範數))、嶺回歸(最小二乘法 + L2範數正則項(2階範數))、彈性網正則化(L1 + L2範數正則項)。其中L1,L2範數正則項的系數叫做懲罰因子(penalty term)。

        Lasso的目標函數:

$$ min_{\omega}\space\space\space\frac{1}{2n}\Vert X_{\omega} - y \Vert_{2}^{2} + \alpha\Vert\omega\Vert_{1} $$

$$ 其中 \alpha 是常數(即懲罰系數),\Vert\omega\Vert_{1} 是L_{1}範數 $$。

        Ridge適用於訓練模型發生過擬合、虛擬變量陷阱(第四篇提到過)等情況,Ridge的最小化目標函數:

$$ min_{\omega}\space\space\space\Vert X_{\omega} - y \Vert_{2}^{2} + \alpha\Vert\omega\Vert_{2}^{2} $$

$$ 這裏 \alpha \geq 0 。 $$

         Elastic-net的目標函數:

$$ min_{\omega}\space\space\space\frac{1}{2n}\Vert X_{\omega} - y \Vert_{2}^{2} + \alpha\rho\Vert\omega\Vert_{1} + \frac{\alpha(1 - \rho)}{2}\Vert\omega\Vert_{2}^{2} $$

  2.分類

    邏輯回歸(Logistic regression),邏輯回歸是線性回歸的分類任務下對應的算法。

      L2範數-Logistic regression模型:

$$ min_{\omega,c}\space\space\space\frac{1}{2}\omega^{T}\omega + C\sum_{i=1}^{n}log(e^{-y_{i}(X_{i}^{T}\omega + c)} + 1) $$

      L1範數-Logistic regression模型:

$$ min_{\omega,c}\space\space\space\Vert\omega\Vert_{1} + C\sum_{i=1}^{n}log(e^{-y_{i}(X_{i}^{T}\omega + c)} + 1) $$

  3.集成學習

    1.隨機森林是基於Bagging思想的集成學習算法;

    2.梯度增強樹是基於Boosting思想的集成學習算法。

  參考資料

    一些名詞概念參考資料:

https://www.zhihu.com/question/23194489

https://www.zhihu.com/question/269063159

https://www.zhihu.com/question/28221429

https://www.zhihu.com/question/20473040

https://elitedatascience.com/algorithm-selection

    擬合算法及公式參考:

http://scikit-learn.org/stable/modules/linear_model.html

https://en.wikipedia.org/wiki/Lasso_(statistics)

https://en.wikipedia.org/wiki/Tikhonov_regularization

    關於兩種集成學習思想的一些解釋參考:

https://www.zhihu.com/question/29036379

https://www.bbsmax.com/A/lk5axwNJ1O/

https://blog.csdn.net/autoliuweijie/article/details/50285817

https://blog.csdn.net/google19890102/article/details/46507387

http://scikit-learn.org/stable/modules/ensemble.html#classification

Kaggle Machine Learning 教程學習(五)