hyncica / php8-ml

PHP-ML - PHP的机器学习库

v0.9.0 2021-07-26 17:11 UTC

This package is auto-updated.

Last update: 2024-09-27 14:19:17 UTC


README

logo

</a>

这是PHP-ML库(https://gitlab.com/php-ai/php-ml)的移植版本,使其能够在PHP 8上运行。原始库由Arkadiusz Kondas (@ArkadiuszKondas)创建。

此移植由Michal Hynčica创建。

移植注意事项

移植过程中完成

  • 修复了在创建Phpml\Classification\Ensemble\Bagging时创建Phpml\Classification\DecisionTree实例的错误
  • SetTest::testToArray()中修复了预期结果,以反映PHP 8中引入的稳定排序
  • composer.json中所需的phpbench/phpbench版本已更改为^1.0.0,以便可以在PHP 8上安装。目前phpbench不可用。它的配置需要更多工作。
  • 所需的symplify/easy-coding-standards版本已提高到^9.4。已将配置转换为较新版本。

失败的测试

当前的测试DecisionStumpTest::testPredictSingleSample失败。这是由于PHP 8中引入了稳定排序。问题在于Phpml\Classification\Classifier\OneVsRest::predictSample方法。对于非二值决策树,此方法为所有分类器获取概率。它使用arsort()对标签按其概率进行排序,然后返回第一个标签作为最可能的输出。

在测试用例中,概率如下所示

[
   '0' => 0.0,
   '1' => 1.0,
   '2' => 1.0,
];

在引入稳定排序之前,具有相同值的元素的顺序没有明确定义,并且由于某种幸运,逆排序数组看起来像这样

[
   '2' => 1.0,
   '1' => 1.0,
   '0' => 0.0,
];

但是,随着稳定排序的引入,逆排序数组看起来像这样

[
   '1' => 1.0,
   '2' => 1.0,
   '0' => 0.0,
];

这就是结果与测试中预期的不同的原因。

安装

目前此库正在开发过程中,但您可以使用Composer安装它

composer require hyncica/php8-ml

其余内容为原始README.md文件的内容。

PHP-ML需要PHP >= 7.2。

简单的分类示例

require_once __DIR__ . '/vendor/autoload.php';

use Phpml\Classification\KNearestNeighbors;

$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];
$labels = ['a', 'a', 'a', 'b', 'b', 'b'];

$classifier = new KNearestNeighbors();
$classifier->train($samples, $labels);

echo $classifier->predict([3, 2]);
// return 'b'

奖项

文档

要了解如何使用PHP-ML,请参阅文档

示例

示例脚本可在单独的存储库中找到 php-ai/php-ml-examples

数据集

公共数据集可在单独的存储库中找到 php-ai/php-ml-datasets

功能

贡献

更多关于贡献的信息,请参阅 CONTRIBUTING.md

许可协议

PHP-ML 在 MIT 许可协议下发布。有关详细信息,请参阅捆绑的 LICENSE 文件。

作者

Arkadiusz Kondas (@ArkadiuszKondas)