torian257x / ai-php-rubix-wrap
AI PHP 是 rubix ml 的封装
0.9.1.1
2021-08-11 04:22 UTC
Requires
- php: >=8.0
- rubix/ml: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9
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 表示它运行良好。对于分类特征如 cat
或 dog
,将返回 不同的报告
估计量 / 机器学习算法
RubixService::train()
将根据数据使用默认估计量(机器学习算法)。如果您想选择不同的估计量,我建议您在此处阅读
注意:在 Rubix 中,神经网络称为 Multilayer Perceptron,线性回归称为 Ridge。
默认情况下,它使用 K-d Neighbors 或 K-d Neighbors Regressor
RubixService::train()
还接受 转换器
详细来说,RubixService:train()
做以下操作:
- 对
$data
进行洗牌 - 用 70% 的
$data
训练 - 用 30% 的
$data
测试
您可以通过使用 train_part_size
参数来更改此行为,例如,如果您想用 80% 的数据训练,用 20% 的数据测试,您将执行 RubixService::train(... train_part_size: 0.8)
。