gpt4 book ai didi

python - 如何在模型中实现 t-SNE?

转载 作者:行者123 更新时间:2023-11-30 09:25:24 26 4
gpt4 key购买 nike

我将数据分开进行训练/测试。当我使用 PCA 时,它很简单。

from sklearn.decomposition import PCA
pca = PCA()
X_train_pca = pca.fit_transform(X_train)
X_test_pca = pca.transform(X_test)

从这里我可以在下一步中使用 X_train_pca 和 X_test_pca 等等..

但是当我使用 t-SNE 时

from sklearn.manifold import TSNE
X_train_tsne = TSNE(n_components=2, random_state=0).fit_transform(X_train)

我似乎无法转换测试集,以便我可以将 t-SNE 数据用于下一步,例如支持向量机。

有什么帮助吗?

最佳答案

我相信你想做的事情是不可能的。

t-SNE 进行投影,尝试保持适合的样本之间的成对距离。因此,您无法使用 t-SNE 模型来预测新数据的投影而不进行修改。

另一方面,我不会将 t-SNE 的输出作为分类器的输入。主要是因为 t-SNE 是高度非线性的并且有些随机,并且根据不同的运行和不同的困惑度值,您可以获得非常不同的输出。

参见this t-SNE解释。

但是,如果您确实要为此目的使用 t-SNE,则必须在整个数据上拟合您的 t-SNE 模型,一旦拟合完毕,您就可以进行训练和测试分割。

from sklearn.manifold import TSNE

size_train = X_train.shape[0]
X = np.vstack((X_train,X_test))

X_tsne = TSNE(n_components=2, random_state=0).fit_transform( X )
X_train_tsne = X_tsne[0:size_train,:]
X_test_tsne = X_tsne[size_train:,:]

关于python - 如何在模型中实现 t-SNE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52849890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com