Внутренняя размерность

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

Benjamin Wilson

Director of Research at lateral.io

Внутренняя размерность маршрута полёта

  • 2 признака: долгота и широта точек маршрута полёта
  • Набор данных выглядит двумерным
  • Но его можно приблизить одним признаком: смещением вдоль маршрута
  • Внутренняя размерность равна 1
latitude  longitude
  50.529     41.513
  50.360     41.672
  50.196     41.835
...

Диаграмма рассеяния: долгота vs широта

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

Внутренняя размерность

  • Внутренняя размерность = число признаков для приближения набора данных
  • Ключевая идея снижения размерности
  • Как представить выборки наиболее компактно?
  • Обнаруживается с помощью PCA
Обучение без учителя на Python

Набор данных Versicolor

  • «versicolor» — один из видов ириса
  • Всего 3 признака: длина чашелистика, ширина чашелистика и ширина лепестка
  • Выборки — точки в трёхмерном пространстве
Обучение без учителя на Python

Внутренняя размерность Versicolor равна 2

  • Выборки лежат вблизи плоского двумерного листа
  • Значит, можно приблизить с помощью 2 признаков

Точки Versicolor в 3D-пространстве: длина чашелистика vs ширина чашелистика vs ширина лепестка

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

PCA определяет внутреннюю размерность

  • Диаграммы рассеяния работают только при 2 или 3 признаках
  • PCA определяет внутреннюю размерность при любом числе признаков
  • Внутренняя размерность = число компонент PCA со значимой дисперсией
Обучение без учителя на Python

PCA выборок Versicolor

Повёрнутые точки Versicolor в 3D-пространстве: PC1 vs PC2 vs PC3

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

Компоненты PCA упорядочены по убыванию дисперсии

Столбчатая диаграмма: номер компоненты PCA vs дисперсия

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

Дисперсия и внутренняя размерность

  • Внутренняя размерность = число компонент PCA со значимой дисперсией
  • В нашем примере: первые две компоненты PCA
  • Значит, внутренняя размерность равна 2

Столбчатая диаграмма: номер компоненты PCA vs дисперсия с красной вертикальной линией между 1 и 2

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

Построение графика дисперсии компонент PCA

  • samples = массив выборок Versicolor
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA

pca = PCA()
pca.fit(samples)
PCA()
features = range(pca.n_components_)
Обучение без учителя на Python

Построение графика дисперсии компонент PCA

plt.bar(features, pca.explained_variance_)
plt.xticks(features)
plt.ylabel('variance')
plt.xlabel('PCA feature')
plt.show()

Столбчатая диаграмма: номер компоненты PCA vs дисперсия

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

Внутренняя размерность может быть неоднозначной

  • Внутренняя размерность — это идеализация
  • ... единственно верного ответа не всегда существует!
  • Вина Пьемонта: можно обосновать 2, 3 или более измерений

Столбчатая диаграмма: номер компоненты PCA vs дисперсия для набора данных о винах

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

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

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

Preparing Video For Download...