Кластерная оценка

В этом примере показано, как идентифицировать кластеры в ирисовых данных Фишера.

Загрузите ирисовый набор данных Фишера.

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

X числовая матрица, которая содержит два лепестковых измерения для 150 ирисовых диафрагм. Y массив ячеек из символьных векторов, который содержит соответствующие ирисовые разновидности.

Оцените несколько кластеров от 1 до 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: [1x10 double]
           OptimalK: 1

OptimalK значение указывает, что на основе критерия Calinski-Harabasz оптимальное количество кластеров равняется трем.

Визуализируйте eva видеть результаты для каждого количества кластеров.

plot(eva)

Для большинства кластеризирующихся алгоритмов нужны предварительные знания количества кластеров. Когда эта информация не будет доступна, используйте кластерные методы оценки, чтобы определить количество кластеров, существующих в данных на основе заданной метрики.

Три кластера сопоставимы с тремя разновидностями в данных.

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

Вычислите неотрицательный ранг два приближения данных в целях визуализации.

Xred = nnmf(X,2);

Исходные функции уменьшаются до двух функций. Поскольку ни одна из функций не отрицательна, nnmf также гарантии, что функции являются неотрицательными.

Подтвердите эти три кластера визуально с помощью графика рассеивания.

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

Смотрите также

|