iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 27
0
AI & Data

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

[2020鐵人賽Day27]邂逅PHP Machine Learning-pipline

前言

俗話說的好,準確度不夠,資料前處理來湊,每一種分類的模型或演算法都有其特殊的優缺點,有些訓練很快但是預測很慢。因此我們可以一些技巧來讓機器學習的準確度與速度上升達到1+1大於二的效果,也就是pipline,把前處理整合到模型當中。

pipline就是串接前處理與機器學習的模型,因此可以作出一套end-to-end了模型訓練,適合用於解決一個系統性的問題。

實作

請參考文件,我們先前處理(Normalizer)然後再作NN,我們把他們結合再一起。

use Phpml\Classification\SVC; use Phpml\Pipeline; 
use Phpml\Preprocessing\Imputer; 
use Phpml\Preprocessing\Normalizer; 
use Phpml\Preprocessing\Imputer\Strategy\MostFrequentStrategy;

$transformers = [ new Normalizer()]; 
$estimator = new SVC(); $samples = [ [1, -1, 2], [2, 0, null], [null, 1, -1], ];
$targets = [ 4, 1, 4, ];
$pipeline = new Pipeline($transformers, $estimator);  // 將正規化與SVR串接。
$pipeline->train($samples, $targets); 
$predicted = $pipeline->predict([[0, 0, 0]]);

結語

不要小看只是前處理與機器學習整合,整合在一起後,如果一直需要執行,省下的時間非常可觀,尤其如果前處理跟機器學習間有人工部分。


上一篇
[2020鐵人賽Day26]邂逅PHP Machine Learning-非線性預測(支持向量機)-實作
下一篇
[2020鐵人賽Day28]邂逅PHP Machine Learning-儲存模型
系列文
學習PHP Machine Learning的冒險歷程30

尚未有邦友留言

立即登入留言