假设我从一个非常大的数据框开始(例如从 tsv 文件导入/修改)。其中一些列是分类标签。
(作为一个更具体的例子,让我们想象一个学区的一群学生,从学前班到高中)。
现在,我开始使用 sklearn 并实例化一个 t-SNE 模型,类似于此处的示例:
http://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html
import numpy as np
from sklearn.manifold import TSNE
X # my data
model = TSNE(n_components=2, random_state=0)
np.set_printoptions(suppress=True)
model.fit_transform(X)
然后我们绘制这个。情节可能看起来像这样:http: //imgur.com/a/3amkJ
这是我的问题:对于真实的数据集,在使用 t-sne 进行学习/聚类后,您将拥有许多“聚类”。然后,使用分类标签,我尝试遍历每一个,并尝试找出 t-SNE 图给我的结构。
对于我们学校的例子,我会得到 t-SNE 输出,然后我会标记数据点。(假设集群实际上代表年龄/班级,例如一年级学生分组,二年级学生是一个组等)
如果我尝试用“成绩”为这个情节着色,我会发现成绩并不能真正解释这个情节的结构。(为什么?因为每个班级都有学生的成绩为 As、Bs、Cs 等)然后我可能会尝试身高……那效果很好(因为矮个子学生之间存在相关性-> 学前班、高个子学生- -> 高中生)。
如何使用 t-SNE 图来推断数据的“最正确”标签?如何使用 t-SNE 图来解释(并进一步探索)图结构?