function initialiseCentroids(array $data, $k) { $dimensions = count($data[0]); $centroids = array(); $dimmax = array(); $dimmin = array(); foreach ($data as $document) { foreach ($document as $dim => $val) { if (!isset($dimmax[$dim]) || $val > $dimmax[$dim]) { $dimmax[$dim] = $val; } if (!isset($dimmin[$dim]) || $val < $dimmin[$dim]) { $dimmin[$dim] = $val; } } } for ($i = 0; $i < $k; $i++) { $centroids[$i] = initialiseCentroid($dimensions, $dimmax, $dimmin); } return $centroids; }
function initialiseCentroids($normalisedTfidf, $numClusters) { $centroids = array(); $tfidfmax = array(); $tfidfmin = array(); // Min and Max arrays will contain all dimentions (all terms) foreach ($normalisedTfidf as $docID => $value) { foreach ($value as $term => $tfidfValue) { if (!isset($tfidfmax[$term]) || $tfidfValue > $tfidfmax[$term]) { $tfidfmax[$term] = $tfidfValue; } if (!isset($tfidfmin[$term]) || $tfidfValue < $tfidfmin[$term]) { $tfidfmin[$term] = $tfidfValue; } } } // Randomly generate a centroid, do it 5 times for ($i = 0; $i < $numClusters; $i++) { $centroids[$i] = initialiseCentroid($tfidfmax, $tfidfmin); } // Return the centroids (array with index = cluster number -> tf-idf values) return $centroids; }
function inicializa_centroids(array $data, $k) { $dimensions = count($data[0]); $centroids = array(); $dimmax = array(); $dimmin = array(); foreach ($data as $document) { /* Achar um máximo e um mínimo em que a suposição das centroides possam estar */ foreach ($document as $dimension => $val) { /* Se variável max não existe ou se valor 'x' do primeiro array dentro de data é maior que max */ if (!isset($dimmax[$dimension]) || $val > $dimmax[$dimension]) { $dimmax[$dimension] = $val; } /* Se variável min não existe ou se valor 'x' do primeiro array dentro de data é menor que max */ if (!isset($dimmin[$dimension]) || $val < $dimmin[$dimension]) { $dimmin[$dimension] = $val; } } } for ($i = 0; $i < $k; $i++) { $centroids[$i] = initialiseCentroid($dimensions, $dimmax, $dimmin); } return $centroids; }