Добавить в цитаты Настройки чтения

Страница 7 из 25



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

Одним из наиболее распространенных методов снижения размерности данных является метод главных компонент (Principal Component Analysis, PCA). Этот метод позволяет найти линейные комбинации исходных признаков, которые сохраняют максимальную дисперсию данных. В результате применения 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`). Каждый образец представлен точкой на графике, а его цвет обозначает принадлежность к одному из двух кластеров.

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

import pandas as pd

from sklearn.datasets import load_breast_cancer

from sklearn.cluster import KMeans

import matplotlib.pyplot as plt

# Загрузка набора данных

breast_cancer_data = load_breast_cancer()

# Преобразование данных в DataFrame

data = pd.DataFrame(data=breast_cancer_data.data, columns=breast_cancer_data.feature_names)

# Добавление меток классов в DataFrame

data['target'] = breast_cancer_data.target

# Создание объекта KMeans с 2 кластерами (для злокачественных и доброкачественных опухолей)

kmeans = KMeans(n_clusters=2)

# Обучение модели на данных без меток классов

kmeans.fit(data.drop('target', axis=1))

# Получение меток кластеров для каждого образца

cluster_labels = kmeans.labels_

# Визуализация кластеров

plt.scatter(data['mean radius'], data['mean texture'], c=cluster_labels, cmap='viridis')

plt.xlabel('Mean Radius')

plt.ylabel('Mean Texture')

plt.title('KMeans Clustering')

plt.show()

Пример 3

Давайте возьмем набор данных о покупках клиентов в магазине и применим к нему метод кластеризации K-means. В этом примере мы будем использовать набор данных "Mall Customer Segmentation Data", который содержит информацию о клиентах магазина и их покупках.