NoL*_*Man 7 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' object has no attribute 'transform'
任何帮助将不胜感激。(我知道我可以做fit_transform,但我不会在 x_test 上得到同样的错误吗?)
正如接受的答案所说,没有单独的转换方法,并且它可能无法在训练/测试设置中工作。
但是,您仍然可以使用 TSNE,而不会泄露信息。
计算训练集上每条记录的 TSNE,并将其用作分类算法中的特征。
附加您的训练和测试数据并对 TSNE 进行 fit_transform。现在继续处理您的测试集,使用 TSNE 作为这些记录的功能。
这是否会导致信息泄露?不。
新记录以图像或表格行等形式到达。
将新行添加到训练表中,计算 TSNE(即新样本相对于训练样本在空间中的位置)。执行任何其他处理并针对该行运行您的预测。
效果很好。有时,由于 Kaggle 等原因,我们过于担心训练/测试分离。但主要的是你的方法是否可以在推理时复制,并具有与实际使用相同的预期精度。在这种情况下,是的,可以!
唯一的缺点是您需要在推理时提供训练数据库,并且根据大小,预处理可能会很昂贵。
| 归档时间: |
|
| 查看次数: |
3143 次 |
| 最近记录: |