iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 26
0
AI & Data

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

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

前言

今天我們來做支持向量機的實作(文件)

資料準備

這次資料我們自己準備好帶有噪訊的資料,可直接複製貼上
https://ithelp.ithome.com.tw/upload/images/20191008/20091333p6qxjdcUtd.png
除了使用最小二乘法求解,是否還有其他辦法呢?其實有的,如MLP就是一個不錯的方式。

資料準備

這次資料我們自己準備好帶有噪訊的資料,可直接複製貼上

Sample target
0.10 0.10
0.20 0.20
0.30 0.30
0.40 0.39
0.50 0.48
0.60 0.56
0.70 0.64
0.80 0.72
0.90 0.78
1.00 0.84
1.10 0.89
1.20 0.93
1.30 0.96
1.40 0.99
1.50 1.00
1.60 1.00
1.70 0.99
1.80 0.97
1.90 0.95
2.00 0.91
2.10 0.86
2.20 0.81
2.30 0.75
2.40 0.68

支持向量機迴歸

Train

我們用非線性的方式來求解(為了不要擬合出一條線)

$regression = new SVR();

接下來我們就直接訓練支持向量機。

use Phpml\Regression\SVR;
use Phpml\SupportVectorMachine\Kernel;
$samples = [[60], [61], [62], [63], [65]];
$targets = [3.1, 3.6, 3.8, 4, 4.1];
$regression = new SVR(); 
$regression->train($samples, $targets);

predict

預測成果,可以評估看看他們與真實數值大差別。

$regression->predict([64])

結語

除了KNN﹑K-means﹑MLP分類外,也學了LeasetSquare與regression迴歸,接下來我們就做更加精細的操作,分享一些可以讓機器學習成果比較好的小技巧與這個文件有的內容。


上一篇
[2020鐵人賽Day25]邂逅PHP Machine Learning-非線性預測(支持向量機)
下一篇
[2020鐵人賽Day27]邂逅PHP Machine Learning-pipline
系列文
學習PHP Machine Learning的冒險歷程30

尚未有邦友留言

立即登入留言