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

Книгу можно купить на ЛитРес.
Всего за 690 руб. Купить полную версию
Шрифт
Фон

eps максимальное расстояние между объектами, которые могут быть отнесены к одному кластеру.

min_samples минимальное количество объектов для формирования кластера.

```python

# Применяем алгоритм DBSCAN

dbscan = DBSCAN(eps=0.5, min_samples=5)

y_dbscan = dbscan.fit_predict(X_scaled)

# Визуализируем результаты DBSCAN

plt.scatter(X_scaled[:, 0], X_scaled[:, 1], c=y_dbscan, cmap='viridis')

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

plt.xlabel("Сумма покупок")

plt.ylabel("Частота покупок")

plt.show()

```

В результате работы DBSCAN мы видим, что алгоритм выделил два основных кластера, а некоторые объекты (которые в модели считаются выбросами) не были отнесены ни к одному кластеру и обозначены как -1. Эти объекты можно рассматривать как редкие или аномальные пользователи.

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

Теперь давайте сравним результаты кластеризации с помощью K-means и DBSCAN.

K-means создаёт два чётких, заранее заданных кластера. Это полезно, когда вы точно знаете, что данные могут быть разделены на несколько групп с определённым количеством кластеров.

DBSCAN позволяет обнаружить кластеры произвольной формы и игнорировать выбросы, что полезно, когда данные содержат аномальные точки или неравномерно распределены.

Итог

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

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

Оба алгоритма имеют свои сильные стороны, и выбор между ними зависит от структуры ваших данных. Если вы знаете, сколько кластеров вам нужно, и уверены, что они будут симметричными и не содержат выбросов, то K-means это хорошее решение. Если же данные имеют более сложную структуру и выбросы, лучше использовать DBSCAN.

Снижение размерности: PCA

Основные идеи PCA

Метод PCA помогает уменьшить размерность данных, преобразуя исходные признаки в новые переменные, которые называются главными компонентами. Эти компоненты являются линейными комбинациями исходных признаков и упорядочены так, что первая главная компонента захватывает максимальную дисперсию данных, вторая наибольшую дисперсию, оставшуюся после первой, и так далее. Таким образом, первые несколько главных компонент обычно содержат большинство

информации о данных, что позволяет отказаться от менее значимых компонент.

PCA это линейный метод, который ищет новые оси координат, вдоль которых данные максимально разнесены. Эти оси называются основными компонентами. Процесс можно представить следующим образом:

1. Нахождение главных компонент: с помощью математических методов (например, сингулярного разложения матрицы) PCA находит новые оси, которые наиболее информативны для данных.

2. Проекция данных на новые оси: исходные данные проецируются на найденные главные компоненты, что приводит к новому представлению данных в пространстве меньшей размерности.

3. Выбор количества компонент: можно выбрать количество компонент, которые сохраняют наибольшее количество информации, и отбросить менее значимые компоненты.

Зачем нужно снижать размерность?

1. Ускорение обучения: с уменьшением числа признаков модели обучаются быстрее, так как уменьшается количество вычислений.

2. Предотвращение переобучения: уменьшая количество признаков, можно снизить риск переобучения модели, так как она не будет "подгоняться" под шум в данных.

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

4. Уменьшение коллинеарности: если признаки в данных сильно коррелируют друг с другом, это может приводить к проблемам в работе моделей. PCA помогает уменьшить коллинеарность, заменяя связанные признаки на независимые компоненты.

Как работает PCA?

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

2. Ковариационная матрица: затем вычисляется ковариационная матрица для центрированных данных. Ковариация показывает, как два признака изменяются относительно друг друга. Чем выше ковариация, тем сильнее взаимосвязь между признаками.

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

4. Проекция данных: теперь можно проецировать исходные данные на найденные компоненты. Это преобразует данные в новое пространство меньшей размерности.

Пример использования PCA

Допустим, у нас есть набор данных с множеством признаков, и мы хотим уменьшить их количество, чтобы улучшить производительность модели. Рассмотрим следующий пример с использованием библиотеки scikit-learn на Python.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

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

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3