Візуалізація перетворення PCA

Наглядове навчання в Python

Benjamin Wilson

Director of Research at lateral.io

Зменшення розмірності

  • Ефективніше зберігання й обчислення
  • Приберіть менш інформативні «шумові» ознаки
  • ... які заважають передбаченню, напр. класифікації, регресії
Наглядове навчання в Python

Principal Component Analysis

  • PCA = «Principal Component Analysis»
  • Базова техніка зменшення розмірності
  • Перший крок — «декореляція» (розглянемо тут)
  • Другий крок — зменшення розмірності (розглянемо пізніше)
Наглядове навчання в Python

PCA вирівнює дані за осями

  • Повертає вибірки даних, вирівнюючи їх за осями
  • Зміщує вибірки, щоб середнє було 0
  • Інформація не втрачається

точкова діаграма даних про вина з повернутими осями

Наглядове навчання в Python

PCA дотримується шаблону fit/transform

  • PCA — це компонент scikit-learn, як KMeans чи StandardScaler
  • fit() навчає перетворення на даних
  • transform() застосовує вивчене перетворення
  • transform() можна застосувати й до нових даних
Наглядове навчання в Python

Використання scikit-learn PCA

  • 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 вирівнює головні компоненти з осями

точкова діаграма вин із 2 червоними стрілками, що показують напрями головних компонент (повернуті осі)

Наглядове навчання в Python

Головні компоненти

  • Доступні як атрибут components_ об'єкта PCA
  • Кожен рядок задає зміщення від середнього
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Наглядове навчання в Python

Давайте потренуємось!

Наглядове навчання в Python

Preparing Video For Download...