今天我們來做支持向量機的實作(文件)
這次資料我們自己準備好帶有噪訊的資料,可直接複製貼上
除了使用最小二乘法求解,是否還有其他辦法呢?其實有的,如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 |
我們用非線性的方式來求解(為了不要擬合出一條線)
$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);
預測成果,可以評估看看他們與真實數值大差別。
$regression->predict([64])
除了KNN﹑K-means﹑MLP分類外,也學了LeasetSquare與regression迴歸,接下來我們就做更加精細的操作,分享一些可以讓機器學習成果比較好的小技巧與這個文件有的內容。