torian257x/ai-php-rubix-wrap

AI PHP 是 rubix ml 的封装

0.9.1.1 2021-08-11 04:22 UTC

This package is auto-updated.

Last update: 2024-10-01 00:08:06 UTC


README

一个包装器,用于使 Rubix ML 非常易于使用

示例

    $report = RubixService::train($data, 'column_with_label');

其中 column_with_label 是包含你想要预测的值的多元数组的键 $data 的键。

让我们看一个简单的例子

$apartment_data = [
        ['space_m2' =>  10, 'price' => 100],
        ['space_m2' =>  20, 'price' => 200],
        ['space_m2' =>  30, 'price' => 300],
        ['space_m2' =>  40, 'price' => 400],
        //...
        ['space_m2' => 280, 'price' => 2800],
        ['space_m2' => 290, 'price' => 2900],
        ['space_m2' => 300, 'price' => 3000],
];

$report = RubixService::train($apartment_data, 'price');

var_export($report);

/* 
  array (
    'mean absolute error' => 68.88888888888889,
    ...
    'r squared' => 0.9796739130434783,
    ...
  )
*/ 

$prediction = RubixService::predict(['space_m2' => 250]);
//$prediciton ~2440
    

在此查看上述代码的完整示例

报告 / 错误 / 准确率

平均绝对误差基本上是平均可以预期的实际误差。因此,如果您根据空间尝试预测公寓,平均会偏离68.88美元

另一方面,r squared 给出了算法好坏的更多感觉,以百分比表示。高 r squared 表示它运行良好。对于分类特征如 catdog,将返回 不同的报告

估计量 / 机器学习算法

RubixService::train() 将根据数据使用默认估计量(机器学习算法)。如果您想选择不同的估计量,我建议您在此处阅读

rubix ml 选择估计量

注意:在 Rubix 中,神经网络称为 Multilayer Perceptron,线性回归称为 Ridge

默认情况下,它使用 K-d NeighborsK-d Neighbors Regressor

RubixService::train() 还接受 转换器

详细来说,RubixService:train() 做以下操作:

  1. $data 进行洗牌
  2. 用 70% 的 $data 训练
  3. 用 30% 的 $data 测试

您可以通过使用 train_part_size 参数来更改此行为,例如,如果您想用 80% 的数据训练,用 20% 的数据测试,您将执行 RubixService::train(... train_part_size: 0.8)