Реализация кодирования K-средних - PullRequest
1 голос
/ 30 октября 2011

Я ищу реализацию k-средних, которая будет принадлежать каждой строке данных.

Я нашел другие ссылки, такие как Matlab: K-означает кластеризацию Но они не помогают.

Так что я ищу что-то вроде этого. Если мои данные следующие

1, 2, 4, 5, 6, 7, 8, 9
1, 4, 7, 8, 9, 4, 5, 6

Я хотел бы знать, что строка 1 принадлежит кластеру A, а строка 2 принадлежит кластеру B и так далее.

Кто-нибудь знает, может ли Матлаб показать мне это, если да, то как? Если нет, то есть ли у кого-нибудь ссылка на какой-нибудь код, который сможет это сделать?

1 Ответ

4 голосов
/ 31 октября 2011

Да, команда kmeans из Statistics Toolbox сделает это.Вот пример, использующий набор данных Fisher Iris, который входит в комплект инструментов.meas представляет собой набор данных 100x4 из четырех анатомических переменных (длина лепестка, ширина лепестка, длина чашелистика, ширина чашелистика), измеренных на 150 радужных оболочках.Выходная переменная, которую я здесь назвал clusterIndex, сообщает вам, в какой кластер попадает каждая строка набора данных, и может использоваться, например, как переменная для цветовых точек на графике.

>> load fisheriris
>> k = 3;
>> clusterIndex = kmeans(meas,3);
>> scatter(meas(:,1),meas(:,2),[],clusterIndex,'filled')

enter image description here

...