t -SNE - это отличное средство машинного обучения, но можно найти много причин, чтобы использовать PCA вместо него. Из верхней части моей головы я упомяну пять. Как и большинство других используемых вычислительных методологий, t SNE не является « серебряной пулей», и есть немало причин, которые в некоторых случаях делают его неоптимальным выбором. Позвольте мне кратко упомянуть некоторые моменты:
Стохастичность конечного решения . PCA является детерминированным; сне нет. Один получает хорошую визуализацию, а затем ее коллега получает другую визуализацию, а затем они становятся артистичными, что выглядит лучше, и если разница в в расхождении имеет смысл ... В PCA правильный ответ на поставленный вопрос гарантирован. SNE может иметь несколько минимумов, которые могут привести к различным решениям. Это требует многократных прогонов, а также вызывает вопросы о воспроизводимости результатов.0,03 % K L ( P | | Q ) tt0.03%KL(P||Q)t
Интерпретируемость отображения . Это относится к вышеприведенному пункту, но давайте предположим, что команда согласилась на конкретный случайный старт / пробег. Теперь возникает вопрос: что это показывает? -SNE пытается правильно отобразить только локальные / соседние объекты, поэтому наши выводы из этого вложения должны быть очень осторожными; глобальные тренды не представлены точно (и это может быть очень полезно для визуализации). С другой стороны, PCA - это просто диагональное вращение нашей исходной ковариационной матрицы, а собственные векторы представляют новую осевую систему в пространстве, охватываемом нашими исходными данными. Мы можем напрямую объяснить, что делает конкретный PCA.t
Применение к новым / невидимым данным . -SNE не изучает функцию из исходного пространства в новое (нижнее) измерение, и это проблема. В этом отношении SNE является непараметрическим алгоритмом обучения, поэтому приближение с помощью параметрического алгоритма является некорректной задачей. Встраивание изучается путем непосредственного перемещения данных через низкоразмерное пространство. Это означает, что нельзя получить собственный вектор или подобную конструкцию для использования в новых данных. Напротив, используя PCA, собственные векторы предлагают новую систему осей, которую можно напрямую использовать для проецирования новых данных. [Видимо , можно было бы попробовать обучение глубоко-сеть , чтобы узнатьт тttt-SNE картирование (вы можете услышать доктора ван дер Маатена на ~ 46 'этого видео, предлагающего что-то в этом роде), но, очевидно, простого решения не существует.]
Неполные данные . Собственно -SNE не имеет дело с неполными данными. Справедливости ради, PCA также не работает с ними, но существуют многочисленные расширения PCA для неполных данных (например, вероятностный PCA ), которые являются почти стандартными процедурами моделирования. -SNE в настоящее время не может обрабатывать неполные данные (за исключением, очевидно, обучения сначала вероятностного PCA и передачи результатов ПК в -SNE в качестве входных данных).т тttt
не (слишком) маленький корпус. k -SNE решает проблему, известную как проблема скученности, эффективно, что несколько похожих точек в более высоком измерении коллапсируют друг над другом в более низких измерениях (подробнее здесь ). Теперь, когда вы увеличиваете размеры, проблема переполнения становится менее серьезной, т.е. проблема, которую вы пытаетесь решить с помощью -SNE, ослабевает. Вы можете обойти эту проблему, но это не тривиально. Поэтому, если вам нужен мерный вектор в качестве приведенного множества, а не совсем мало, оптимальность производственного решения находится под вопросом. PCA с другой стороны , предложение всегдат к к кttkkkобъяснена лучшая линейная комбинация с точки зрения дисперсии. (Спасибо @amoeba за то, что заметил, что напутал, когда впервые попытался обрисовать этот момент.)
Я не упоминаю вопросы о вычислительных требованиях (например, скорость или объем памяти), а также вопросы выбора соответствующих гиперпараметров (например, растерянность). Я думаю, что это внутренние проблемы методологии SNE, которые не имеют отношения к сравнению с другим алгоритмом.t
Подводя итог, можно сказать , что SNE - это замечательно, но, поскольку все алгоритмы имеют свои ограничения, когда речь заходит о его применимости. Я использую -SNE почти в любом новом наборе данных, который я получаю в качестве пояснительного инструмента анализа данных. Хотя я думаю, что он имеет определенные ограничения, которые не делают его почти таким же применимым, как PCA. Позвольте мне подчеркнуть, что PCA также не идеален; например, визуализация на основе PCA часто уступает визуализации SNE.т тttt