Алгоритмы машинного обучения: базовый курс. Тайлер Венс

Алгоритмы машинного обучения: базовый курс - Тайлер Венс


Скачать книгу
данные после PCA

      plt.scatter(X_pca[:, 0], X_pca[:, 1], alpha=0.5)

      plt.title("Данные после PCA")

      plt.xlabel("Первая главная компонента")

      plt.ylabel("Вторая главная компонента")

      plt.show()

      ```

      Шаг 3: Применение K-means для кластеризации

      Теперь, когда мы применили PCA для снижения размерности, можно использовать алгоритм K-means для сегментации данных. Для этого мы заранее определим количество кластеров, например, 2, так как мы знаем, что данные состоят из двух групп клиентов.

      ```python

      # Применяем K-means для кластеризации

      kmeans = KMeans(n_clusters=2, random_state=42)

      y_kmeans = kmeans.fit_predict(X_pca)

      # Визуализируем результаты кластеризации

      plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y_kmeans, cmap='viridis', alpha=0.5)

      plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, c='red', marker='X', label='Центроиды')

      plt.title("Результаты кластеризации K-means")

      plt.xlabel("Первая главная компонента")

      plt.ylabel("Вторая главная компонента")

      plt.legend()

      plt.show()

      ```

      Шаг 4: Анализ результатов

      После выполнения этих шагов мы получим два кластера, которые будут представлены на графике с различными цветами. Красные крестики на графике показывают центроиды кластеров. Эти центроиды представляют собой средние значения для каждого из кластеров.

      Шаг 5: Проверка объяснённой дисперсии с помощью PCA

      Для того чтобы понять, насколько эффективно мы сохранили информацию при уменьшении размерности, можно проверить, сколько дисперсии данных объясняется выбранными компонентами. В случае с нашим набором данных, PCA должен хорошо сохранить информацию, так как мы работаем с низким числом признаков.

      ```python

      # Выводим долю объясненной дисперсии для каждой главной компоненты

      print("Доля объясненной дисперсии для каждой компоненты:", pca.explained_variance_ratio_)

      print("Общая объясненная дисперсия (для 2 компонент):", np.sum(pca.explained_variance_ratio_))

      ```

      Результат:

      1. Визуализация после применения PCA: После применения PCA мы видим данные, упорядоченные вдоль двух главных компонент. Хотя у нас всего два исходных признака, PCA позволяет выразить данные в линейной комбинации этих признаков, что помогает выделить важные закономерности.

      2. Кластеризация с K-means: После применения K-means мы получаем два кластера клиентов. Это позволяет сегментировать клиентов на группы с схожими покупательскими привычками, что может быть полезно для таргетированной маркетинговой кампании.

      3. Объяснённая дисперсия: Ожидаемая доля объяснённой дисперсии поможет понять, сколько информации мы потеряли при применении PCA. В случае с двумя компонентами результат обычно будет достаточно высоким, особенно для данных с явными группами.

      В этом примере мы использовали PCA для снижения размерности данных о покупках клиентов и применили алгоритм K-means для сегментации этих клиентов. Этот подход можно использовать для более сложных задач, когда данные имеют много признаков, и важно выявить скрытые группы в данных. PCA позволяет уменьшить размерность без значительных потерь информации, а K-means помогает легко и быстро сегментировать клиентов на основе основных признаков.

      Сегментация данных с помощью методов снижения размерности и кластеризации является важным инструментом в бизнес-аналитике, маркетинге и других областях, где необходимо разделить данные на группы с похожими характеристиками для дальнейшего анализа или принятия решений.

      Глава


Скачать книгу