Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
40_алгоритмов_Python.pdf
Скачиваний:
9
Добавлен:
07.04.2024
Размер:
13.02 Mб
Скачать

168

Глава 6. Алгоритмы машинного обучения без учителя

В исследованиях рынка кластеризация применяется для следующих целей:

zz Сегментация рынка.

zz Таргетированная реклама. zz Категоризация клиентов.

Для общего исследования данных и удаления шума из данных реального вре­ мени также применяется метод главных компонент. Пример использования — торговля на фондовом рынке.

СНИЖЕНИЕ РАЗМЕРНОСТИ

Каждый признак данных соответствует размерности в пространстве задачи. Минимизация количества признаков с целью упрощения пространства задачи называется снижением размерности (dimensionality reduction). Его можно про­ извести двумя способами:

zz Отбор признаков (feature selection). Определение набора признаков, значи­ мых в контексте решаемой задачи.

zz Агрегация признаков (feature aggregation). Объединение двух или более при­ знаков для снижения размерности с использованием одного из следующих алгоритмов:

yy метод главных компонент, PCA (principal component analysis). Линейный алгоритм неконтролируемого машинного обучения;

yy линейный дискриминантный анализ, LDA (linear discriminant analysis). Линейный алгоритм машинного обучения с учителем;

yy ядерный метод главных компонент, KPCA (kernel principal component analysis). Нелинейный алгоритм.

Давайте более подробно рассмотрим один из популярных алгоритмов снижения размерности, а именно PCA.

Метод главных компонент (PCA)

PCA — это метод машинного обучения без учителя, который может быть ис­ пользован для снижения размерности с помощью линейного преобразования. На рис. 6.13 мы видим две главные компоненты, PC1 и PC2, которые показы­ вают форму распространения точек данных. PC1 и PC2 можно использовать для суммирования точек данных с соответствующими коэффициентами.

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

169

 

 

 

 

 

 

Рис. 6.13

Давайте рассмотрим следующий код:

from sklearn.decomposition import PCA iris = pd.read_csv('iris.csv')

X = iris.drop('Species', axis=1) pca = PCA(n_components=4) pca.fit(X)

Теперь выведем коэффициенты нашей модели PCA (рис. 6.14).

Рис. 6.14

Обратите внимание, что исходный DataFrame имеет четыре признака: Sepal. Length, Sepal.Width, Petal.Length и Petal.Width. На рис. 6.14 указаны коэффи­ циенты четырех главных компонент, PC1, PC2, PC3 и PC4. Например, в первой

170

Глава 6. Алгоритмы машинного обучения без учителя

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

Основываясь на этих коэффициентах, мы можем рассчитать компоненты PCA для входного DataFrame X:

pca_df=(pd.DataFrame(pca.components_,columns=X.columns))

# Рассчитаем PC1, используя генерируемые коэффициенты

X['PC1'] = X['Sepal.Length']* pca_df['Sepal.Length'][0] + X['Sepal.Width']* pca_df['Sepal.Width'][0]+ X['Petal.Length']* pca_df['Petal.Length'][0]+X['Petal.Width']* pca_df['Petal.Width'][0]

# Вычислим PC2

X['PC2'] = X['Sepal.Length']* pca_df['Sepal.Length'][1] + X['Sepal.Width']* pca_df['Sepal.Width'][1]+ X['Petal.Length']* pca_df['Petal.Length'][1]+X['Petal.Width']* pca_df['Petal.Width'][1]

# Вычислим PC3

X['PC3'] = X['Sepal.Length']* pca_df['Sepal.Length'][2] + X['Sepal.Width']* pca_df['Sepal.Width'][2]+ X['Petal.Length']* pca_df['Petal.Length'][2]+X['Petal.Width']* pca_df['Petal.Width'][2]

# Вычислим PC4

X['PC4'] = X['Sepal.Length']* pca_df['Sepal.Length'][3] + X['Sepal.Width']* pca_df['Sepal.Width'][3]+ X['Petal.Length']* pca_df['Petal.Length'][3]+X['Petal.Width']* pca_df['Petal.Width'][3]

Далее выведем X после расчета компонент PCA (рис. 6.15).

Рис. 6.15