Искусственный интеллект. Машинное обучение
Шрифт:
Одним из наиболее распространенных методов снижения размерности данных является метод главных компонент (Principal Component Analysis, PCA). Этот метод позволяет найти линейные комбинации исходных признаков, которые сохраняют максимальную дисперсию данных. В результате применения PCA можно получить новые признаки, которые описывают большую часть вариабельности исходных данных, при этом имея меньшую размерность. Это позволяет сохранить наиболее значимую информацию в данных, сократив их размерность и упростив последующий анализ.
Применение
Применение обучения без учителя позволяет извлечь ценные знания и понимание из данных, даже если мы не знаем правильных ответов заранее. Этот тип обучения находит широкое применение в различных областях, таких как анализ данных, исследования рынка, биоинформатика и многое другое.
Пример 1
Давайте рассмотрим пример задачи снижения размерности данных с использованием метода главных компонент (PCA) на наборе данных Breast Cancer Wisconsin (данные о раке груди).
```python
# Импортируем необходимые библиотеки
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
# Загрузим набор данных Breast Cancer Wisconsin
breast_cancer = load_breast_cancer
X = breast_cancer.data
y = breast_cancer.target
target_names = breast_cancer.target_names
# Стандартизируем признаки
scaler = StandardScaler
X_scaled = scaler.fit_transform(X)
# Применим метод главных компонент (PCA) для снижения размерности до 2 компонент
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
# Визуализируем результаты
plt.figure(figsize=(8, 6))
colors = ['navy', 'turquoise']
lw = 2
for color, i, target_name in zip(colors, [0, 1], target_names):
plt.scatter(X_pca[y == i, 0], X_pca[y == i, 1], color=color, alpha=.8, lw=lw,
label=target_name)
plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('PCA of Breast Cancer Wisconsin dataset')
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.show
```
Этот код загружает набор данных Breast Cancer Wisconsin, стандартизирует признаки, применяет метод главных компонент (PCA) для снижения размерности до 2 компонент и визуализирует результаты. В результате
Метод снижения размерности данных, такой как метод главных компонент (PCA), применяется здесь для уменьшения количества признаков (в данном случае, измерений) в наборе данных до двух главных компонент. Это делается с целью упрощения анализа данных и визуализации, при этом сохраняя как можно больше информации о вариативности данных.
В коде мы выполняем следующие шаги:
1. Загрузка данных: Мы загружаем набор данных о раке груди и разделяем его на признаки (X) и метки классов (y).
2. Стандартизация признаков: Перед применением PCA признаки стандартизируются, чтобы среднее значение каждого признака было равно 0, а стандартное отклонение равнялось 1. Это необходимо для обеспечения одинаковой значимости всех признаков.
3. Применение PCA: Мы создаем экземпляр PCA с параметром `n_components=2`, чтобы снизить размерность данных до двух главных компонент.
4. Преобразование данных: С помощью метода `fit_transform` мы преобразуем стандартизированные признаки (X_scaled) в новое двумерное пространство главных компонент (X_pca).
5. Визуализация результатов: Мы визуализируем полученные двумерные данные, используя метки классов для раскрашивания точек на графике. Это позволяет нам увидеть, как объекты данных распределяются в новом пространстве главных компонент и какие зависимости между ними могут быть обнаружены.
Пример 2
Задача, рассмотренная в данном коде, заключается в кластеризации данных об опухолях молочной железы на основе их характеристик, чтобы выделить группы схожих образцов тканей. Это может помочь в анализе и понимании характеристик опухолей, а также в дальнейшем принятии медицинских решений.
Набор данных содержит информацию о различных признаках опухолей, таких как радиус, текстура, периметр и другие. Для удобства эти данные загружаются из библиотеки `sklearn.datasets`. Каждый образец в наборе данных имеет также метку класса, указывающую, является ли опухоль злокачественной (1) или доброкачественной (0).
Далее применяется метод кластеризации KMeans, который пытается разделить образцы данных на заданное количество кластеров (в данном случае 2 кластера). Модель KMeans обучается на признаках образцов без учета меток классов, так как это задача обучения без учителя. Подробнее данный метод мы будем рассматривать позже.
После обучения модели для каждого образца вычисляется метка кластера, которой он принадлежит. Затем происходит визуализация полученных кластеров на плоскости, используя два из признаков: средний радиус (`mean radius`) и среднюю текстуру (`mean texture`). Каждый образец представлен точкой на графике, а его цвет обозначает принадлежность к одному из двух кластеров.