@gung абсолютно коректний, пропонує вам багатовимірне масштабування (MDS) як попередній інструмент для створення points X dimensions
даних з матриці відстаней. Я повинен додати лише кілька штрихів. Кластеризація К означає, що передбачає евклідові відстані . MDS дасть вам координати точок у розмірах, тим самим гарантуючи евклідові відстані. Ви повинні використовувати метричний MDS і запитувати якомога більше розмірів, тому що ваша мета полягає в тому, щоб мінімізувати помилки відновлення даних, а не відображати їх у 2D або 3D.
Що робити, якщо у вас немає програмного забезпечення MDS під рукою, але у вас є деякі функції матриці, такі як розкладання власного значення або розкладання сингулярного значення? Тоді ви могли б зробити просту метричну MDS самостійно - Torgerson MDS, також відому як аналіз основних координат (PCoA). Це становить трохи "скручений" аналіз основних компонентів. Я не буду це описувати тут, хоча це досить просто. Ви можете прочитати про це у багатьох місцях, наприклад, тут .
Нарешті, можна запрограмувати "K-засоби для введення матриці відстані" безпосередньо - без виклику чи запису функцій, виконуючи PCoA або інший метричний MDS. Ми знаємо, що (a) сума квадратичних відхилень від центроїда дорівнює сумі попарно квадратних евклідових відстаней, поділених на кількість точок; та (b) знати, як обчислити відстані між центроїдами кластера поза матрицею відстані ; (c) і далі ми знаємо, як суми квадратів взаємопов'язані в K-значенні. Все це разом робить написання алгоритму, який ви хочете, просто, а не складне завдання. Слід пам’ятати, що K-засоби призначені лише для евклідових відстаней / евклідового простору. Використовуйте К-медоїди або інші методи для неевклідових дистанцій.
Подібне запитання .