Есть два набора «метки» в этом участке:
один является «истинной» меткой набора данных Fisher радужной оболочки (species
переменными, которая содержит класс каждого экземпляра: setoas
, versicolor
, или virginica
). Обычно у вас не было бы данных в реальном наборе данных (ведь цель кластеризации состоит в том, чтобы обнаружить те группы внутри данных, которые вы не знаете заранее). Я просто использовал их здесь, чтобы понять, насколько эффективно кластеризация EM выполняется против истинной истины (точки разброса кодируются по цвету в соответствии с классом).
другой набор меток - это кластеры, которые мы нашли с использованием GMM. В основном я построил сетку из 50х50 точек 2D для охвата всего домена данных, затем я назначаю кластер каждой из этих точек, вычисляя заднюю вероятность и выбирая компонент с наивысшим вероятностью. Я показал эти кластеры в фоновом цвете. Как приятное следствие, мы видим границы дискриминантных решений между кластерами.
Вы можете увидеть, что скопление точек на левом отбился довольно красиво (и отлично соответствовал setosa
класс). В то время как точки на правой стороне сюжета были разделены на две части, соответствующие двум другим классам, хотя если бы вы были (например, «зеленые точки на неправильной стороне границы»), то был бы «ошибочный».
Как правило, в реальной обстановке вы не имели бы те фактические классы для сравнения, так что никоим образом не сказать, как «точный» ваш кластерный (существуют и другие показатели для clustering performance evaluation) ...
Пожалуйста, добавьте код, который вы пробовали до сих пор, чтобы мы могли помочь вам его улучшить! Добро пожаловать в SO! – darthbith
Возможно, вам стоит взглянуть на строку 'gscatter (data (:, 1), data (:, 2), species, clrDark)' в коде, который вы связали. И вы хотите заглянуть в аргумент 'species'. –