iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 25
1
AI & Data

學習PHP Machine Learning的冒險歷程系列 第 25

[2020鐵人賽Day25]邂逅PHP Machine Learning-非線性預測(支持向量機)

前言

如果遇到非線性的函數,如 y = ax^2+bx+c了時候該如何是好呢?
https://ithelp.ithome.com.tw/upload/images/20191009/20091333semTFWIJgb.png
除了使用最小二乘法求解,是否還有其他辦法呢?其實有的,如MLP就是一個不錯的方式。

支持向量機

我們先看一個影片SVM with polynomial kernel visualization

我們可以知道SVM是將原本在一個2維度的分布,對二維的圖形敲一下(用力敲),他們就會跳起來。然後用你明察秋毫的雙眼切一刀,這樣就能將資料分成兩類,但是在平面上是一個圓。

[資料分析&機器學習] 第3.4講:支援向量機(Support Vector Machine)介紹
機器學習-支撐向量機(support vector machine, SVM)詳細推導

參數解釋

我們看一下PHP-ML SVR可以調整的參數。

  • $kernel (int) - 核的型態,可以有線性與非線性(默認為Kernel::RBF)
  • $degree (int) - kernel的大小(默認為3)
  • $epsilon (float) - 損失函數的epsilon(默認為0.1)
  • $cost (float) - C-SVM 中的 C(默認為1.0)
  • $gamma (float) - kernel的參數(如果gamma為'null',則將使用1 / features)
  • $coef0 (float) - 獨立參數(默認為0.0)
  • $tolerance (float) - 終止公差(默認為0.001)
  • $cacheSize (int) - 可以用記憶體量(默認為100)
  • $shrinking (bool) - 是否使用 shrinking heuristics(默認為true)

結語

接下來進入實作的環節,我們來測試支持量量機是否可以做出非線性迴歸。


上一篇
[2020鐵人賽Day24]邂逅PHP Machine Learning-最小二乘法-實作
下一篇
[2020鐵人賽Day26]邂逅PHP Machine Learning-非線性預測(支持向量機)-實作
系列文
學習PHP Machine Learning的冒險歷程30

尚未有邦友留言

立即登入留言