
作者 | IAN JOHNSON
編譯 | CDA數(shù)據(jù)分析師
How to Use t-SNE Effectively
盡管對于可視化高維數(shù)據(jù)非常有用,但t-SNE圖有時(shí)可能是神秘的或誤導(dǎo)性的。通過探索它在簡單情況下的行為方式,我們可以學(xué)習(xí)如何更有效地使用它。
一種用于探索高維數(shù)據(jù)的流行方法是在2008年由t-SNE引入的 van der Maaten和Hinton]。該技術(shù)在機(jī)器學(xué)習(xí)領(lǐng)域已經(jīng)變得普遍,因?yàn)樗哂袔缀跎衿娴哪芰Γ梢詮木哂袛?shù)百甚至數(shù)千維度的數(shù)據(jù)創(chuàng)建引人注目的雙維“地圖”。雖然令人印象深刻,但這些圖像很容易被誤讀。本說明的目的是防止一些常見的誤讀。
我們將通過一系列簡單的例子來說明t-SNE圖可以和不可以顯示什么。t-SNE技術(shù)確實(shí)很有用 - 但前提是你知道如何解釋它。
在潛入之前:如果您之前沒有遇到過t-SNE,那么您需要了解它背后的數(shù)學(xué)知識(shí)。目標(biāo)是在高維空間中獲取一組點(diǎn),并在較低維空間(通常是2D平面)中找到這些點(diǎn)的忠實(shí)表示。該算法是非線性的,并且適應(yīng)底層數(shù)據(jù),在不同區(qū)域上執(zhí)行不同的變換。這些差異可能是混亂的主要原因。
t-SNE的第二個(gè)特征是可調(diào)參數(shù),“困惑”,它(松散地)說明如何在數(shù)據(jù)的本地和全局方面之間平衡注意力。在某種意義上,該參數(shù)是關(guān)于每個(gè)點(diǎn)具有的近鄰的數(shù)量的猜測。困惑值對得到的圖像具有復(fù)雜的影響。原始論文說:“SNE的表現(xiàn)對于困惑的變化是相當(dāng)強(qiáng)大的,典型的值在5到50之間。”但這個(gè)故事比那更加微妙。從t-SNE中獲取最大收益可能意味著分析具有不同困惑的多個(gè)圖。
這不是復(fù)雜的結(jié)束。例如,t-SNE算法并不總是在連續(xù)運(yùn)行中產(chǎn)生類似的輸出,并且存在與優(yōu)化過程相關(guān)的附加超參數(shù)。
1.那些超參數(shù)真的很重要
讓我們從t-SNE的“hello world”開始:兩個(gè)廣泛分離的集群的數(shù)據(jù)集。為了使事情盡可能簡單,我們將考慮2D平面中的聚類,如左圖所示。(為清楚起見,兩個(gè)簇是彩色編碼的。)右邊的圖顯示了五個(gè)不同的困惑值的t-SNE圖。
由van der Maaten和Hinton建議的范圍(5 - 50)中的困惑值,圖表確實(shí)顯示了這些簇,盡管形狀非常不同。在這個(gè)范圍之外,事情變得有點(diǎn)奇怪。由于困惑2,局部變化占主導(dǎo)地位。具有合并的簇的困惑圖像100示出了陷阱:為了使算法正確地操作,困惑確實(shí)應(yīng)該小于點(diǎn)的數(shù)量。否則,實(shí)現(xiàn)可能會(huì)產(chǎn)生意外行為。
上面的每個(gè)圖都是5000次迭代,學(xué)習(xí)率(通常稱為“epsilon”)為10,并且已經(jīng)達(dá)到了步驟5,000的穩(wěn)定點(diǎn)。這些價(jià)值觀有多大區(qū)別?根據(jù)我們的經(jīng)驗(yàn),最重要的是迭代直到達(dá)到穩(wěn)定的配置。
上面的圖像顯示了困惑30的五個(gè)不同的運(yùn)行。前四個(gè)在穩(wěn)定之前停止。在10,20,60和120步之后,您可以看到具有看似群集的一維甚至點(diǎn)狀圖像的布局。如果你看到一個(gè)奇怪的“捏”形狀的t-SNE圖,那么這個(gè)過程很可能太早停止了。不幸的是,沒有固定數(shù)量的步驟可以產(chǎn)生穩(wěn)定的結(jié)果。不同的數(shù)據(jù)集可能需要不同的迭代次數(shù)才能收斂。
另一個(gè)自然的問題是,具有相同超參數(shù)的不同運(yùn)行是否產(chǎn)生相同的結(jié)果。在這個(gè)簡單的雙集群示例中,以及我們討論的大多數(shù)其他示例中,多次運(yùn)行給出了相同的全局形狀。但是,某些數(shù)據(jù)集在不同的運(yùn)行中會(huì)產(chǎn)生明顯不同的圖表; 我們稍后會(huì)給出一個(gè)例子。
從現(xiàn)在開始,除非另有說明,否則我們將顯示5,000次迭代的結(jié)果。這通常足以在本文的(相對較小的)例子中收斂。然而,我們會(huì)繼續(xù)表現(xiàn)出一系列的困惑,因?yàn)檫@似乎在每種情況下都會(huì)產(chǎn)生很大的不同。
2. t-SNE圖中的簇大小沒有任何意義
到現(xiàn)在為止還挺好。但是如果這兩個(gè)集群有不同的標(biāo)準(zhǔn)偏差,那么大小不同呢?(按尺寸,我們指的是邊界框測量值,而不是點(diǎn)數(shù)。)下面是平面中高斯混合物的t-SNE圖,其中一個(gè)是另一個(gè)的10倍。
令人驚訝的是,這兩個(gè)簇在t-SNE圖中看起來大小相同。這是怎么回事?t-SNE算法使其“距離”概念適應(yīng)數(shù)據(jù)集中的區(qū)域密度變化。結(jié)果,它自然地?cái)U(kuò)展了密集的集群,并且收縮了稀疏集群,使集群大小縮小。需要明確的是,這與任何降維技術(shù)都會(huì)扭曲距離的普通事實(shí)不同。(畢竟,在這個(gè)例子中,所有數(shù)據(jù)都是二維的開始。)相反,密度均衡是通過設(shè)計(jì)發(fā)生的,并且是t-SNE的可預(yù)測特征。
然而,底線是你無法在t-SNE圖中看到聚類的相對大小。
3.集群之間的距離可能沒有任何意義
集群之間的距離怎么樣?下圖顯示了三個(gè)高斯分別為50分,一對分別是另一對的5倍。
在困惑50時(shí),該圖給出了對全局幾何的良好感覺。對于較低的茫然值,群集看起來是等距的。當(dāng)困惑度為100時(shí),我們看到全局幾何結(jié)構(gòu)很好,但其中一個(gè)集群看起來錯(cuò)誤地比其他集群小得多。由于困惑50在這個(gè)例子中給了我們一個(gè)好的畫面,如果我們想看到全局幾何,我們是否總能將困惑設(shè)置為50?
可悲的是沒有。如果我們?yōu)槊總€(gè)群集添加更多點(diǎn),則必須增加困難以進(jìn)行補(bǔ)償。以下是三個(gè)高斯群集的t-SNE圖,每個(gè)群集有200個(gè)點(diǎn),而不是50個(gè)。現(xiàn)在沒有一個(gè)試驗(yàn)困惑度值給出了良好的結(jié)果。
看到全球幾何需要微調(diào)困惑是個(gè)壞消息。真實(shí)世界的數(shù)據(jù)可能會(huì)有多個(gè)具有不同數(shù)量元素的集群??赡軟]有一個(gè)困惑值可以捕獲所有集群的距離 - 遺憾的是,困惑是一個(gè)全局參數(shù)。解決這個(gè)問題可能是未來研究的一個(gè)有趣領(lǐng)域。
基本信息是t-SNE圖中分離良好的簇之間的距離可能沒有任何意義。
4.隨機(jī)噪聲并不總是隨機(jī)的。
一個(gè)經(jīng)典的陷阱是認(rèn)為你看到的是真正隨機(jī)數(shù)據(jù)的模式。當(dāng)你看到它時(shí),識(shí)別噪音是一項(xiàng)關(guān)鍵技能,但要建立正確的直覺需要時(shí)間。關(guān)于t-SNE的一個(gè)棘手的事情是,它拋出了很多現(xiàn)有的直覺。下圖顯示了真實(shí)的隨機(jī)數(shù)據(jù),從100維的單位高斯分布中抽取了500個(gè)點(diǎn)。左圖是前兩個(gè)坐標(biāo)上的投影。
困惑2的情節(jié)似乎表現(xiàn)出戲劇性的集群。如果你正在調(diào)整困惑以在數(shù)據(jù)中顯示結(jié)構(gòu),你可能會(huì)認(rèn)為你已經(jīng)中了大獎(jiǎng)。
當(dāng)然,因?yàn)槲覀冎傈c(diǎn)云是隨機(jī)生成的,所以它沒有統(tǒng)計(jì)上有意義的集群:那些“團(tuán)塊”沒有意義。如果回顧前面的例子,低茫然度值通常會(huì)導(dǎo)致這種分布。將這些團(tuán)塊識(shí)別為隨機(jī)噪聲是讀取t-SNE圖的重要部分。
不過有其他一些有趣的東西,這可能是t-SNE的勝利。起初,困惑30的情節(jié)根本看起來不像高斯分布:云的不同區(qū)域之間只存在微小的密度差異,并且這些點(diǎn)看起來可疑地均勻分布。事實(shí)上,這些特征是關(guān)于高維正態(tài)分布的有用的東西,它們非常接近球體上的均勻分布:均勻分布,點(diǎn)之間的間距大致相等。從這個(gè)角度來看,t-SNE圖比任何線性投影都準(zhǔn)確。
5.你有時(shí)可以看到一些形狀
數(shù)據(jù)以完全對稱的方式分發(fā)很少見。讓我們看一下50維的軸對齊高斯分布,其中坐標(biāo)i的標(biāo)準(zhǔn)偏差是1 / i。也就是說,我們正在研究一個(gè)長橢圓形的點(diǎn)云。
對于足夠高的困惑值,細(xì)長的形狀易于閱讀。另一方面,在低度困惑的情況下,局部效應(yīng)和無意義的“聚集”成為焦點(diǎn)。更加極端的形狀也會(huì)出現(xiàn),但同樣只有正確的困惑。例如,這里是兩個(gè)75個(gè)點(diǎn)的集群,每個(gè)集群在2D中,以平行線排列,帶有一點(diǎn)噪聲。
對于一定程度的困惑,長簇看起來接近正確,這是令人放心的。
然而,即使在最好的情況下,也存在一種微妙的失真:在t-SNE圖中線條略微向外彎曲。原因在于,像往常一樣,t-SNE傾向于擴(kuò)展更密集的數(shù)據(jù)區(qū)域。由于群集的中間周圍的空白空間少于末端,因此算法會(huì)放大它們。
6.對于拓?fù)洌赡苄枰鄠€(gè)繪圖
有時(shí)您可以從t-SNE圖中讀取拓?fù)湫畔?,但這通常需要多個(gè)困惑的視圖。最簡單的拓?fù)鋵傩灾皇嵌糁?。下圖顯示了50維空間中的兩組75個(gè)點(diǎn)。兩者都是從以原點(diǎn)為中心的對稱高斯分布中采樣的,但其中一個(gè)比另一個(gè)分散50倍?!靶 狈植紝?shí)際上包含在大的分布中。
困惑30視圖正確地顯示了基本拓?fù)?,但是t-SNE再次大大夸大了較小點(diǎn)組的大小。在困惑50時(shí),有一種新現(xiàn)象:外部群體變成一個(gè)圓圈,因?yàn)榍楣?jié)試圖描繪其所有點(diǎn)與內(nèi)部群體的距離大致相同的事實(shí)。如果你單獨(dú)看這個(gè)圖像,很容易將這些外點(diǎn)誤讀為一維結(jié)構(gòu)。
更復(fù)雜的拓?fù)漕愋湍??對于?shù)學(xué)家而言,這可能是實(shí)際數(shù)據(jù)分析師的主題,但有時(shí)在野外會(huì)發(fā)現(xiàn)有趣的低維結(jié)構(gòu)。
考慮一組在三維中跟蹤鏈接或結(jié)的點(diǎn)。再一次,查看多個(gè)困惑值可以得到最完整的圖像。低茫然度值給出兩個(gè)完全獨(dú)立的循環(huán); 高點(diǎn)表現(xiàn)出一種全球連通性。
三葉結(jié)是多次運(yùn)行如何影響t-SNE結(jié)果的一個(gè)有趣例子。以下是困惑2視圖的五次運(yùn)行。
該算法在圓上結(jié)算兩次,至少保留了固有拓?fù)?。但在三次運(yùn)行中,最終會(huì)有三種不同的解決方案引入人工休息。使用點(diǎn)顏色作為指導(dǎo),您可以看到第一次和第三次運(yùn)行相距很遠(yuǎn)。
然而,在困惑50處運(yùn)行五次,得到(直到對稱性)在視覺上相同的結(jié)果。顯然,有些問題比其他問題更容易優(yōu)化。
結(jié)論
有一個(gè)原因是t-SNE變得如此受歡迎:它非常靈活,并且經(jīng)常可以找到其他降維算法無法實(shí)現(xiàn)的結(jié)構(gòu)。不幸的是,這種靈活性使解釋變得棘手。在用戶看不到的情況下,該算法進(jìn)行各種調(diào)整以整理其可視化。但是,不要讓隱藏的“魔法”讓你遠(yuǎn)離整個(gè)技術(shù)。好消息是,通過研究t-SNE在簡單情況下的行為方式,可以對正在發(fā)生的事情形成直覺。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10