Могу ли я сохранить координаты для встраивания UMAP?
Я использую модель UMAP следующим образом:
embedding = umap.UMAP(n_components=2,n_neighbors=30, min_dist=0.0, metric='euclidean').fit(data)
И построение:
f = umap.plot.points(embedding, labels=df['name'])
Это создает красивый график. Я хочу получить координаты нанесенных точек, чтобы перейти к другой визуализации. Я не совсем понимаю, что хранится в объекте внедрения.
Есть ли способ экспортировать что-то вроде:
[{'name': name1, 'x-value': x1, 'y-value': y1}, {'name': name2, 'x-value': x2, 'y-value': y2 }...]
Или похожие?
2 ответа
You can get an array of the x,y coordinates by doing
embedding.embedding_
Not sure how I missed that.
Одним из вариантов было бы создать DataFrame с координатами, добавить столбец с именами и превратить его в список диктов.
Похоже, у вас уже есть DataFrame со столбцомname
. Если это так, я бы пошел на что-то вроде:
import pandas as pd
# Add coordinates into a Df
df_c = pd.DataFrame(embedding.embedding_)
# Add column with names
df_c['name'] = df['name']
# Transform Df into list of dicts
df_c.to_dict('records')