Визуализация данных и уменьшение размерности с помощью t-SNE
Рави Ранджан, 20 июня 2019 г.
Вступление
Предположим, вы работаете с большим размером набора данных и вам нужно найти важную закономерность - шум. Визуализация или анализ очень большого размера данных
Поверьте, анализ или визуализация очень большого размера данных вызовет у меня головную боль, поскольку нет инструментов или каких-либо методов для визуализации или анализа данных, кроме техники уменьшения размерности
Что такое уменьшение размерности?
Уменьшение размерности - это метод уменьшения размеров или поиска более низких размеров набора данных путем сохранения как можно большего объема информации, доступной в исходном наборе данных
Преимущество уменьшения размера
- Избегайте проклятия размерности, уменьшая размеры
- Удалите коллинеарные элементы
- Чем меньше размеры, тем проще их визуализировать в двух- или трехмерном формате
- С меньшим размером потребуется меньше времени и места для обработки и
Таблица содержания
- Что такое t-SNE?
- Соседство и встраивание
- Геометрический институт t-SNE
- Как применить t-SNE и интерпретировать его результаты
- 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 заключается в сохранении расстояния в районе и местных структурах, и он использует следующие шаги: -
- В измерении d, если N (xi) = {x1, x3, x7}, то в 2d N (xi ’) = {x1’, x3 ’, x7’}
- Расстояние должно быть сохранено. Предположим, что в измерениях d расстояние между (x1, x3) равно k, тогда расстояние между (x1 ’, x3’) равно k ’, так что k’ аналогично k
4. Как применить t-SNE и интерпретировать его результаты
- t-SNE - это итеративный алгоритм. У него два важных параметра.
- Недоумение - количество соседей, которые я хочу сохранить для соседства
- Размер шага - количество итераций
- Когда недоумение невелико, вы получите несколько сумасшедших структур
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.