Main Content

Evaluación de clusters

En este ejemplo se muestra cómo identificar clusters en los datos Iris de Fisher.

Cargue el conjunto de datos Iris de Fisher.

load fisheriris
X = meas;
y = categorical(species);

X es una matriz numérica que contiene dos medidas de pétalos para 150 iris. Y es un arreglo de celdas de vectores de caracteres que contiene las correspondientes especies de iris.

Evalúe varios clusters de 1 a 10.

eva = evalclusters(X,'kmeans','CalinskiHarabasz','KList',1:10)
eva = 
  CalinskiHarabaszEvaluation with properties:

    NumObservations: 150
         InspectedK: [1 2 3 4 5 6 7 8 9 10]
    CriterionValues: [NaN 513.9245 561.6278 530.4871 456.1279 469.5068 449.6410 435.8182 413.3837 386.5571]
           OptimalK: 3


El valor OptimalK indica que, según el índice de Calinski-Harabasz, el número óptimo de clusters es tres.

Visualice eva para ver los resultados para cada número de clusters.

plot(eva)

La mayoría de algoritmos de formación de clusters necesita conocer previamente el número de clusters. Cuando esta información no está disponible, utilice técnicas de evaluación de clusters para determinar el número de clusters presente en los datos en función de una métrica específica.

Tres clusters es consistente con las tres especies de los datos.

categories(y)
ans = 3x1 cell
    {'setosa'    }
    {'versicolor'}
    {'virginica' }

Calcule una aproximación no negativa de rango dos de los datos a efectos de visualización.

Xred = nnmf(X,2);

Las características originales se reducen a dos características. Dado que ninguna de las características es negativa, nnmf también garantiza que las características sean no negativas.

Confirme visualmente los tres clusters con una gráfica de dispersión.

gscatter(Xred(:,1),Xred(:,2),y)
xlabel('Column 1')
ylabel('Column 2')
grid on

Consulte también

|