import pandas as pd
from matplotlib import pyplot as plt
from sklearn.manifold import TSNE
seed = 0
import numpy as np
def visualize_embeddings(embeddings, labels, figsize=(16, 16)):
# Extract TSNE values from embeddings
embed2D = TSNE(n_components=2, n_jobs=-1, random_state=seed).fit_transform(embeddings)
embed2D_x = embed2D[:, 0]
embed2D_y = embed2D[:, 1]
# Create dataframe with labels and TSNE values
df_embed = pd.DataFrame({'labels': labels})
df_embed = df_embed.assign(x=embed2D_x, y=embed2D_y)
# Create classes dataframes
df_embed_cbb = df_embed[df_embed['labels'] == 0]
df_embed_cbsd = df_embed[df_embed['labels'] == 1]
df_embed_cgm = df_embed[df_embed['labels'] == 2]
df_embed_cmd = df_embed[df_embed['labels'] == 3]
df_embed_healthy = df_embed[df_embed['labels'] == 4]
# Plot embeddings
plt.figure(figsize=figsize)
plt.scatter(df_embed_cbb['x'], df_embed_cbb['y'], color='yellow', s=10, label='CBB')
plt.scatter(df_embed_cbsd['x'], df_embed_cbsd['y'], color='blue', s=10, label='CBSD')
plt.scatter(df_embed_cgm['x'], df_embed_cgm['y'], color='red', s=10, label='CGM')
plt.scatter(df_embed_cmd['x'], df_embed_cmd['y'], color='orange', s=10, label='CMD')
plt.scatter(df_embed_healthy['x'], df_embed_healthy['y'], color='green', s=10, label='Healthy')
#以下
df = []
for i in range(5):
df.append(df_embed[df_embed['labels'] == i])
plt.figure(figsize=figsize)
for i in range(5):
plt.scatter(df[i]['x'], df[i]['y'], s=10)
plt.legend()
plt.show()
#参数为特征及标签
embed = np.random.random([50,100])
lable = np.random.randint(0,5,[50])
visualize_embeddings(embed,lable)
[项目链接](https://www.kaggle.com/dimitreoliveira/cassava-leaf-supervised-contrastive-learning)
特征分布图
最新推荐文章于 2022-06-08 23:46:05 发布