-SNE是一种非线性降维技术,其核心思想是将高维数据映射到低维空间,同时尽量保持数据点之间的相似性关系。
t-SNE在数据可视化和探索中非常有用,可以帮助我们发现数据中的聚类、结构和异常值。
主要原理包括:
相似度度量:t-SNE使用高维数据中数据点之间的相似性度量,通常是高斯分布的概率密度函数。较相似的数据点将具有较高的概率值,而不相似的数据点将具有较低的概率值。
低维映射:t-SNE创建一个低维嵌入,将高维数据映射到低维空间。该映射的目标是最小化高维空间中数据点对的相似性概率与低维空间中数据点对的相似性概率之间的差异。
t分布:t-SNE使用t分布(t-distribution)来表示相似性概率。t分布具有长尾(fat-tailed)性质,这使得在低维空间中相似的数据点之间有更大的距离,从而有助于保持聚类。
使用Python和Scikit-Learn库来进行t-SNE降维和可视化。
使用Iris鸢尾花数据集,该数据集包含了三个不同种类的鸢尾花的特征。
导入所需的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.manifold import TSNE
加载Iris数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
使用t-SNE进行降维
tsne = TSNE(n_components=2,