基於PHP-ML庫實現機器學習

phpml

基於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
相關文章
相關標籤/搜索