jacobemerick/kmeans

PHP 实现的 k-means 聚类算法

1.0.0 2014-07-31 00:59 UTC

This package is not auto-updated.

Last update: 2024-09-24 06:50:57 UTC


README

这个小巧的类可以使用 PHP 对一组观测值计算 k-means。k-means 是一种将数据根据相关性聚类到组中的方法,例如将地理数据(使用纬度/经度)聚类成一个可消化的摘要。它在检测大型数据集中的模式时很有用。

用法

假设你想聚类一个数据集。数据必须是一个多维数组,每个值都是数值,尽管每行的尺寸没有限制(n 维空间)。

$array = [
    [1, 1, 3],
    [3, 7, 6],
    [5, 8, 3],
    [1, 2, 1],
    [9, 10, 8],
    [4, 4, 4],
];

通过观察,你可能怀疑这些数据可以被聚类成 3 个不同的集合。为了测试,运行这个类。

$kmeans = new Jacobemerick\KMeans\Kmeans($array);
$kmeans->cluster(3); // cluster into three sets

$clustered_data = $kmeans->getClusteredData();
// $clustered_data = [
//     [[1, 1, 3], [1, 2, 1]],
//     [[3, 5, 6], [5, 4, 3], [4, 4, 4]],
//     [[9, 10, 8]],
// ];

$centroids = $kmeans->getCentroids();
// $centroids = [
//     [1, 1.5, 2],
//     [4, 4.33, 4.33],
//     [9, 10, 8],
// ];

注意:更大的数据集将更一致——如果你多次运行此示例,结果可能会有所不同。

安装

通过 Composer

$ composer require jacobemerick/kmeans:~1.0