python tsne.transform does not exist?

我试图使用t-SNE转换两个数据集:x_train和x_test。我认为方法是先用x_train拟合t-SNE,然后转换x_test和x_train。但是,我无法转换任何数据集。

tsne = TSNE(random_state = 420, n_components=2, verbose=1, perplexity=5, n_iter=350).fit(x_train)

我认为t-SNE已经拟合了x_train。

但是,当我这样做时:

x_train_tse = tsne.transform(x_subset)

我得到的是:

AttributeError: 'TSNE' object has no attribute 'transform'

任何帮助都将不胜感激。(我知道我可以使用fit_transform,但在x_test上不是也会得到同样的错误吗?)


回答:

根据sklearn的文档,t-SNE根本没有transform方法。

enter image description here

此外,t-SNE是一种无监督的降维/可视化方法,因此它并不适用于训练集和测试集的划分。你只需使用所有数据并使用fit_transform来进行转换并绘图。

编辑 – 实际上,无法学习一种转换并在不同的数据(即训练集和测试集)上重用,因为t-SNE不是在低维空间中学习一个映射函数,而是对子空间运行一个迭代过程,以找到在某些数据上最小化损失/距离的平衡状态。

因此,如果你想预处理并降低训练集和测试集的维度,合适的方法是PCA/SVD或自编码器。t-SNE只适用于无监督任务 🙂

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注