t-SNE 可视化与分类结果不同

时间:2021-07-09 15:27:03

标签: machine-learning

https://replit.com/@teachyourselfpython/WiltedLawngreenInvocation#main.py

您好,我想将附图中的 data1 和 data2 可视化。当我使用随机森林模型时,我将其分类为 93%。它可以很好地分离,但是当我尝试在 t-SNE 中绘制它时,所有数据都像附件一样混合在一起。你知道为什么分类结果和可视化不一样吗?以及,如何使 t-SNE 图与分类结果相似?

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.ticker import NullFormatter

from sklearn import manifold
from sklearn.utils import check_random_state

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

arr = np.concatenate((data1, data2), axis=0)
mid = int(len(arr)/2)
print (mid)

tsne = manifold.TSNE(n_components=3, init='pca',random_state=0, perplexity= 50, n_iter=5000)
trans_data = tsne.fit_transform(arr)

ax.scatter(trans_data[:,0][0:mid], trans_data[:,1][0:mid], trans_data[:,2][0:mid], c= 'b', s = 100, marker='.')
ax.scatter(trans_data[:,0][mid:], trans_data[:,1][mid:], trans_data[:,2][mid:], c= 'r', s = 100, marker='.')

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.title("t-SNE")
plt.axis('tight')
plt.legend(['data2','data1'])
plt.show()

0 个答案:

没有答案
相关问题