基於PHP-ML庫實現機器學習php
基於語言學習,根據語言編碼實現學習
require_once 'vendor/autoload.php';git
use Phpml\Classification\SVC; use Phpml\SupportVectorMachine\Kernel; /* 在模式識別領域中,最近鄰居法(k-Nearest Neighbors algorithm,KNN算法,又譯K-近鄰算法)是一種用於分類和迴歸的非參數統計方法。 k-NN分類 輸入:包含特徵空間中的 k 個最接近的訓練樣本。 輸出:一個分類族羣。 k-NN迴歸 輸入:包含特徵空間中的 k 個最接近的訓練樣本。 輸出:該對象的屬性值。該值是其 k 個最近鄰居的值的平均值。 */ use Phpml\Classification\KNearestNeighbors; /* 基於應用貝葉斯定理(naive)強勁的獨立假設之間的特性 */ use Phpml\Classification\NaiveBayes; /* 說一個班級裏面有三個男生(男生一、男生2,男生3),三個女生(女生一、女生2,女生3),其中 男生1 身高:176cm 體重:70kg; 男生2 身高:180cm 體重:80kg; 男生2 身高:186cm 體重:86kg; 女生1 身高:161cm 體重:45kg; 女生2 身高:163cm 體重:47kg; 女生3 身高:165cm 體重:49kg; 若是咱們將男生定義爲1,女生定義爲-1(這裏定義數值無所謂,你能夠定義男生8,女生6,只要是數值就行) */ /*將上面的數據放入$samples數組裏 */ $samples = [[176, 70], [180, 80], [161, 45], [163, 47], [186, 86], [165, 49]]; /* 在labels中存入男女生類別標籤(一、-1) */ $labels = [1, 1, -1, -1, 1, -1]; /* 咱們如今採用libsvm來支持分類 下面咱們採用線性分類 */ $classifier = new SVC(Kernel::LINEAR, $cost = 1000); /* 對其進行訓練 */ $classifier->train($samples, $labels); /* 下面咱們採用近鄰算法來實現機器學習分類 */ $classifier = new KNearestNeighbors(); $classifier->train($samples, $labels); /* 下面咱們採用貝葉斯來分類器實現機器學習分類 */ $classifier = new NaiveBayes(); $classifier->train($samples, $labels); /* 預測 */ echo $classifier->predict([190, 85]); // return 1 表明男生 print_r($classifier->predict([[152, 44], [176, 78]])); // return [-1, 1] 表明女生、男生 exit;
require_once 'vendor/autoload.php'; use Phpml\Association\Apriori; /* 一個電商網站 統計6位用戶購買習慣 A用戶喜歡購買 衣服,鞋子, 辣條 B用戶喜歡購買 辣條, 麪條, 席子 C用戶喜歡購買 衣服,席子, 麪條 D用戶喜歡購買 衣服,麪條,鞋子 E用戶喜歡購買 衣服, 麪條, 辣條 F用戶喜歡購買 衣服, 鞋子, 辣條 */ /*將上面的數據放入$samples數組裏 */ $samples = [['衣服', '鞋子', '辣條'], ['辣條', '麪條', '席子'], ['衣服','席子', '麪條'], ['衣服','麪條','鞋子'],['衣服', '麪條', '辣條'],['衣服', '鞋子', '辣條']]; $labels = []; /* 參數 support支持度 confidence 自信度 */ $associator = new Apriori($support = 0.5, $confidence = 0.5); /* 對其進行訓練 */ $associator->train($samples, $labels); /* 假設又有一位G用戶,他購買了衣服, 電商網站想要經過他購買的衣服給她推薦別的產品 以便他購買更多的商品 系統會根據以往用戶的訓練數據推斷出G用戶可能須要的商品 */ print_r($associator->predict(['衣服'])); //return Array ( [0] => Array ( [0] => 鞋子 ) [1] => Array ( [0] => 辣條 ) [2] => Array ( [0] => 麪條 ) ) /* 總結:這種算法根據一些行爲來推斷下一個行爲 */
github:https://github.com/qieangel2013/phpml 碼雲:https://gitee.com/qieangel2013/phpml