Визуализация данных и уменьшение размерности с помощью t-SNE

Рави Ранджан, 20 июня 2019 г.

Вступление

Предположим, вы работаете с большим размером набора данных и вам нужно найти важную закономерность - шум. Визуализация или анализ очень большого размера данных

Поверьте, анализ или визуализация очень большого размера данных вызовет у меня головную боль, поскольку нет инструментов или каких-либо методов для визуализации или анализа данных, кроме техники уменьшения размерности

Что такое уменьшение размерности?

Уменьшение размерности - это метод уменьшения размеров или поиска более низких размеров набора данных путем сохранения как можно большего объема информации, доступной в исходном наборе данных

Преимущество уменьшения размера

  • Избегайте проклятия размерности, уменьшая размеры
  • Удалите коллинеарные элементы
  • Чем меньше размеры, тем проще их визуализировать в двух- или трехмерном формате
  • С меньшим размером потребуется меньше времени и места для обработки и

Таблица содержания

  1. Что такое t-SNE?
  2. Соседство и встраивание
  3. Геометрический институт t-SNE
  4. Как применить t-SNE и интерпретировать его результаты
  5. t-SNE против PCA

1. Что такое t-SNE?

t-SNE - это метод нелинейного уменьшения размеров. Это лучшая современная / лучшая техника измерения размеров. t-SNE в основном уменьшает многомерность до 2-х или 3-х измерений, так что это может быть визуализировано человеческими глазами, и, возможно, работа по анализу различных данных будет уменьшена, так как он может отображать различные закономерности в наборе данных в 2-м или 3d.

Визуализация 784 измерений в 2d с помощью t-SNE

2. Соседство и встраивание

Предположим, что данные находятся в d-измерении, теперь нам нужно визуализировать их в 2-м измерении с помощью tSNE

Перед тем, как погрузиться в подробности, мы должны выучить некоторую терминологию, которая используется в tSNE.

Соседство - если xi - это точка в пространстве d-измерения, тогда у нее будут некоторые точки xj, которые близки к xi на определенном расстоянии, так что расстояние между xi и xj будет небольшим, как по сравнению с другими точками

Итак, N (xi) = {xj, такое, что xi, xj геометрически близки}

Встраивание - при встраивании мы уменьшаем размер точки, но стараемся сохранить ее окрестности

Предположим, что в пространстве размерности d у нас есть две окрестности

Один с {x1, x2, x3, x7} и другой с {x4, x6, x9}, поскольку они были геометрически ближе

Теперь работа по внедрению будет заключаться в уменьшении размеров таким образом, чтобы в 2d он также имел две окрестности: одна с {x1 ', x2', x3 ', x7'}, а другая с {x4 ', x6 ', x9'}

3. Геометрическая интуиция t-SNE

Основная работа tSNE заключается в сохранении расстояния в районе и местных структурах, и он использует следующие шаги: -

  1. В измерении d, если N (xi) = {x1, x3, x7}, то в 2d N (xi ’) = {x1’, x3 ’, x7’}
  2. Расстояние должно быть сохранено. Предположим, что в измерениях d расстояние между (x1, x3) равно k, тогда расстояние между (x1 ’, x3’) равно k ’, так что k’ аналогично k

4. Как применить t-SNE и интерпретировать его результаты

  • t-SNE - это итеративный алгоритм. У него два важных параметра.
  1. Недоумение - количество соседей, которые я хочу сохранить для соседства
  2. Размер шага - количество итераций
  • Когда недоумение невелико, вы получите несколько сумасшедших структур

t-SNE с 1 недоумением

t-SNE с 17 недоумением

  • Всегда запускайте t-SNE с несколькими значениями сложности
  • Если недоумение равно количеству точек данных, будет выдана ошибка.

Итак, недоумение ‹количество точек данных

  • Всегда выполняйте итерацию t-SNE, пока форма не стабилизируется

С итерацией 100 с итерацией 1300

  • Чтобы получить наилучший результат, устраните затруднения и повторяйте и запускайте их несколько раз
  • t-SNE расширяет плотные кластеры и сжимает разреженные кластеры. Итак, размер кластера в t-SNE ничего не значит
  • t-SNE не сохраняет расстояние между кластерами

Примечание - чтобы попробовать t-SNE с различными наборами данных и значениями недоумения без кода, вы можете перейти по этой ссылке на «https://distill.pub/2016/misread-tsne/ женщина

5. t-SNE против PCA

PCA - это линейный алгоритм, который пытается сохранить глобальную форму / структуру данных. Он не сможет обрабатывать элементы, которые не являются линейно зависимыми от других, и проблема в том, что PCA размещает разнородные точки далеко друг от друга в нижних измерениях, но суть в том, что группа несходных точек должна сохраняться и в нижних измерениях, а также в В этом случае PCA не работает.

С другой стороны, t-SNE пытается сохранить локальные структуры, расстояние между кластерами может быть достаточно большим, но соседство должно быть сохранено, в основном t-SNE стремится сохранить локальную структуру

6. реализация t-SNE на python

# преобразование 784 измерения в 2d

из sklearn.manifold импортировать TSNE

модель = TSNE (n_components = 2, random_state = 0)

# настройка параметров

# количество компонентов = 2

# недоумение по умолчанию = 30

# скорость обучения по умолчанию = 200

# default Максимальное количество итераций для оптимизации = 1000

# здесь данные имеют форму (1000, 784)

tsne_data = model.fit_transform (данные)

# создание нового фрейма данных, который помогает нам в построении данных результатов

tsne_data = np.vstack ((tsne_data.T, labels)). T

tsne_df = pd.DataFrame (data = tsne_data, columns = («Dim_1», «Dim_2», «label»))

# Построение результата tsne

sn.FacetGrid (tsne_df, hue = ”label”, size = 6) .map (plt.scatter, ‘Dim_1’, ‘Dim_2’). add_legend ()

plt.show ()

график t-SNE

График PCA

Я попытался уменьшить размер, используя PCA в том же наборе данных, и у меня получился этот график, поскольку вы можете видеть, что графики t-SNE более понятны, чем графики PCA

Заключение - Поздравляю, вы прочитали весь блог, а это значит, что вы имеете представление о сокращении размеров, а также много о t-SNE. Надеюсь, вам понравился блог и его содержание, если оно вам понравилось, тогда направьте эту ссылку, чтобы узнать больше о t-SNE.