python tsne.transform 不存在?

标签 python machine-learning

我正在尝试使用 tsne 转换两个数据集: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”对象没有属性“transform”

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

最佳答案

sklearn的文档来看,TSNE根本就没有任何变换方法。

enter image description here

此外,TSNE 是一种用于降维/可视化的无监督方法,因此它实际上不能与 TRAIN 和 TEST 一起使用。您只需获取所有数据并使用 fit_transform 进行转换并绘制它。

编辑 - 实际上不可能学习转换并在不同的数据上重用它(即训练和测试),因为 T-sne 不会学习较低维空间上的映射函数,而是在子空间上运行迭代过程以找到一个平衡点,最大限度地减少某些数据的损失/距离。

因此,如果您想要预处理并降低训练数据集和测试数据集的维数,最好的方法是 PCA/SVD 或自动编码器。 T-Sne 只会帮助您完成无人监督的任务:)

关于python tsne.transform 不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59214232/

相关文章:

python - Sklearn 指标值与 Keras 值有很大不同

r - 使用 r 执行 PCA

python - 如何获取多类别的所有混淆矩阵术语(TPR、FPR、TNR、FNR)?

machine-learning - 交叉熵和对数损失误差有什么区别?

python - pygame 不在 Python 3.6.4 中导入

python - python 的诅咒。将 ansi 颜色代码从标准输入转换为 curses 输出

python - 根据另一个系列中的值替换系列中的值的快捷方式?

python - 列切片和行切片之间哪个是哪个?

Python - 如何从输入文本文件中仅编写以 $ 开头的 case 语句和实例?

machine-learning - 可能性是针对整个训练集还是单个示例计算的?