Могу ли я сохранить координаты для встраивания 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') 

Другие вопросы по тегам