[英]Recommendation Engine with PHP-ML and regression
當我想向當前客戶推薦一些項目時,我會嘗試找出如何使用PHP-ML 。
我的數據集(編號只是行數):
作為客戶,我在過去購買了產品 1。所以通常我會在我的推薦框中期望產品 2,因為 3 個人與產品 1 一起購買了它。
我想我在這里需要一些回歸算法,它給我產品 X 和產品 Y 之間的一些相關值。
我想過線性 SVR 算法,但我不知道如何訓練它?
// Step 1: Load the Dataset
// Step 2: Prepare the Dataset
// Step 3: Generate the training/testing Dataset
$samples = [[1,2], [1,2], [1,3], [1,2], [2,4], [X,Y..]];
$targets = [?, ?, ? , ? , ? , ?];
$regression = new LeastSquares();
// Step 4: Train the classifier
$regression->train($samples, $targets);
echo $regression->predict([1,2]);
在我看來,我應該得到一些價值,例如 0.25 -> 25% 購買產品 1 的客戶也購買了產品 2。然后我可以訂購我的預測並將訂單放入我的推薦框中。 我的主要問題是,我應該用什么火車? 我是否理解完全錯誤?
謝謝
首先,這里不需要線性回歸,如果需要, 則必須轉換分類數據才能進行數字預測。 通常您會使用虛擬變量,這意味着您的表將從以下內容轉換:
| Product A | Product B |
|-----------|-----------|
| 1 | 2 |
| 1 | 2 |
| 1 | 3 |
| 1 | 2 |
| 2 | 4 |
類似於:
| Product 1 | Product 2 | Product 3 | Product 4 |
|------------|-----------|-----------|-----------|
| 1 | 1 | 0 | 0 |
| 1 | 1 | 0 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
| 0 | 1 | 0 | 1 |
有關更多信息,請參閱https://datascience.stackexchange.com/questions/28306/transform-categorical-variables-into-numerical 。 遺憾的是,我認為 PHP-ML 目前不支持分類數據編碼。 如果你不轉換分類數據,你可能會得到 1.6 作為預測,這並不意味着任何有用的東西。
但是在 PHP-ML 中有一種更簡單的方法可以做到這一點。 您可以使用 Apriori 關聯器。 這可以了解哪些關聯更頻繁並預測它們。 在下面你可以看到它的作用。
use Phpml\Association\Apriori;
$samples = [[1,2], [1,2], [1,3], [1,2], [2,4]];
$labels = [];
$associator = new Apriori($support = 0.5, $confidence = 0.5);
$associator->train($samples, $labels);
var_export($associator->predict([1]));
// outputs [[ 2 ]]; The right prediction!
此外,在使用機器學習時,將數據拆分為所謂的訓練集和測試集很有用。 這樣你就可以直接測試你的機器學習模型。 它也是在 PHP-ML 中實現的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.