我正在尝试转换两个数据集: x_train和x_test。我认为这样做的方法是将tsne与x_train相匹配,然后转换x_test和x_train。但是,我无法转换任何数据集。
tsne = TSNE(random_state = 420, n_components=2, verbose=1, perplexity=5, n_iter=350).fit(x_train)
我想tsne已经安装在x_train上了。
但是,当我这么做的时候
x_train_tse = tsne.transform(x_subset)
我得到:
AttributeError: 'TSNE' object has no attribute 'transform'
任何帮助都将不胜感激。(我知道我可以做fit_transform,但我不会在x_test上得到同样的错误吗?)
发布于 2019-12-06 14:51:47
这是TSNE在sklearn中的一个独特之处:https://github.com/scikit-learn/scikit-learn/issues/5361
发布于 2020-05-04 22:24:42
TSNE算法不学习变换函数,它直接优化低维点的位置,因此.transform()的思想不适用于TSNE。一种选择是通过TSNE嵌入一组数据,然后使用某种类型的监督回归(例如线性回归)来逼近转换,以便应用于未来的数据。
https://datascience.stackexchange.com/questions/64332
复制相似问题