2020年11月20日金曜日

for loopを使ったt-sne次元圧縮

MODEL100, MODEL200, MODEL300を読み込んで、次元圧縮を行い、FIGURE100.jpg, FIGURE200jpg, FIGURE300.jpgを保存する。

#ライブラリの読み込み
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt
from gensim.models import word2vec

#for loopの設定
data = ['100', '200', '300']

for item in data:

#モデルの読み出し(以下はfor loopの中なのでインデントが必要。{}の中にloopの中身が入る。)
    model = word2vec.Word2Vec.load('MODEL{}.model'.format(item))

#x軸の決定
    X = model[model.wv.vocab]

#次元圧縮(次元数2、perplexity:次元圧縮の重要なパラメータ)
    tsne = TSNE(n_components=2, perplexity=30)


#次元圧縮後のx軸の決定
    X_tsne = tsne.fit_transform(X[:1000,:])

#保存先の図の準備(図を作る前に保存先の図を作っておく。)
    fig = plt.figure()

#図の作成(plt.scatterで書式を指定し、plt.show()で表示させる)
    plt.scatter(X_tsne[:, 0], X_tsne[:, 1])
    plt.show()

#図の保存。{}のところに上記と同じitemが入る
    fig.savefig("FIGURE{}.jpg".format(item))


0 件のコメント:

コメントを投稿