medansoftware/kmeans-algorithm-php

v1.0.0 2020-07-31 21:35 UTC

This package is auto-updated.

Last update: 2024-05-13 15:29:02 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 :

  1. Hitung jumlah data.
  2. Tentukan jumlah "K" atau cluster (tidak boleh lebih dari jumlah data).
  3. Pilih titik secara acak sebanyak "K", dimana titik ini akan menjadi pusat (centroid) dari masing-masing kelompok (clusters).
  4. Hitung jarak dan alokasikan masing-masing data ke centroid atau rata-rata terdekat.
  5. Tentukan centroid baru / rata-rata yang ada di masing-masing cluster.
  6. 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 :

68747470733a2f2f63646e2d696d616765732d312e6d656469756d2e636f6d2f6d61782f3733382f312a47393575796f6b4148344a433550707678344c6d6f514032782e706e67

PATREON

PAYPAL

ETH : 0x251b36840557cCe9A245f07E1b834bCfb7354FDb

DOGE : DFmES6KZLQXimXduXwKmooykMsjhWmT1tU

BITCOIN : 1MEqUeg7fXTkBMFWfJZE9yJREsKZ4SUxQM

BITCOIN CASH : qzrllcyrjwvpnuur5kpeyp03p246fzsgzvhleswr6f

Social Media :

68747470733a2f2f7374617469632e78782e666263646e2e6e65742f727372632e7068702f796f2f722f69526d7a396c434d4244322e69636f 68747470733a2f2f7777772e696e7374616772616d2e636f6d2f7374617469632f696d616765732f69636f2f66617669636f6e2e69636f2f3336623365653264393165642e69636f 68747470733a2f2f7765622e74656c656772616d2e6f72672f66617669636f6e2e69636f 68747470733a2f2f7374617469632e77686174736170702e6e65742f727372632e7068702f76332f79502f722f72595a71504342614737302e706e67 68747470733a2f2f732e7974696d672e636f6d2f7974732f696d672f66617669636f6e5f34382d76666c566a425f516b2e706e67

Made with ❤️ + ☕ ~ Agung Dirgantara