#python #machine-learning #scikit-learn #data-visualization #dimensionality-reduction
#python #машинное обучение #scikit-learn #визуализация данных #уменьшение размерности
Вопрос:
Я пытаюсь выполнить задачу двоичной классификации для набора данных, содержащего около 20000 образцов и 40 объектов. Я вручную обработал набор данных — каждая функция является темой, а значение для этой функции и этот образец — это настроение, связанное с темой. Темы найдены с скрытым распределением Дирихле. В попытке визуализировать разделяемость и классификационный потенциал данных я использовал реализацию tSNE Scikit-Learn и построил как 2D, так и 3D графики результирующих преобразованных данных.
Два класса почти полностью перекрываются как на 2D, так и на 3D-графиках. Однако, когда я пробую разные классификаторы для исходных (до t-SNE) данных, я могу получить 5-кратные оценки перекрестной проверки в пределах 75-80%, поэтому я предполагаю, что модель не переобучает данные.
Я попытался поиграть с недоумением, используя значения от 5 до 200, и это не изменило уровень перекрытия в графике.
Мой код t-SNE:
tsne = TSNE(n_components=2).fit_transform(data, data_target)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(*zip(*tsne), c=data_target)
plt.show()
Возможно ли, что t-SNE может ухудшить производительность классификатора? Или это указывает на то, что с моими данными или моей реализацией что-то не так, если мои классификаторы работают нормально, но график t-SNE указывает на полное перекрытие? Должен ли я просто придерживаться классификации своих данных без какого-либо уменьшения размерности?
Спасибо!
Комментарии:
1. Если вы спрашиваете, не теряет ли t-SNE информацию при сопоставлении
N>2
измерений с2
размерами для построения графика, то будьте уверены: это базовая математика (попробуйте пронумеровать точки на окружности (2d); теперь сопоставьте их с числовой линией (1d), но сохраняя евклидовы расстояния!). Это плохо обусловленная проблема, и проблемы всегда будут. Поэтому это эвристическая работа, в целом довольно хорошая (чтобы «несколько» отобразить структуру).2. @sascha спасибо за ответ. Я читал, что большое или полное перекрытие графика t-SNE указывает на низкий потенциал классификации, и мне было интересно, указывает ли это на какие-либо потенциальные проблемы с моим набором данных, которые мне придется изучить, отсюда и вопрос. Из того, что я прочитал, показалось, что редко можно получить результат, подобный моему.
3. Сначала попробуйте уменьшить количество функций с 40 до 10-20, используя PCA, затем примените tSNE, дайте мне знать, если это что-то изменит. Также попробуйте UMAP