用于预测的 tsne

数据挖掘 预测建模 预言 主成分分析 特纳
2021-09-23 15:06:20

我有一个传统的预测设置,有一个训练数据集train和一个测试数据集test我不知道这组的y结果test

我发现 tsne 很好地分离了我的二进制分类设置。但是,tsne 不能真正用于预测,就像predict(tsne, newdata=test)PCA 可以做的那样。

这里最好的方法是什么?

我应该结合我的traintest设置(即,rbind)并在整个数据集上运行 tsne 吗?

3个回答

您可以尝试对组合的测试和训练数据执行 t-SNE,然后根据 k-NN 与 t-SNE 坐标中的训练数据。

但是,我不相信 t-SNE 有任何保证,因此您可能需要寻找另一种方法。我关于使用可能性的问题k-NN 与 t-SNE 在这里

t-SNE 并不是这样设计的。由于 t-SNE 是非参数的,因此没有将数据从输入空间映射到映射的函数。标准方法通常是训练多元回归以根据输入数据预测地图位置。您可以在这篇论文t-SNE中了解更多相关信息。在论文中你应该注意到作者采用了直接最小化 t-SNE 损失的方法。

这是一种方法:

  1. 使用 t-SNE 模型获得训练数据的低维嵌入。
  2. 训练神经网络或任何其他非线性方法,以预测数据点的 t-SNE 嵌入。这本质上是一个回归问题。
  3. 使用步骤 2 中训练的模型首先预测测试数据点的 t-SNE 嵌入,然后使用 kNN 将其分配给一个类。

这可确保您的训练集和测试集之间没有数据泄漏。我相信这种方法是一种将 t-SNE 带入二元分类图的 hacky 方式。

请注意,t-SNE 主要用于高维数据点的可视化,而不是为分类模型提取好的特征。您可以使用 t-SNE 可视化观察到类之间的明显分离这一事实意味着可以使用非线性分类算法轻松地将数据建模为二进制分类任务。

如果我是你,我会考虑使用 ELM、带有非线性内核的 SVM 或带有正则化的旧式 Logistic 回归。