medansoftware / kmeans-algorithm-php
v1.0.0
2020-07-31 21:35 UTC
Requires
- php: >=5.5
This package is auto-updated.
Last update: 2024-10-13 16:25:13 UTC
README
Installation via composer
composer require medansoftware/kmeans-algorithm-php
How to use
Example 1 Video Refrence
$Kmeans = new \Algorithm\Kmeans; $Kmeans->setAttributes(array( 'A', 'B' )); $Kmeans->setDataFromArgs(1, 1); // "First Argument" assign to "First Attribute" and "Second Argument" assign to "Second Attribute" etc. $Kmeans->setDataFromArgs(2, 1); $Kmeans->setDataFromArgs(4, 3); $Kmeans->setDataFromArgs(5, 4); $Kmeans->setClusterCount(2); // Set amount of cluster $Kmeans->setCentroid(0, 1); // Choose centroid from array key or left blank will auto fill // Looping for iteration $i = 1; for (; ; ) { $Kmeans->setIteration($i); $Kmeans->run(); if ($Kmeans->isDone()) { echo "<pre>"; print_r ($Kmeans->getCentroid()); echo "</pre>"; echo 'Iteration ended on : '.$Kmeans->countIterations(); echo "<pre>"; print_r ($Kmeans->getAllResults()); echo "</pre>"; break; } $i++; }
Example 2 Video Refrence
$Kmeans = new \Algorithm\Kmeans; $Kmeans->setAttributes(array( 'x' )); $Kmeans->setDataFromArgs(1); $Kmeans->setDataFromArgs(2); $Kmeans->setDataFromArgs(6); $Kmeans->setDataFromArgs(7); $Kmeans->setDataFromArgs(8); $Kmeans->setDataFromArgs(10); $Kmeans->setDataFromArgs(15); $Kmeans->setDataFromArgs(17); $Kmeans->setDataFromArgs(20); $Kmeans->setClusterCount(3); // Set amount of cluster $Kmeans->setCentroid(1, 5, 7); // Choose centroid from array key or left blank will auto fill // Looping for iteration $i = 1; for (; ; ) { $Kmeans->setIteration($i); $Kmeans->run(); if ($Kmeans->isDone()) { echo "<pre>"; print_r ($Kmeans->getCentroid()); echo "</pre>"; echo 'Iteration ended on : '.$Kmeans->countIterations(); echo "<pre>"; print_r ($Kmeans->catchLogs()); echo "</pre>"; break; } $i++; }
Langkah-langkah & Catatan :
- Hitung jumlah data.
- Tentukan jumlah "K" atau cluster (tidak boleh lebih dari jumlah data).
- Pilih titik secara acak sebanyak "K", dimana titik ini akan menjadi pusat (centroid) dari masing-masing kelompok (clusters).
- Hitung jarak dan alokasikan masing-masing data ke centroid atau rata-rata terdekat.
- Tentukan centroid baru / rata-rata yang ada di masing-masing cluster.
- Kembali ke step 3, apabila masih ada data yang berpindah cluster atau ada perubahan nilai centroid atau jika tidak ada perubahan maka hentikan proses clustering.
Refrence :
ETH : 0x251b36840557cCe9A245f07E1b834bCfb7354FDb
DOGE : DFmES6KZLQXimXduXwKmooykMsjhWmT1tU
BITCOIN : 1MEqUeg7fXTkBMFWfJZE9yJREsKZ4SUxQM
BITCOIN CASH : qzrllcyrjwvpnuur5kpeyp03p246fzsgzvhleswr6f
Social Media :
Made with ❤️ + ☕ ~ Agung Dirgantara