网易首页 > 网易号 > 正文 申请入驻

t-SNE:可视化效果最好的降维算法

0
分享至

降维

1D,2D和3D数据可以可视化。但是在数据科学领域并不总是能够处理一个小于或等于3维的数据集,我们肯定会遇到使用高维数据的情况。对于数据科学专业人员来说,有必要对工作数据进行可视化和深入了解,以便更好地完成工作,我们可以使用降维技术

降维技术的另一个最受欢迎的用例是在训练ML模型时降低计算复杂度。通过使用降维技术,数据集的大小已经缩小,与此同时,有关原始数据的信息也已应用于低维数据。因此,机器学习算法从输入数据集中学习既简单又省时。

PCA-主成分分析是降维领域最主要的算法。它最初是由皮尔逊(Pearson)在1901年开发的,许多人对此做了即兴创作。即使PCA是一种广泛使用的技术,但它的主要缺点是无法维护数据集的局部结构。为了解决这个问题,t-SNE出现了。

什么是t-SNE?

t-SNE的主要用途是可视化和探索高维数据。 它由Laurens van der Maatens和Geoffrey Hinton在JMLR第九卷(2008年)中开发并出版。 t-SNE的主要目标是将多维数据集转换为低维数据集。 相对于其他的降维算法,对于数据可视化而言t-SNE的效果最好。 如果我们将t-SNE应用于n维数据,它将智能地将n维数据映射到3d甚至2d数据,并且原始数据的相对相似性非常好。与PCA一样,t-SNE不是线性降维技术,它遵循非线性,这是它可以捕获高维数据的复杂流形结构的主要原因。

t-SNE工作原理

首先,它将通过选择一个随机数据点并计算与其他数据点(|x—x|)的欧几里得距离来创建概率分布。 从所选数据点附近的数据点将获得更多的相似度值,而距离与所选数据点较远的数据点将获得较少的相似度值。 使用相似度值,它将为每个数据点创建相似度矩阵(S1)。

因为不可能将超过3维的数据集可视化,所以为了举例的目的,我们假设上面的图是多维数据的可视化表示。

这里需要说明的是:相邻指的是与每个点最接近的点的集合。

由上图可知,我们可以说X1的邻域 N(X1)= {X2, X3, X4, X5, X6},这意味着X2,X3,X4,X5和X6是X1的邻居。 它将在相似度矩阵“ S1”中获得更高的价值。 这是通过计算与其他数据点的欧几里得距离来计算的。

另一方面,X20远离X1。 这样它将在S1中获得较低的值。

其次,它将根据正态分布将计算出的相似距离转换为联合概率。

通过以上的计算,t-SNE将所有数据点随机排列在所需的较低维度上。

t-SNE将再次对高维数据点和随机排列的低维数据点进行所有相同的计算。 但是在这一步中,它根据t分布分配概率。 这就是名称t-SNE的原因。t-SNE中使用t分布的目的是减少拥挤问题(后面与PCA对比可见)。

但是请记住,对于高维数据,该算法根据正态分布分配概率。

t分布→视觉上t分布看起来很像正态分布,但尾部通常更胖,这意味着数据的可变性更高。

对于较低维的数据点,还将创建一个相似度矩阵(S2)。然后该算法将S1与S2进行比较,并通过处理一些复杂的数学运算来使S1与S2之间有所不同。包括使用两个分布之间的Kullback Leibler散度(KL散度)作为损失函数运行梯度下降算法。使用KL散度通过将两个分布之间相对于数据点位置的值最小化,帮助t-SNE保留数据的局部结构。

在统计学中,Kullback-Leibler散度是对一个概率分布与另一个概率分布如何不同的度量。梯度下降算法是各种机器学习算法中用于最小化损失函数的一种优化算法。

最后,该算法能够得到与原始高维数据相对相似度较好的低维数据点。我们可以使用sklearn.manifold.TSNE()实现t-SNE算法

要点

· t-SNE算法具有扩展密集簇并缩小稀疏簇的特点。

· t-SNE不会保留群集之间的距离。

· t-SNE是一种不确定性算法或随机算法,这就是为什么每次运行结果都会略有变化的原因。

· 即使它不能在每次运行中保留方差,也可以使用超参数调整来保留每个类之间的距离。

· 该算法涉及许多计算和计算。 因此,该算法需要大量时间和空间来计算。

· 困惑度(perplexity)是控制数据点是否适合算法的主要参数。 推荐范围是(5–50)。

· 困惑度应始终小于数据点的数量。

· 低困惑度→关心本地结构,并关注最接近的数据点。

· 高度困惑→关心全局结构。

· t-SNE可以巧妙地处理异常值。

简单的实现

我们使用kaggle的一个数据集:确定是有毒还是可食用是蘑菇的分类问题 https://www.kaggle.com/uciml/mushroom-classification

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df= pd.read_csv(‘Downloads/mushrooms.csv’)
df.head()

X = df.drop(‘class’, axis=1)
y = df[‘class’]
y = y.map({‘p’: ‘Posionous’, ‘e’: ‘Edible’})
cat_cols= X.select_dtypes(include=’object’).columns.tolist()
for col in cat_cols:
print (f” col name : {col}, N Unique : {X[col].nunique()}”)

for col in cat_cols:
X[col]=X[col].astype(“category”)
X[col]=X[col].cat.codes
X.head()

使用PCA的降维可视化

from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
X_std = StandardScaler().fit_transform(X)
X_pca = PCA(n_components=2).fit_transform(X_std)
X_pca = np.vstack((X_pca.T, y)).T
df_pca = pd.DataFrame(X_pca, columns=[‘1st_Component’,‘2n_Component’, ’class’])
df_pca.head()

plt.figure(figsize=(8, 8))
sns.scatterplot(data=df_pca, hue=’class’, x=’1st_Component’, y=’2nd_Component’)
plt.show()

t-SNE降维可视化

from sklearn.manifold import TSNE
tsne = TSNE(n_components=2)
X_tsne = tsne.fit_transform(X_std)
X_tsne_data = np.vstack((X_tsne.T, y)).T
df_tsne = pd.DataFrame(X_tsne_data, columns=[‘Dim1’, ‘Dim2’, ‘class’])
df_tsne.head()

plt.figure(figsize=(8, 8))
sns.scatterplot(data=df_tsne, hue=’class’, x=’Dim1', y=’Dim2')
plt.show()

PCA vs t-SNE

根据以上分类结果,可以说与PCA的性能相比,t-SNE的表现要好。

t-SNE算法将有毒和可食用蘑菇聚类,没有任何重叠

PCA无法将蘑菇分类完美。

要知道在哪里可以得到稳定的形状,我们应该使用困惑度和n_iter参数。

在困惑度= 30且n_iter = 5000之后,聚簇形状变得稳定。

总结

与PCA不同,t-SNE可以更好地应用于线性和非线性良好聚类的数据集,并产生更有意义的聚类。尽管t-SNE在可视化分离良好的群集方面非常出色,但大多数情况下它无法保留数据的整体几何形状。

作者:Ramakrishnan Thiyagu

deephub翻译组

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
华为享界正式发布:对标宝马7系 今年夏天上市

华为享界正式发布:对标宝马7系 今年夏天上市

贝壳财经
2024-04-23 16:27:08
田曦薇 薄点泳装 童颜巨乳

田曦薇 薄点泳装 童颜巨乳

室内设计师阿喇
2024-04-24 13:29:24
沉默了两天后,普京表示:俄罗斯的核武库比美国先进得多!

沉默了两天后,普京表示:俄罗斯的核武库比美国先进得多!

娱宙观
2024-04-23 20:45:46
美国做了中国想做做不到的事情

美国做了中国想做做不到的事情

求实处
2024-04-24 01:45:41
沃尔沃为什么成了吉利的包袱?

沃尔沃为什么成了吉利的包袱?

娱乐资本论
2024-04-23 22:46:02
普通人天花板的3款车,拥有其中一辆就已经超越90%以上的人了!

普通人天花板的3款车,拥有其中一辆就已经超越90%以上的人了!

户外小阿隋
2024-04-24 20:28:34
德国车在中国持续崩溃,德媒:许多中国年轻人拒绝西方产品

德国车在中国持续崩溃,德媒:许多中国年轻人拒绝西方产品

青木在德国
2024-04-23 21:17:04
32岁女人心里话:被好朋友灌醉后,才发现男女之间没有单纯的友谊

32岁女人心里话:被好朋友灌醉后,才发现男女之间没有单纯的友谊

混音情感
2024-04-23 22:22:39
大瓜!台媒爆料!大S昨日复出录节目却直接晕倒,场面非常紧张!

大瓜!台媒爆料!大S昨日复出录节目却直接晕倒,场面非常紧张!

娱乐的小灶
2024-04-24 11:05:33
加沙收官之战开始,世界面临一道选择题

加沙收官之战开始,世界面临一道选择题

西楼饮月
2024-04-23 15:09:03
41岁田馥甄无滤镜下,发腮、法令纹严重,却还在穿粉色“扮嫩”!

41岁田馥甄无滤镜下,发腮、法令纹严重,却还在穿粉色“扮嫩”!

白宸侃片
2024-04-24 01:25:50
井冈山会师背后的故事:朱毛的矛盾已经不可调和,必须有人要离开

井冈山会师背后的故事:朱毛的矛盾已经不可调和,必须有人要离开

拙言问史
2024-04-23 00:12:02
未成年女孩被妈妈前男友性侵并拍摄视频、照片,被告人获刑16年

未成年女孩被妈妈前男友性侵并拍摄视频、照片,被告人获刑16年

澎湃新闻
2024-04-24 19:16:28
欧洲议会以压倒多数通过禁止使用强迫劳动产品法规

欧洲议会以压倒多数通过禁止使用强迫劳动产品法规

周观环宇
2024-04-24 04:41:06
尴尬25分惨败,12分完败!丑陋的争冠豪门,连重建的资格都没了

尴尬25分惨败,12分完败!丑陋的争冠豪门,连重建的资格都没了

老梁体育漫谈
2024-04-24 23:19:10
周琦禁赛追罚!广东男篮发声,21岁小将增援杜锋,王博高兴太早了

周琦禁赛追罚!广东男篮发声,21岁小将增援杜锋,王博高兴太早了

体育咆哮君
2024-04-24 22:31:45
南海爆发激烈对峙,美航母冲向黄岩岛,中方舰队逼美航母紧急调头

南海爆发激烈对峙,美航母冲向黄岩岛,中方舰队逼美航母紧急调头

绝对军评
2024-04-23 15:09:35
A股:做好准备吧,明天(4月25日)周四不出意外,市场或将这么走

A股:做好准备吧,明天(4月25日)周四不出意外,市场或将这么走

彩云的夕阳
2024-04-24 16:49:12
惠州楼市全军覆没,惠州惠城区房价从13000元降至11000元楼市分析

惠州楼市全军覆没,惠州惠城区房价从13000元降至11000元楼市分析

有事问彭叔
2024-04-24 15:49:42
均价破万!AI让PC快成了奢侈品

均价破万!AI让PC快成了奢侈品

快科技
2024-04-24 18:40:31
2024-04-24 23:32:49
deephub
deephub
CV NLP和数据挖掘知识
1321文章数 1412关注度
往期回顾 全部

科技要闻

特斯拉被爆大量毁约应届生 友商"在线抢人"

头条要闻

欧盟启动对中国医疗器械采购的市场准入调查 中方回应

头条要闻

欧盟启动对中国医疗器械采购的市场准入调查 中方回应

体育要闻

足智多谋的哈姆,温水里的青蛙

娱乐要闻

方媛带两女儿参加婚礼,当花童超可爱

财经要闻

居民气价确实在涨,多地正普遍发生

汽车要闻

这灯效我能看半小时 奥迪Q6L e-tron有备而来

态度原创

时尚
家居
游戏
亲子
军事航空

有品味的中年女人,穿裙子都不露大腿、不配黑丝,看孟晚舟就知道

家居要闻

光影之间 空间暖意打造生活律动

《星刃》战斗灵感来自于《战神》《只狼》《鬼泣》等

亲子要闻

元元说:妈妈我来教彤彤,你去做饭吧!

军事要闻

时隔5年土耳其或首部署俄制防空系统

无障碍浏览 进入关怀版