Categorías
Machine learning

Agrupación en clústeres de K-medias en Java

Esta publicación muestra cómo ejecutar el algoritmo de agrupación en clústeres k-means en Java usando Weka.

Primero, descargue el archivo weka.jar aquí.

Cuando está descomprimido, tiene archivos como este:

Agregue el archivo weka.jar a la ruta de construcción de su proyecto y luego eche un vistazo al archivo .arff en el directorio de datos. Al leer uno o dos de ellos, debería poder ver qué tipo de formato toma Weka como entrada.

En segundo lugar, prepare sus datos correctamente y use el siguiente código para ejecutar el algoritmo de agrupación en clústeres de k-means. La salida es la instancia y su grupo correspondiente.

package greenblocks.statistics;
 
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
 
import weka.clusterers.SimpleKMeans;
import weka.core.Instances;
 
public class Cluster {
 
	public static BufferedReader readDataFile(String filename) {
		BufferedReader inputReader = null;
 
		try {
			inputReader = new BufferedReader(new FileReader(filename));
		} catch (FileNotFoundException ex) {
			System.err.println("File not found: " + filename);
		}
 
		return inputReader;
	}
 
	public static void main(String[] args) throws Exception {
		SimpleKMeans kmeans = new SimpleKMeans();
 
		kmeans.setSeed(10);
 
		//important parameter to set: preserver order, number of cluster.
		kmeans.setPreserveInstancesOrder(true);
		kmeans.setNumClusters(5);
 
		BufferedReader datafile = readDataFile("C:/Users/ryan/workspace/data.arff"); 
		Instances data = new Instances(datafile);
 
 
		kmeans.buildClusterer(data);
 
		// This array returns the cluster number (starting with 0) for each instance
		// The array has as many elements as the number of instances
		int[] assignments = kmeans.getAssignments();
 
		int i=0;
		for(int clusterNum : assignments) {
		    System.out.printf("Instance %d -> Cluster %d n", i, clusterNum);
		    i++;
		}
	}
}
  ¿Qué es el aprendizaje automático?

Producción:

Instance 0 -> Cluster 4 
Instance 1 -> Cluster 0 
Instance 2 -> Cluster 2 
Instance 3 -> Cluster 4 
Instance 4 -> Cluster 0 
Instance 5 -> Cluster 3 
Instance 6 -> Cluster 1 
Instance 7 -> Cluster 3 
Instance 8 -> Cluster 4 
...

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *