title: Gensim Doc2Vec visualization issue when using t-SNE and/or PCA
body: <p>I am trying to familiarize with Doc2Vec results by using a public dataset of movie reviews. I have cleaned the data and run the model. There are, as you can see below, 6 tags/genres. Each is a document with its vector representation.</p>
  <pre><code>doc_tags = list(doc2vec_model.docvecs.doctags.keys())
  print(doc_tags)
  X = doc2vec_model[doc_tags]
  print(X)
  ['animation', 'fantasy', 'comedy', 'action', 'romance', 'sci-fi']
  [[ -0.6630892    0.20754902   0.2949621    0.622197     0.15592825]
   [ -1.0809666    0.64607996   0.3626246    0.9261689    0.31883526]
   [ -2.3482993    2.410015     0.86162883   3.0468733   -0.3903969 ]
   [ -1.7452248    0.25237766   0.6007084    2.2371168    0.9400951 ]
   [ -1.9570891    1.3037877   -0.24805197   1.6109428   -0.3572465 ]
   [-15.548988    -4.129228     3.608777    -0.10240117   3.2107658 ]]
  
  print(doc2vec_model.docvecs.most_similar('romance'))
  [('comedy', 0.6839742660522461), ('animation', 0.6497607827186584), ('fantasy', 0.5627620220184326), ('sci-fi', 0.14199887216091156), ('action', 0.046558648347854614)]
  </code></pre>
  <p>&quot;Romance&quot; and &quot;comedy&quot; are fairly similar, while &quot;action&quot; and &quot;sci-fi&quot; are fairly dissimilar genres compared to &quot;romance&quot;. So far so good. However, in order to visualize the results, I need to reduce the vector dimensionality. Therefore, I try first t-SNE and then PCA. This is the code and the results:</p>
  <pre><code># TSNE
  tsne = TSNE(n_components=2)
  X_tsne = tsne.fit_transform(X)
  df = pd.DataFrame(X_tsne, index=doc_tags, columns=['x', 'y'])
  print(df)
                      x           y
  animation -162.499695   74.153679
  fantasy    -10.496888   93.687149
  comedy     -38.886723  -56.914558
  action     -76.036247  232.218231
  romance    101.005371  198.827988
  sci-fi     123.960182   20.141081
  
  # PCA
  pca = PCA(n_components=2)
  X_pca = pca.fit_transform(X)
  df_1 = pd.DataFrame(X_pca, index=doc_tags, columns=['x', 'y'])
  print(df_1)
                     x         y
  animation  -3.060287 -1.474442
  fantasy    -2.815175 -0.888522
  comedy     -2.520171  2.244404
  action     -2.063809 -0.191137
  romance    -2.578774  0.370727
  sci-fi     13.038214 -0.061030
  </code></pre>
  <p>There is something wrong. This is even more visible when I visualize the results:</p>
  <p>TSNE:</p>
  <p><img src="https://i.stack.imgur.com/sc3xd.png" alt="t-SNE result" /></p>
  <p>PCA:</p>
  <p><img src="https://i.stack.imgur.com/BlG08.png" alt="PCA result" /></p>
  <p>This is clearly <em>not</em> what the model has produced. I am sure I am missing something basic. If you have any suggestions, it would be greatly appreciated.</p>