我尝试在scikit-learn中使用t-SNE算法:
import numpy as np
from sklearn.manifold import TSNE
X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
model = TSNE(n_components=2, random_state=0)
np.set_printoptions(suppress=True)
model.fit_transform(X)
输出:
array([[ 0.00017599, 0.00003993], #1
[ 0.00009891, 0.00021913],
[ 0.00018554, -0.00009357],
[ 0.00009528, -0.00001407]]) #2
之后,我尝试将一些坐标与第一个数组X
完全相同的点添加到现有模型中:
Y = np.array([[0, 0, 0], [1, 1, 1]])
model.fit_transform(Y)
输出:
array([[ 0.00017882, 0.00004002], #1
[ 0.00009546, 0.00022409]]) #2
但是第二个数组中的coords不等于第一个数组中的第一个和最后一个coords。
我知道这是正确的行为,但如何向model
添加新的坐标并在输出数组中为输入数组中的相同坐标获取相同的坐标?
此外,即使追加新积分,我仍需要获得最接近的积分。