Визуализация преобразования PCA

Обучение без учителя на Python

Benjamin Wilson

Director of Research at lateral.io

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

  • Более эффективное хранение и вычисления
  • Устранение малоинформативных «шумовых» признаков
  • ... которые мешают задачам прогнозирования: классификации, регрессии
Обучение без учителя на Python

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

  • PCA = «метод главных компонент»
  • Базовый метод снижения размерности
  • Первый шаг — «декорреляция» (рассматривается здесь)
  • Второй шаг — снижение размерности (рассматривается позже)
Обучение без учителя на Python

PCA выравнивает данные по осям

  • Поворачивает выборку данных для выравнивания по осям
  • Сдвигает выборку так, чтобы среднее стало равно 0
  • Информация не теряется

точечный график данных о винах с повёрнутыми осями

Обучение без учителя на Python

PCA следует паттерну fit/transform

  • PCA — компонент scikit-learn, как KMeans или StandardScaler
  • fit() обучает преобразование на данных
  • transform() применяет обученное преобразование
  • transform() можно применять и к новым данным
Обучение без учителя на Python

Использование PCA в scikit-learn

  • samples = массив двух признаков (total_phenols и od280)
[[ 2.8   3.92]
 ...
 [ 2.05  1.6 ]]
from sklearn.decomposition import PCA

model = PCA() model.fit(samples)
PCA()
transformed = model.transform(samples)
Обучение без учителя на Python

Признаки PCA

  • Строки transformed соответствуют наблюдениям
  • Столбцы transformed — это «признаки PCA»
  • Строка содержит значения признаков PCA для соответствующего наблюдения
print(transformed)
[[  1.32771994e+00   4.51396070e-01]
 [  8.32496068e-01   2.33099664e-01]
 ...
 [ -9.33526935e-01  -4.60559297e-01]]
Обучение без учителя на Python

Признаки PCA не коррелируют

  • Признаки набора данных часто коррелируют, например total_phenols и od280
  • PCA выравнивает данные по осям
  • Полученные признаки PCA линейно не коррелируют («декорреляция»)

точечный график данных о винах с повёрнутыми осями

Обучение без учителя на Python

Корреляция Пирсона

  • Измеряет линейную корреляцию признаков
  • Значение от -1 до 1
  • Значение 0 означает отсутствие линейной корреляции

3 точечных графика с корреляцией 0,7, 0 и -0,7

Обучение без учителя на Python

Главные компоненты

  • «Главные компоненты» = направления дисперсии
  • PCA выравнивает главные компоненты по осям

точечный график данных о винах с двумя красными стрелками, показывающими направления главных компонент (повёрнутые оси)

Обучение без учителя на Python

Главные компоненты

  • Доступны через атрибут components_ объекта PCA
  • Каждая строка задаёт смещение от среднего
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Обучение без учителя на Python

Давайте потренируемся!

Обучение без учителя на Python

Preparing Video For Download...