cylab/php-roc

1.2.3 2021-09-26 12:10 UTC

This package is auto-updated.

Last update: 2024-09-26 18:45:48 UTC


README

pipeline status coverage report Packagist Version

PHP 库,用于计算接收者操作特征(ROC)和曲线下面积(AUC)。

source: https://en.wikipedia.org/wiki/Receiver_operating_characteristic

接收者操作特征曲线(ROC 曲线)是一种图形化图表,展示了当二分类器的判别阈值变化时,其诊断能力。ROC 曲线以假正率(误报)为X轴,以真正率(真检测)为Y轴进行绘制。它是确定机器学习中分类器效率的一个非常有用的工具。曲线下面积(AUC)是一种比较不同 ROC 曲线并确定最佳曲线的简单方法。AUC 值越接近 1,分类器越好。

安装

composer require cylab/php-roc

使用

值数组

namespace Cylab\ROC;

require __DIR__ . "/../vendor/autoload.php";

// for each value, we indicate if it is a true detection (true)
// or a false alarm (false)
$values = [];
$values[] = new SimpleValue(0.22568639331762, true);
$values[] = new SimpleValue(0.33365791865329, true);
$values[] = new SimpleValue(0.74073486204293, true);
$values[] = new SimpleValue(0.47706215198946, false);
$values[] = new SimpleValue(0.049798118439409, false);
$values[] = new SimpleValue(0.083663045933313, true);

$roc = ROC::fromValues($values);

// Get the Area Under the Curve (AUC)
echo "AUC : " . $roc->getAUC() . "\n";

// Inpect the points that draw the ROC
var_dump($roc->getPoints());

// Save ROC to png image
$roc->saveToPNG("/tmp/php-roc.png", 800, 600);

ROC 是由一个包含 `Value` 对象的数组构建的。一个 `Value` 包含一个分数(介于 0 和 1 之间)并指示这是一个真实警报(true)还是误报(false)。

一旦构建完成,你可以获取

  • 曲线下面积:`getAUC()`
  • 绘制 ROC 的点的坐标:`getPoints()`
  • 将 ROC 保存为 png 图片:`saveToPNG($filename, $width, $height)`

php-roc