Доказательство прототипа концепции, которое я должен сделать для моего проекта в прошлом году, - это реализовать K-Means Clustering на большом наборе данных и отобразить результаты на графике. Я знаю только объектно-ориентированные языки, такие как Java и C#, и решил попробовать MATLAB. Я замечаю, что с функциональным языком подход к решению проблем очень различен, поэтому я хотел бы получить некоторое представление о некоторых вещах, если это возможно.Как классифицировать свои данные для кластеров K-Means
Предположим, что у меня есть следующий набор данных:
raw_data
400.39 513.29 499.99 466.62 396.67
234.78 231.92 215.82 203.93 290.43
15.07 14.08 12.27 13.21 13.15
334.02 328.79 272.2 306.99 347.79
49.88 52.2 66.35 47.69 47.86
732.88 744.62 687.53 699.63 694.98
И я выбрал строки 2 и 4, чтобы быть 2 центроиды:
центроиды
234.78 231.92 215.82 203.93 290.43 % Centroid 1
334.02 328.79 272.2 306.99 347.79 % Centroid 2
Я хочу теперь вычислить евклидовы расстояния каждой точки к каждому центроиду, а затем назначить каждую точку ближайшему центроиду и отобразить это на графике. Предположим, я хочу, чтобы я хотел классифицировать центроиды как синие и зеленые. Как я могу сделать это в MATLAB? Если бы это была Java, я бы инициализировал каждую строку как объект и добавлял к отдельным ArrayLists (представляющим кластеры).
Если строки 1, 2 и 3 принадлежат к первому центроиду/кластеру, а строки 4, 5 и 6 относятся ко второму центроиду/кластеру - как я могу их классифицировать, чтобы отображать их как синие или зеленые точки на график? Я новичок в MATLAB и действительно интересуюсь этим. Спасибо за любую помощь.