词向量列表上的 T-SNE 可视化
T-SNE visualisation on list of word vectors
我有一个约 20k 词向量的列表 ('tuple_vectors'),没有标签,每个都像下面这样
[-2.84658718e+00 -7.74899840e-01 -2.24296474e+00 -8.69364500e-01
3.90927410e+00 -2.65316987e+00 -9.71897244e-01 -2.40408254e+00
1.16272974e+00 -2.61649752e+00 -2.87350488e+00 -1.06603658e+00
2.93374014e+00 1.07194626e+00 -1.86619771e+00 1.88549474e-01
-1.31901133e+00 3.83382154e+00 -3.46174908e+00 ...
有没有一种使用 t-sne 进行可视化的快速、简洁的方法?
我试过以下方法
from sklearn.manifold import TSNE
n_sne = 21060
tsne = TSNE(n_components=2, verbose=1, perplexity=40, n_iter=300)
tsne_results = tsne.fit_transform(tuple_vectors)
plt(tsne_results)
如果您首先对文本进行矢量化,我建议使用 yellowbrick
库。由于 TSNE 非常昂贵,TSNEVisualizer
in yellowbrick
提前应用更简单的分解(默认具有 50 个组件的 SVD),然后执行 t-SNE 嵌入。然后可视化工具绘制散点图,该散点图可以按聚类或 class 着色。这是一个使用 tf-idfvectorizer 的简单示例:
from yellowbrick.text import TSNEVisualizer
from sklearn.feature_extraction.text import TfidfVectorizer
# vectorize the text
tfidf = TfidfVectorizer()
tuple_vectors = tfidf.fit_transform(sample_text)
# Create the visualizer and draw the vectors
tsne = TSNEVisualizer()
tsne.fit(tuple_vectors)
tsne.poof()
我有一个约 20k 词向量的列表 ('tuple_vectors'),没有标签,每个都像下面这样
[-2.84658718e+00 -7.74899840e-01 -2.24296474e+00 -8.69364500e-01
3.90927410e+00 -2.65316987e+00 -9.71897244e-01 -2.40408254e+00
1.16272974e+00 -2.61649752e+00 -2.87350488e+00 -1.06603658e+00
2.93374014e+00 1.07194626e+00 -1.86619771e+00 1.88549474e-01
-1.31901133e+00 3.83382154e+00 -3.46174908e+00 ...
有没有一种使用 t-sne 进行可视化的快速、简洁的方法?
我试过以下方法
from sklearn.manifold import TSNE
n_sne = 21060
tsne = TSNE(n_components=2, verbose=1, perplexity=40, n_iter=300)
tsne_results = tsne.fit_transform(tuple_vectors)
plt(tsne_results)
如果您首先对文本进行矢量化,我建议使用 yellowbrick
库。由于 TSNE 非常昂贵,TSNEVisualizer
in yellowbrick
提前应用更简单的分解(默认具有 50 个组件的 SVD),然后执行 t-SNE 嵌入。然后可视化工具绘制散点图,该散点图可以按聚类或 class 着色。这是一个使用 tf-idfvectorizer 的简单示例:
from yellowbrick.text import TSNEVisualizer
from sklearn.feature_extraction.text import TfidfVectorizer
# vectorize the text
tfidf = TfidfVectorizer()
tuple_vectors = tfidf.fit_transform(sample_text)
# Create the visualizer and draw the vectors
tsne = TSNEVisualizer()
tsne.fit(tuple_vectors)
tsne.poof()