本文主要是介绍降维算法 t-SNE和UMAP的python实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
from sklearn import manifold# t-SNE 倾向于保存局部特征,训练较慢for i in range(listLength):my_value[i] = np.array(my_value[i]).reshape(-1, 64)tsne = manifold.TSNE(n_components=2, init='pca', random_state=501)X_tsne = tsne.fit_transform(my_value[i])x_min, x_max = X_tsne.min(0), X_tsne.max(0)X_norm = (X_tsne - x_min) / (x_max - x_min) # 归一化data[i] = X_norm
t-SNE的参数:
n_components:int,可选(默认值:2)嵌入式空间的维度。
init:字符串,可选(默认值:“random”)嵌入的初始化。可能的选项是“随机”和“pca”。 PCA初始化不能用于预先计算的距离,并且通常比随机初始化更全局稳定。
random_state:int或RandomState实例或None(默认)
import umap # umap 一致的流形逼近和投影以进行降维,类似但优于t-SNE,可用于可视化,但也可用于一般的非线性降维。for i in range(listLength):my_value[i] = np.array(my_value[i]).reshape(-1, 64)reducer = umap.UMAP(random_state=42) # 使用umap降至二维embedding = reducer.transform(my_value[i])data[i] = embedding
这篇关于降维算法 t-SNE和UMAP的python实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!