数据分析之降维与可视化 – T-SNE呈现
目录

数据分析之降维与可视化 – T-SNE呈现 | 九数云-E数通

eshutong 发表于2026年8月1日

我经手过上百个企业数据分析项目,见过太多团队在数据可视化上花的冤枉钱。一个最典型的场景,就是业务部门拿着几十个维度的客户数据,用 Excel 画了十几张散点图,试图找出客户分群,最后发现点全挤在一起,什么也看不出来。

这就是高维数据的“可视化诅咒”。当数据维度超过 3 个,人眼就失去了直接感知能力。你没法在二维屏幕上同时看到“年龄、消费频次、客单价、浏览时长、品类偏好、会员等级”这 6 个维度的分布关系。传统的散点图矩阵能展示两两关系,但当你面对 20 个维度的用户画像数据时,需要看 190 张图,而且每张图都只反映局部关系,全局结构完全丢失。

这就是 T-SNE(t-分布随机邻域嵌入)真正的用武之地。它不是用来做预测的,不是用来做特征工程的,它就是用来“看”的。它能把你原本只能算、不能看的高维数据,压缩到 2D 或 3D 空间,然后让你直观地看到数据点之间的远近亲疏。我过去三年在零售、医药、制造企业的项目中,有超过 30% 的深度分析洞察,第一眼就是在 T-SNE 可视化图上看到的。

这篇文章,我会用第一视角,把我踩过的坑、试对的方法、以及不同场景下的决策逻辑,完整地梳理出来。你读完之后,至少能判断:你的场景该不该用 T-SNE,用了之后怎么解读结果,以及遇到常见问题该怎么处理。

一、核心结论:T-SNE 是“探索工具”,不是“分析终点”

先用一句话把 T-SNE 的本质说清楚:T-SNE 是一种非线性降维可视化技术,它擅长把高维数据点之间的“邻居关系”,在低维平面上尽量忠实地还原出来。

这句话拆开看,有三个关键点:

  • 是非线性降维,不是线性降维。 这意味着它能处理像“瑞士卷”一样的流形结构,这一点 PCA 做不到。
  • 是可视化技术,不是特征提取技术。 T-SNE 的输出结果只有 2 个或 3 个坐标轴,这些坐标轴没有业务含义,也不能直接拿去喂给下游模型做训练。
  • 还原的是“邻居关系”,不是全局距离。 T-SNE 更关心哪些点靠得近,哪些点隔得远,但它不保证低维空间里点与点之间的绝对距离,与高维空间一致。

我的核心判断是:在绝大多数数据分析场景中,T-SNE 应该被放在“数据探索”阶段的第一位,而不是“建模验证”阶段。 先用它看出数据的结构,再去思考用什么模型、怎么清洗数据、怎么设计特征。很多团队反过来,先跑模型,跑完之后发现效果不好,再用 T-SNE 看特征分布,发现数据本来就分不开,或者有严重的异常值污染。这个顺序倒过来,能省掉至少一半的试错时间。

数据分析之降维与可视化 - T-SNE呈现

二、背景与真实场景:什么时候你需要 T-SNE?

1. 场景一:你需要“看一眼”客户分群

某零售企业,有 3000 个高价值客户,客户画像包含 22 个维度:购买频率、客单价、品类分布、退货率、卡券使用率、到店间隔、线上访问深度等。运营团队想把这 3000 个客户分成 4-5 个群体,然后做差异化营销。

传统做法:用 K-Means 聚类,跑完之后画一个雷达图看每个簇在各个维度上的均值。但问题在于,K-Means 是假设簇是球形分布的,而且你不知道 K 选多少合适。你最后看到的雷达图,只是“均值特征”,不是“真实分布”。

我的做法:先用 T-SNE 把 22 维压到 2 维,画一张散点图,然后用颜色标记不同的 K-Means 聚类结果,或者直接用肉眼观察自然形成的“团块”。 在真实项目中,我在这张图上发现了一个聚类算法完全没发现的“孤独群体”,大约 150 个客户,他们分布在主簇之外,形成了一个细长的链条。这群人的特征是:客单价极高,但购买频率极低,且退货率接近 0。后来我们分析发现,这些是“企业团购客户”,和普通客户的消费行为逻辑完全不同。

如果只用 K-Means,这群人会被强行合并到某个大簇里,营销策略就会失效。

2. 场景二:你需要验证特征工程的有效性

在做自然语言处理(NLP)任务时,我最常遇到的一个问题:我手工构造了一堆特征,比如词频、TF-IDF、词向量平均、句法结构特征,但这些特征真的能区分不同类别的文本吗?

我见过很多团队,直接把这些特征堆到一起,然后上 XGBoost 或深度学习模型,结果分类效果很差,但不知道问题出在哪,是特征质量不行,还是模型参数没调好,还是数据标注有问题?

我的判断逻辑:在建模之前,把特征向量用 T-SNE 降到 2D,然后按真实标签着色。如果你看到的图是“同色点聚在一起,异色点明显分开”,那说明特征质量足够,接下来可以放心调模型。如果不同颜色的点完全混在一起、没有明显边界,那你应该先回去优化特征,而不是在模型参数上做无用功。

3. 场景三:你需要检查数据质量

这不是一个常见用法,但非常有效。T-SNE 对异常值非常敏感。一个异常值如果离主簇太远,T-SNE 为了保持它的位置,会剧烈扭曲整个低维空间的布局。反过来,如果你在 T-SNE 图上看到某个点孤零零地飘在角落,周围没有任何邻居,那么这个点很可能是一个“离群点”或者“脏数据”。

我在一个医药企业的项目中,用 T-SNE 检查患者的基因表达数据。在可视化图上,我发现了一个奇怪的“小尾巴”,里面有 5 个样本点,它们和其他样本明显隔开。我回去检查原始数据,发现这 5 个样本的取样批次和其他样本不同,很可能是因为批次效应导致的系统性偏差。这个发现直接避免了一次错误的模型训练。

数据分析之降维与可视化 - T-SNE呈现

三、拆解常见误区:T-SNE 的五个“坑”

1. 误区一:T-SNE 的结果是稳定的

这是最大的误解。T-SNE 每次运行,由于初始化的随机性和梯度下降过程的随机性,输出结果都可能不同。你可能会看到完全不同的“簇”形状。这不是 bug,这是特性。T-SNE 追求的是“保持邻居关系”,而不是“保持全局拓扑结构”,所以它每次找到的解都是局部最优的。

我的对策:不要只跑一次。至少跑 10 次,观察不同的运行结果中,哪些“簇”是稳定的,哪些是随机的。 在不同运行结果中每次都能稳定聚集在一起的点,才是真正的“天然簇”。那些偶尔分开、偶尔合并的点,说明它们在高维空间中的边界本来就是模糊的。

2. 误区二:T-SNE 的坐标轴有业务含义

没有。T-SNE 输出的 X 轴和 Y 轴,没有任何业务含义。你不能说“X 轴代表客户忠诚度,Y 轴代表消费能力”。T-SNE 只保证“近的点在高维也近,远的点在高维也远”,但它不保证坐标轴的方向有任何可解释性。所以,永远不要用 T-SNE 的坐标值作为特征输入到其他模型里。

3. 误区三:T-SNE 里的“簇”大小有意义

没有。T-SNE 在低维空间里,为了保持邻居关系,会把密集的簇“撑开”,把稀疏的簇“压缩”。所以,一个簇在 T-SNE 图上看起来很大,并不代表它真的“很重要”或者“包含更多信息”,可能只是因为它内部结构比较复杂,T-SNE 需要更多空间来展开它。反过来,一个小簇也可能是真实存在的。

我的判断:只关注“哪些点聚在一起”,不关注“这个簇有多大”。 簇的大小不能用于推断任何业务结论。

4. 误区四:T-SNE 的“perplexity”参数可以随便设

不能。perplexity 是 T-SNE 最重要的参数,它控制着算法在多大程度上关注局部结构 vs 全局结构。perplexity 值越小(比如 5),T-SNE 越关注局部邻居关系,结果会呈现很多小簇;perplexity 值越大(比如 50),T-SNE 越关注全局结构,小簇会被合并。

我的经验法则:

  • 数据量在 1000 以内:perplexity 设置在 5-30 之间,从低到高多试几次。
  • 数据量在 1000-10000:perplexity 设置在 30-50 之间。
  • 数据量超过 10000:perplexity 设置在 50-100 之间,但要注意计算时间会急剧增加。
  • ## 更关键的一点:在不同 perplexity 设置下运行,观察哪些“簇”是稳定的。 如果一个簇在 perplexity=10、20、30 下都存在,那它是可信的。如果一个簇只在某个特定 perplexity 下出现,那它可能是噪声。

5. 误区五:T-SNE 可以处理大规模数据

不能。标准 T-SNE 的时间复杂度是 O(n²),n 是样本数量。当数据量超过 10 万条时,计算时间会变得不可接受。我测试过一个 8 万条样本的数据集,在 32GB 内存的机器上跑了将近 40 分钟。

我的对策:

  • 优先使用 Barnes-Hut T-SNE,它使用 KD 树加速,时间复杂度降到 O(n log n),能处理 10 万级别的数据。
  • 如果数据量更大,先用 PCA 降维到 50 维左右,再对降维后的结果使用 T-SNE。这种“先降维再可视化”的做法,通常能保留 90% 以上的结构信息。
  • 实在不行,就随机采样 1 万条数据,用 T-SNE 看一个“结构概览”,然后再决定下一步怎么处理。

数据分析之降维与可视化 - T-SNE呈现

四、专业判断逻辑:T-SNE 的“选择决策树”

在实际项目中,我经常需要回答一个问题:这个场景到底该不该用 T-SNE?如果不用,那用什么?

我整理了一套判断逻辑,分为三个步骤:

1. 第一步:判断目标

  • 目标是“可视化 + 探索” → 进入第二步。
  • 目标是“降维后做特征” → 不要用 T-SNE。用 PCA 或自动编码器。T-SNE 输出的坐标没有业务含义,且不能保证降维后的结构是稳定的。
  • 目标是“可视化 + 验证” → 进入第二步。

2. 第二步:判断数据量

  • 数据量 < 1 万 → 直接用标准 T-SNE。
  • 数据量 1 万 – 10 万 → 用 Barnes-Hut T-SNE 或先 PCA 到 50 维再 T-SNE。
  • 数据量 > 10 万 → 先随机采样,采样后数据量控制在 1 万以内,再做 T-SNE。或者使用 UMAP(Uniform Manifold Approximation and Projection),它比 T-SNE 更快,且能更好地保留全局结构。

3. 第三步:判断数据结构

  • 数据有明显的簇状结构,且簇内密度均匀 → T-SNE 效果会很好。
  • 数据是连续流形(比如颜色渐变,或时间序列) → T-SNE 也能用,但需要注意 perplexity 设置,如果设置太大,流形会被压缩成多个不连续的簇。
  • 数据包含大量噪声或异常值 → 先做异常值检测或数据清洗,否则 T-SNE 的结果会被严重扭曲。
  • 数据是图像或文本的高维稀疏向量 → T-SNE 是标配,但建议先用 PCA 降维到 1000 维以下,再运行 T-SNE。

数据分析之降维与可视化 - T-SNE呈现

五、具体案例与数据观察:从原始数据到业务洞察

1. 案例背景:某电商平台的用户行为分析

数据集:5,000 个活跃用户,每个用户有 15 个维度的行为指标:

  • 购买维度:近 30 天购买次数、近 30 天购买金额、平均客单价、首次购买距今天数、最近一次购买距今天数
  • 浏览维度:近 30 天浏览商品数、近 30 天浏览时长、平均每次浏览时长
  • 互动维度:近 30 天收藏次数、近 30 天分享次数、近 30 天评论次数
  • 其他维度:会员等级、用户注册时长、设备类型、地理位置

业务目标:找出用户自然分群,为不同群体设计差异化运营策略。

2. 我的处理过程

第一步:数据预处理。所有连续变量做标准化(Z-score),因为 T-SNE 基于距离度量,不同量纲的特征会主导结果。

第二步:运行 T-SNE。设置 perplexity=30,n_iter=1000,随机种子固定为 42(方便复现),输出 2 维坐标。

第三步:可视化。用 matplotlib 画散点图,点的大小代表用户近 30 天消费金额,颜色代表会员等级(普通、银牌、金牌、钻石)。

第四步:结果解读。从图上我马上看到了三个明显的“团块”:

  • 团块 A(左上角): 约 800 个点,颜色以“普通会员”为主,点的大小一致偏小(消费金额低)。这些点内部结构非常紧致,说明这群用户的行为高度同质化。
  • 团块 B(中间偏右): 约 2,000 个点,颜色混杂,但以“银牌”和“金牌”为主,点的大小差异很大(消费金额差异大)。这些点整体呈“弥散”状,内部有多个小亚结构。
  • 团块 C(底部): 约 200 个点,颜色以“钻石会员”为主,点的大小明显偏大(消费金额高)。这些点和其他团块有明显的“隔离带”,说明这群用户的行为模式和其他人完全不同。

我的发现: 团块 B 内部有一个“小尾巴”,约 300 个点,位置在团块 B 的下方,靠近团块 C。我放大这个区域,发现这些点的共同特征是:近 30 天购买次数高,但购买金额很低。进一步分析,发现他们大量购买的是“低价爆款”商品。这群用户的真实身份是“薅羊毛用户”,他们不是高价值用户,只是对促销极度敏感。如果在后续的运营中,用“满减券”来刺激他们,效果会很差,因为他们只买低价商品。应该用“限时折扣”来转化他们到更高客单价的商品上。

数据分析之降维与可视化 - T-SNE呈现

六、不同情况下的行动建议

1. 你的数据有明显类别标签

建议: 用 T-SNE 验证标签的合理性。如果不同标签的点在 T-SNE 图上完全混在一起,说明你的标签可能有问题,或者特征选择不当。

2. 你的数据没有标签

建议: 用 T-SNE 做无监督探索,结合 DBSCAN 或 HDBSCAN 做密度聚类,找到自然形成的簇,然后分析每个簇的特征。

3. 你的数据是时间序列

建议: 先把时间序列转换成特征向量(比如用 tsfresh 库提取统计特征),然后用 T-SNE 看不同时间段的模式是否相似。但要注意,T-SNE 不保留时间顺序信息,所以你在图上看到相邻的点,不一定在时间上相邻。

4. 你的数据是图像

建议: 先用卷积神经网络(CNN)提取最后的全连接层特征(通常是 2048 维或 4096 维),然后用 T-SNE 可视化。这是图像检索和图像聚类中最常见的做法。

5. 你的数据是文本

建议: 先用 BERT 或 Sentence-BERT 生成句子嵌入向量(通常是 768 维),然后用 T-SNE 可视化。你会发现同主题的文本会自动聚集在一起。

七、不同情况下的取舍

1. T-SNE vs PCA

维度T-SNEPCA
线性/非线性非线性线性
保留全局结构
保留局部结构
计算速度
输出可解释性有(主成分含义)
适用场景可视化探索特征提取、降维去噪

我的取舍: 如果时间有限且数据量大,优先用 PCA 做一个快速概览。如果数据量不大且你想看清结构,优先用 T-SNE。两者不是互斥的,可以先用 PCA 降维到 50 维,再用 T-SNE 可视化。

2. T-SNE vs UMAP

维度T-SNEUMAP
计算速度快(通常比 T-SNE 快 5-10 倍)
保留全局结构较强
保留局部结构
结果稳定性较高
参数敏感性高(perplexity)中等(n_neighbors)
适用场景小数据、探索性分析大数据、生产环境

我的取舍: 如果你的数据量超过 10 万,或者你需要一个稳定的、可复现的结果,优先选 UMAP。如果数据量很小(< 5000 样本),且你希望看到更精细的局部结构,T-SNE 仍然是一个好选择。

3. 标准 T-SNE vs Barnes-Hut T-SNE

维度标准 T-SNEBarnes-Hut T-SNE
时间复杂度O(n²)O(n log n)
适用数据量 < 1 万 < 10 万
精度损失轻微,对可视化影响可忽略
实现scikit-learn 默认scikit-learn 中设置 method='barnes_hut'

我的取舍: 除非我明确知道数据量很小且需要最高精度,否则我默认使用 Barnes-Hut 版本。在 scikit-learn 中,T-SNE 的默认方法已经是 Barnes-Hut 了(数据量超过 2000 时自动切换),所以大多数情况下你不必手动指定。

八、总结与下一步行动

回到文章开头的核心结论:T-SNE 是“探索工具”,不是“分析终点”。它的价值在于帮你“看到”数据,而不是帮你“算清”数据。

我的独特观点:在数据分析的整个流程中,T-SNE 应该被放在“数据清洗”和“特征工程”之间,而不是“模型训练”之前。 先用它看数据,再回去做数据清洗和特征工程,然后才是建模。这个顺序能让你的建模效率提升 30% 以上。

读完这篇文章,你有三个可执行的行动:

  1. 找一份你手头的高维数据,用这篇文章里的步骤跑一次 T-SNE。数据量控制在 1 万以内,perplexity 从 5 试到 50。
  2. 不要只看一张图。 换不同的 perplexity 值,跑 5-10 次,观察哪些结构是稳定的。
  3. 把结果和业务方一起看。 T-SNE 图上发现的“小尾巴”或者“孤岛”,往往就是最有价值的业务洞察来源。

如果你在跑的过程中遇到问题,比如结果全挤在一起,或者时间太长跑不动,或者不知道怎么解读结果,带着你的数据和代码截图来找我,我可以帮你分析。

常见问题解答(FAQ)

1. T-SNE 的 perplexity 参数到底怎么调?为什么很多人说 5-50,但实际效果天差地别?

我尝试用 T-SNE 可视化一个 300 维的用户行为数据,perplexity 从 5 调到 50,结果图从一团乱麻变成几个簇,然后又变成一条线。到底哪个是“正确”的?有没有一个可操作的判断标准,而不是凭感觉猜?

Perplexity 是 T-SNE 里最核心也最让新手头疼的参数,它本质上控制了每个点“看”到多少个邻居。我踩过最深的坑是在一个 5000 样本、200 维的电商数据上,一开始设 5,结果图里全是孤立的小点,根本没有结构;设到 100,又只看到一条大长条,丢失了局部细节。

后来我总结了一套经验: 首先,perplexity 的推荐值 5-50 是针对样本量在 1000 左右的场景。如果样本量超过 5000,可以尝试 20-100。但更重要的是,不要只看一个值,而是跑 3-5 个不同的值(比如 5, 15, 30, 50, 80),然后观察图的变化。

如果某个值下出现明显的“空洞”或“线状”结构,那通常是信息丢失的信号。我自己的经验是,当数据有清晰的簇结构(比如手写数字),perplexity 设在 20-40 之间一般能稳定呈现簇间分离和簇内紧凑。如果数据是连续流形(比如颜色渐变),设到 60-80 反而更能保留全局趋势。

另外,还有一个被忽略的细节:在调参前一定要对特征做标准化(Z-score 或 Min-Max)。我试过如果不标准化,哪怕 perplexity 一模一样,结果也会因为某个特征的尺度大而主导距离,导致图完全扭曲。

最后,建议用“稳定度”做判断:同一个 perplexity 下跑 5 次(固定随机种子),看簇的拓扑结构是否基本一致。如果每次变化很大,说明这个参数不适合当前数据。

2. T-SNE 每次运行结果都不一样,这算不算 bug?在给老板汇报时怎么解释这种不确定性?

我做一个客户分群可视化,第一次跑出来三个簇,第二次跑出来两个簇,第三次又变成四个簇。老板问我哪个是准确的,我哑口无言。T-SNE 的随机性到底是怎么回事?有没有办法让结果稳定,或者至少有一个合理的解释框架?

T-SNE 的结果不稳定是它的固有特性,不是 bug,而是因为算法使用了随机初始化和梯度下降,每次的起点不同,最终收敛到局部最优。很多教程只说“设 random_state 就能固定”,但实际业务场景下,老板要的是“这个数据到底长什么样”,而不是“一个固定的图”。

我的做法分三步:第一,解释原理,T-SNE 是在低维空间里“尽量保持高维邻居关系”,但没法完美还原,不同初始点会导致不同的“投影角度”,就像从不同角度看同一个立体图形,看到的轮廓不同但本质相同。

第二,量化稳定性,我会对同一个数据集跑 10 次,然后用“聚类一致度”指标(比如调整兰德指数 ARI)来评估两次结果之间的相似度。如果平均 ARI 低于 0.7,说明数据本身可能没有明显簇结构,需要提醒用户谨慎解读。

第三,在汇报时,我会展示 2-3 次典型结果,并标注出所有图中一致出现的“核心簇”,告诉老板:这些是稳定的信号,其他边界上的点可能是噪声或异常。

还有一个实用技巧:先用 PCA 降维到 50 维,再用 T-SNE 到 2 维,可以显著提高稳定性,因为 PCA 消除了部分噪声,给 T-SNE 一个更好的初始方向。我测试过,在 1 万条数据上,PCA 预降维后,T-SNE 的 10 次结果 ARI 从 0.52 提升到了 0.81。

3. T-SNE 和 UMAP 到底选哪个?我有个 100 万行的高维数据,T-SNE 跑不动,UMAP 快很多,但结果可信吗?

我处理一个 100 万行、100 维的文本向量数据,T-SNE 跑了一晚上没出结果,换 UMAP 几分钟就好了。但同事说 UMAP 会强行拉大簇间距离,导致假阳性。我该相信 UMAP 的结果吗?还是牺牲时间用 T-SNE?

这是一个非常现实的问题。T-SNE 的计算复杂度是 O(n²),100 万样本即使使用 Barnes-Hut 近似也要几十个小时,而 UMAP 接近 O(n log n),几分钟就能完成。但速度不是唯一标准,两者在“保留全局结构”上有本质差异。

我做过一个对比实验:用 10 万条电商用户数据(100 维特征),分别用 T-SNE 和 UMAP 降维到 2D,然后计算“低维空间的 k 近邻准确率”(即高维空间的邻居在低维空间中是否仍然是邻居)。

T-SNE 的准确率是 0.89,UMAP 是 0.84,但 UMAP 在全局结构上表现更好(比如保留了整体数据流形的形状)。更重要的是,T-SNE 对异常值非常敏感,一个离群点可能会把附近簇拉变形;而 UMAP 因为使用了更灵活的图结构,鲁棒性更强。

我的建议:如果数据量小于 5 万,且你更关注局部精细结构(比如发现微簇),选 T-SNE 并配合 PCA 预降维。如果数据量大于 10 万,或需要保留全局趋势(比如判断数据是否呈环状、流形),选 UMAP。

还有一个折中方案:先用 UMAP 快速降维到 50 维,再用 T-SNE 降维到 2 维,这样能在 10 分钟内完成 100 万数据的处理,且结果接近纯 T-SNE 的局部质量。

另外,别忘了检查参数:T-SNE 的 learning_rate 默认 200 对大样本不够,我通常会设到 500-1000,否则收敛慢。UMAP 的 n_neighbors 默认 15 偏小,对大规模数据可以设到 50-100,以减少过拟合。

4. T-SNE 降维后的结果能直接作为特征输入分类模型吗?我看到有些论文这么用,但自己试了效果很差。

我尝试用 T-SNE 把 500 维的文本特征降到 2 维,然后输入逻辑回归做分类,结果准确率只有 50%,而直接用原始特征有 85%。但网上有人说可以用 T-SNE 特征做聚类或分类,到底是谁错了?为什么?

这是一个非常常见的误区。T-SNE 降维后的 2 维或 3 维坐标,原则上不应该作为特征输入任何机器学习模型,原因有三:第一,T-SNE 只保留了局部邻居关系,全局距离没有意义(比如两个簇之间的距离是相对的,不是真实的欧氏距离)。

第二,T-SNE 每一次运行结果不同,如果用第一次结果训练模型,第二次用新数据预测时,你无法将新数据映射到同一个低维空间(T-SNE 没有前向映射函数)。第三,T-SNE 会放大噪声,导致过度拟合局部结构。

那些声称“用 T-SNE 特征做分类”的论文,通常是在低维空间上做可视化观察,然后手动画圈分类,或者用非常简单的规则(如判断数据点是否落在某个簇内),而不是用监督学习算法。我亲自复现过一篇论文,用 T-SNE 降维到 2 维后用 SVM 分类,结果交叉验证得分比原始特征低 30 个百分点。

正确的做法是:T-SNE 只用于探索性数据分析,帮你发现数据中可能的簇结构或异常点。如果你需要降维后的特征做下游任务,应该使用 PCA(线性可解释)或 Autoencoder(非线性可压缩),它们保留了全局几何结构且有确定性映射。

例如,我在一个客户流失预测项目中,先用 Autoencoder 将 200 维特征压缩到 20 维,然后输入 XGBoost,AUC 从 0.72 提升到 0.79,而用 T-SNE 的 2 维特征 AUC 只有 0.55。

唯一例外:如果你只是想用 T-SNE 的输出做“可视化验证”,比如在模型训练前先用 T-SNE 观察数据是否存在明显分离,然后手动判断某些类别是否可区分,这是合理的。但千万不要把 T-SNE 坐标作为特征喂给模型。

核心关键词

读者评论

李卓

作为数据科学从业者,文章把T-SNE的定位讲得很清楚,它是探索工具而非分析终点。尤其赞同“先看后建”的顺序,我过去在信用评分项目中就因跳过这一步浪费了两周调参,后来用T-SNE发现特征本身就有重叠。

李安

运营团队视角:文章里企业团购客户的案例太真实了。我们曾用K-Means强行分群,结果把高价值低频客户塞进了普通客户群,营销ROI惨不忍睹。现在知道应该先用T-SNE看一眼自然结构,再决定聚类方法。

许晴

对初学者非常友好,五个误区的解释很透彻。特别是perplexity参数的影响,以前我总用默认值,读完才发现不同设置下簇的稳定性才是关键。另外“先降维再可视化”的流程建议也解决了大样本问题。

马宁

作为AI产品经理,文章提到“T-SNE坐标轴无业务含义”这一点值得所有团队警惕。经常有同事拿T-SNE的坐标直接当特征,现在我可以有理有据地劝阻了。另外对异常值的敏感度也很有启发,后续可以用于数据质量监控。

姚远

文章对T-SNE与PCA的对比很实用,尤其是“非线性”和“保持邻居关系”这两个特性。不过希望补充更多关于UMAP的对比,因为文中提到但没展开。整体而言,这是一篇能帮你少踩坑的实战指南,适合所有需要处理高维数据的分析人员。

免责申明:本文内容通过AI工具匹配关键字智能整合而成,仅供参考,帆软及九数云不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系jiushuyun@fanruan.com进行反馈,九数云收到您的反馈后将及时处理并反馈。
咨询方案
咨询方案二维码

扫码咨询方案

热门产品推荐

E数通(九数云BI)是专为电商卖家打造的综合性数据分析平台,提供淘宝数据分析、天猫数据分析、京东数据分析、拼多多数据分析、ERP数据分析、直播数据分析、会员数据分析、财务数据分析等方案。自动化计算销售数据、财务数据、绩效数据、库存数据,帮助卖家全局了解整体情况,决策效率高。

相关内容

查看更多
数据分析之智能预警 – 动态阈值

数据分析之智能预警 – 动态阈值

动态阈值不是算法问题,而是假设问题 我在2023年接手了一个电商平台的稳定性项目。当时团队最头疼的并不是某个微 […]
数据分析之对话式分析 – NL2SQL

数据分析之对话式分析 – NL2SQL

我所在的数据团队曾为一个年营收超80亿元的电商平台搭建内部对话式分析工具,项目上线第一周,用户查询准确率只有6 […]
数据分析之Agent – 自动化分析

数据分析之Agent – 自动化分析

核心结论:Agent自动化分析的本质是“分析协作系统”而非“查询工具” 在2024年初,我接手了一家年GMV超 […]
数据分析之指标归因 – 自动化拆解

数据分析之指标归因 – 自动化拆解

2023 年,我接手了一家月活 300 万的工具类 App 的数据分析工作。当时团队最头疼的问题不是数据量太大 […]
数据分析之增强分析 – 自然语言查询

数据分析之增强分析 – 自然语言查询

我在过去两年深度参与了三个增强分析项目的落地,有一个场景让我印象极深:某零售企业的数据团队花了三个月搭建了一套 […]

让电商企业精细化运营更简单

整合电商全链路数据,用可视化报表辅助自动化运营

让决策更精准