tsu*_*ina 2 python classification machine-learning scikit-learn
我将数据拆分为训练/测试。当我使用 PCA 时,它是直截了当的。
from sklearn.decomposition import PCA
pca = PCA()
X_train_pca = pca.fit_transform(X_train)
X_test_pca = pca.transform(X_test)
Run Code Online (Sandbox Code Playgroud)
从这里我可以在下一步中使用 X_train_pca 和 X_test_pca 等等..
但是当我使用 t-SNE
from sklearn.manifold import TSNE
X_train_tsne = TSNE(n_components=2, random_state=0).fit_transform(X_train)
Run Code Online (Sandbox Code Playgroud)
我似乎无法转换测试集,以便我可以将 t-SNE 数据用于下一步,例如 SVM。
有什么帮助吗?
我相信你想要做的事情是不可能的。
t-SNE 进行投影,尝试在您拟合的样本之间保持成对距离。因此,您不能在不进行改装的情况下使用 t-SNE 模型来预测对新数据的预测。
另一方面,我不会将 t-SNE 的输出作为分类器的输入。主要是因为 t-SNE 是高度非线性的并且有点随机,并且根据不同的运行和不同的困惑度,您可以获得非常不同的输出。
请参阅此对 t-SNE 的解释。
但是,如果您真的为此目的使用 t-SNE,则必须在整个数据上拟合 t-SNE 模型,一旦拟合,您就可以进行训练和测试拆分。
from sklearn.manifold import TSNE
size_train = X_train.shape[0]
X = np.vstack((X_train,X_test))
X_tsne = TSNE(n_components=2, random_state=0).fit_transform( X )
X_train_tsne = X_tsne[0:size_train,:]
X_test_tsne = X_tsne[size_train:,:]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3149 次 |
最近记录: |