Алгоритмы машинного обучения: базовый курс. Тайлер Венс
данных: Мы загружаем стандартный набор данных Iris, который содержит 4 признака (длина и ширина чашелистика и лепестка) для 150 цветов ирисов.
2. Масштабирование данных: Признаки масштабируются, чтобы все признаки имели одинаковый масштаб (среднее значение 0 и стандартное отклонение 1). Это важно для PCA, так как этот метод чувствителен к масштабу данных.
3. Применение PCA: Мы используем PCA для уменьшения размерности с 4 до 2 компонент. Это позволяет нам визуализировать данные в двумерном пространстве.
4. Визуализация: Рисуем график, где каждая точка представляет один ирис, и цвет указывает на класс (вид ириса).
5. Доля объясненной дисперсии: Мы выводим долю дисперсии, которую объясняют главные компоненты. Чем выше эта доля, тем больше информации сохраняется при уменьшении размерности.
Результат:
После выполнения этого кода мы получим график, на котором ирисы будут разделены по двум главным компонентам. Эти компоненты объясняют основную вариативность данных, и благодаря снижению размерности мы можем легко визуализировать данные. Также, мы увидим, как хорошо первые две компоненты объясняют дисперсию данных (обычно они объясняют большую часть информации).
Преимущества и ограничения PCA
Преимущества:
– Ускорение обработки: Уменьшение размерности позволяет быстрее обучать модели.
– Снижение переобучения: Уменьшение количества признаков помогает избежать переобучения, так как модель фокусируется на более значимых признаках.
– Визуализация: Снижение размерности позволяет визуализировать многомерные данные, что важно для анализа и принятия решений.
Ограничения:
– Потеря информации: Хотя PCA сохраняет максимально возможную информацию, всегда существует некоторая потеря информации при уменьшении размерности.
– Линейность: PCA – линейный метод, и если данные имеют сложные, нелинейные зависимости, то PCA может не дать хороших результатов.
PCA – это инструмент для уменьшения размерности данных, который позволяет упростить модели, улучшить визуализацию и снизить коллинеарность признаков. Этот метод широко используется в различных областях, от анализа данных до машинного обучения, и помогает справляться с большими и высокоразмерными наборами данных.
Для этого примера давайте рассмотрим задачу сегментации клиентов, используя набор данных о покупательских привычках. Мы будем использовать PCA для снижения размерности, а затем применим алгоритм K-means для кластеризации. В данном случае данные будут включать различные характеристики клиентов, такие как сумма покупок и частота покупок. Задача состоит в том, чтобы разделить клиентов на группы с похожими покупательскими привычками.
Мы будем использовать сконструированный набор данных, который включает два признака:
– Сумма покупок: сколько клиент тратит за месяц.
– Частота покупок: как часто клиент делает покупки в месяц.
Цель – сегментировать клиентов на основе этих признаков.
Шаг 1: Генерация данных
Для начала создадим искусственные данные с использованием библиотеки `numpy`. Мы сгенерируем данные с 2 признаками для 300 клиентов и будем использовать PCA для уменьшения размерности, а затем применим K-means для сегментации.
```python
import