hirayuki
https://prob.space/competitions/game_winner/discussions/hirayuki-Post8dd695aec240936d2ae8の続きです。どうしてもNNの中間層を特徴量として出力すると言うのをやってみたかったので、実際にやってみて記録しました。
やり方は上記URLのコードの最後に下記コードを加えるだけです。
print(cats.shape) embeddings = [] for i, emded in enumerate(model.embeds): embeddings.append(emded(cats[:,i])) embeddings = torch.cat(embeddings, 1) print(embeddings.shape) from sklearn.decomposition import PCA pca = PCA() embeddings = embeddings.detach().numpy().copy() pca.fit(embeddings) feature = pca.transform(embeddings) df = pd.DataFrame(feature).head() plt.figure(figsize=(6, 6)) plt.scatter(feature[:, 0], feature[:, 1], alpha=0.8, c=y) plt.grid() plt.xlabel("PC1") plt.ylabel("PC2") plt.show()
結果は以下のように、なんの役にも立たない結果となりました。。。2f4e9daa-a3f7-4f24-ba9f-732cae5171e3.png
そもそもaccuracyが5.5くらいのデータを可視化しすること自体、難しかったのだと反省していますが、もし何かご提案があればいただけると嬉しいです。
詳細はブログにも載せています。https://hirasakanai.hatenablog.com/entry/2020/08/30/180233?_ga=2.203780496.1212057073.1598778157-371923226.1598778157