Реалізація на Тестовому Наборі Даних
Тепер ви розглянете практичний приклад застосування кластеризації K-середніх. Для цього буде використано штучний (dummy) набір даних. Штучні набори даних — це спеціально згенеровані дані, які часто використовуються для демонстраційних і навчальних цілей. Вони дозволяють контролювати характеристики даних і чітко спостерігати, як працюють алгоритми, такі як K-середніх.
Штучний набір даних
Для цієї демонстрації ми створимо штучний набір даних за допомогою функції make_blobs()
. Ця функція чудово підходить для генерації кластерів точок даних у наочно зрозумілий та керований спосіб. Ми згенеруємо дані з такими характеристиками:
-
Кількість зразків: буде створено набір даних із
300
точок; -
Кількість центрів: кількість справжніх кластерів встановимо на
4
. Це означає, що штучні дані спроєктовані так, щоб мати чотири окремі групи; -
Стандартне відхилення кластера: ми контролюватимемо розсіювання точок у межах кожного кластера, встановивши його на
0.60
для відносно компактних кластерів; -
Випадковий стан: буде використано фіксований
random_state
для відтворюваності, що гарантує однакове генерування даних при кожному запуску коду.
X, y_true = make_blobs(n_samples=300,
centers=4,
cluster_std=0.60,
random_state=0)
Реалізація K-середніх
Після створення цього штучного набору даних ми застосуємо алгоритм K-середніх. Ми розглянемо, як K-середніх намагається розділити ці дані на кластери на основі принципів, які ви вивчили в попередніх розділах.
K-середніх можна ініціалізувати та навчити наступним чином у Python:
kmeans = KMeans(n_clusters=k, random_state=42)
kmeans.fit(X)
Щоб визначити оптимальну кількість кластерів для цих даних, ми використаємо методи, розглянуті в попередніх розділах:
-
Метод WSS: обчислимо суму квадратів відхилень у межах кластерів (Within-Sum-of-Squares) для різних значень K і проаналізуємо графік "лікоть" для визначення потенційно оптимального K;
-
Метод силуетного коефіцієнта: обчислимо Silhouette Score для різних значень K і розглянемо силуетний графік та середні значення коефіцієнта для пошуку K, що максимізує якість кластеризації.
Нарешті, візуалізації відіграватимуть ключову роль у нашій реалізації. Ми візуалізуємо:
-
Сам штучний набір даних, щоб побачити внутрішню структуру кластерів;
-
Графік WSS, щоб визначити точку "лікоть";
-
Силуетний графік, щоб оцінити якість кластеризації для різних значень K;
-
Фінальні кластери K-середніх, накладені на штучні дані, щоб візуально перевірити результати кластеризації та обране оптимальне K.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.94
Реалізація на Тестовому Наборі Даних
Свайпніть щоб показати меню
Тепер ви розглянете практичний приклад застосування кластеризації K-середніх. Для цього буде використано штучний (dummy) набір даних. Штучні набори даних — це спеціально згенеровані дані, які часто використовуються для демонстраційних і навчальних цілей. Вони дозволяють контролювати характеристики даних і чітко спостерігати, як працюють алгоритми, такі як K-середніх.
Штучний набір даних
Для цієї демонстрації ми створимо штучний набір даних за допомогою функції make_blobs()
. Ця функція чудово підходить для генерації кластерів точок даних у наочно зрозумілий та керований спосіб. Ми згенеруємо дані з такими характеристиками:
-
Кількість зразків: буде створено набір даних із
300
точок; -
Кількість центрів: кількість справжніх кластерів встановимо на
4
. Це означає, що штучні дані спроєктовані так, щоб мати чотири окремі групи; -
Стандартне відхилення кластера: ми контролюватимемо розсіювання точок у межах кожного кластера, встановивши його на
0.60
для відносно компактних кластерів; -
Випадковий стан: буде використано фіксований
random_state
для відтворюваності, що гарантує однакове генерування даних при кожному запуску коду.
X, y_true = make_blobs(n_samples=300,
centers=4,
cluster_std=0.60,
random_state=0)
Реалізація K-середніх
Після створення цього штучного набору даних ми застосуємо алгоритм K-середніх. Ми розглянемо, як K-середніх намагається розділити ці дані на кластери на основі принципів, які ви вивчили в попередніх розділах.
K-середніх можна ініціалізувати та навчити наступним чином у Python:
kmeans = KMeans(n_clusters=k, random_state=42)
kmeans.fit(X)
Щоб визначити оптимальну кількість кластерів для цих даних, ми використаємо методи, розглянуті в попередніх розділах:
-
Метод WSS: обчислимо суму квадратів відхилень у межах кластерів (Within-Sum-of-Squares) для різних значень K і проаналізуємо графік "лікоть" для визначення потенційно оптимального K;
-
Метод силуетного коефіцієнта: обчислимо Silhouette Score для різних значень K і розглянемо силуетний графік та середні значення коефіцієнта для пошуку K, що максимізує якість кластеризації.
Нарешті, візуалізації відіграватимуть ключову роль у нашій реалізації. Ми візуалізуємо:
-
Сам штучний набір даних, щоб побачити внутрішню структуру кластерів;
-
Графік WSS, щоб визначити точку "лікоть";
-
Силуетний графік, щоб оцінити якість кластеризації для різних значень K;
-
Фінальні кластери K-середніх, накладені на штучні дані, щоб візуально перевірити результати кластеризації та обране оптимальне K.
Дякуємо за ваш відгук!