Я пытался найти атрибут, аналогичный объясненному_вариантному_отношению (в PCA в sklearn) для UMAP, но не смог найти такого. В PCA я мог бы использовать объясненное_вариантное_отношение для разных значений n_components и сравнить результаты. Есть ли такая вещь, которую я могу использовать для UMAP в python?
Вы не можете легко оценить дисперсию, объясняемую UMAP, потому что это форма нелинейного уменьшения размерности по сравнению с PCA. Ниже более подробное погружение.
PCA пытается найти проекции в многомерном пространстве, которые охватывают как можно больше дисперсии. Вы проецируете данные на эти ортогональные плоскости и можете оценить дисперсию, захваченную каждой, по сравнению с дисперсией исходных данных. Это повсюду, линейная операция, поэтому вы определяете объясненную дисперсию. Вы можете проверить этот пост об объяснении дисперсии или этот пост о PCA
UMAP — это форма нелинейного уменьшения размерности. На странице справки UMAP использует так называемые симплициальные комплексы, чтобы захватить топологическое пространство ваших функций и оттуда получить низкоразмерное сокращение. Вы можете думать об этом как о высокоразмерном графике, который больше ориентирован на отражение взаимосвязи между точками данных, чем на дисперсию. Следовательно, на данный момент я не знаю, как получить дисперсию, описанную в UMAP. Вы также можете ознакомиться с ответом автора на github.