
1. SVD 簡(jiǎn)介
SVD中文稱為“奇異值分解”,是一種矩陣分解方法。其公式如下:
定理:設(shè)A為m*n階復(fù)矩陣,則存在m階矩陣U和n階矩陣V,使得:
A = U*S*V’ 其中S=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(A)。
其中 A 矩陣是我們初始的特征矩陣,在文本挖掘中:A就是 t (term) 行 d (document) 列的矩陣,每列是一篇文章,每行是一個(gè)單詞,每個(gè)單元格的當(dāng)前單詞在當(dāng)前文章里的出現(xiàn)次數(shù)。 U 是一個(gè) t 行 r 列 的矩陣, V 是一個(gè) r 行 d 列 的矩陣, S 是一個(gè) r 行 r 列的對(duì)角矩陣。這里 r 的大小是 A的秩。那么U和V中分別是A的奇異向量,而S是A的奇異值。AA'的正交單位特征向量組成U,特征值組成S'S,A'A的正交單位特征向量組成V,特征值(與AA'相同)組成SS'。( 關(guān)于秩是什么,特征值是什么,這個(gè)分解是怎么得到的,可以暫不去管)
注意,這個(gè)公式是等號(hào),也就是等號(hào)左邊完全等價(jià)于等號(hào)右邊。換句話說(shuō)我們只是把原來(lái)的A換了一種表示形式而已,并沒(méi)有丟失任何信息。就好像 24 = 2 * 3 * 4 一樣。 也正是因此,如果 LSI 直接使用 SVD 的話,不僅 r 是不可控的,而且 r 很可能很大以至于起不到降維效果,事實(shí)上這樣做不僅沒(méi)降維而且耗費(fèi)了大量的運(yùn)算時(shí)間。而 SVD 作為一種矩陣分解方法,也并非僅僅用在 LSI 中。Matlab中有直接的svd函數(shù)可以使用:[U,S,V] = svd(A)
2. LSI 對(duì) SVD 的使用
LSI 對(duì) SVD 做了一點(diǎn)改變,就是對(duì) S 的 r 個(gè)對(duì)角線元素進(jìn)行了排序,并只保留前 k 個(gè)值 ( k < r ), 后 r - k 個(gè)置零。此時(shí),可以證明等式右邊是在最小二乘意義下對(duì)等式左邊的最佳近似。事實(shí)上這個(gè)過(guò)程是把數(shù)據(jù)集的特征值(在SVD中用奇異值表征)按照重要性排列,降維的過(guò)程就是舍棄不重要的特征向量的過(guò)程,而剩下的特征向量張成空間為降維后的空間。
看到這里,我們能得到最重要的啟發(fā)就是,LSI 是通過(guò)舍棄不重要的特征向量來(lái)達(dá)到降維效果的,而又由于特征向量是根據(jù)矩陣運(yùn)算得出的,因此 LSI 在降維的過(guò)程中不僅丟失了信息,而且還改變了信息。降維后的數(shù)據(jù)集僅僅是對(duì)原數(shù)據(jù)集的一種近似而非等價(jià)形式。且降維幅度越大,與原信息的偏離就越大。
3. LSI 的適用性
LSI 本質(zhì)上是把每個(gè)特征映射到了一個(gè)更低維的子空間(sub space),所以用來(lái)做降維可以說(shuō)是天造地設(shè)。在降維這塊土地上還有另一位辛勤的耕耘者那就是TFIDF,TFIDF通過(guò)一個(gè)簡(jiǎn)單的公式(兩個(gè)整數(shù)相乘)得到不同單詞的重要程度,并取前k個(gè)最重要的單詞,而丟棄其它單詞,這里只有信息的丟失,并沒(méi)有信息的改變。從執(zhí)行效率上 TFIDF 遠(yuǎn)遠(yuǎn)高于 LSI,不過(guò)從效果上(至少在學(xué)術(shù)界)LSI 要優(yōu)于TFIDF。
不過(guò)必須提醒的是,無(wú)論是上述哪一種降維方法,都會(huì)造成信息的偏差,進(jìn)而影響后續(xù)分類/聚類的準(zhǔn)確率。 降維是希望以可接受的效果損失下,大大提高運(yùn)行效率和節(jié)省內(nèi)存空間。然而能不降維的時(shí)候還是不要降維(比如你只有幾千篇文檔要處理,那樣真的沒(méi)有必要降維)
2)單詞相關(guān)度計(jì)算
LSI 的結(jié)果通過(guò)簡(jiǎn)單變換就能得到不同單詞之間的相關(guān)度( 0 ~ 1 之間的一個(gè)實(shí)數(shù)),相關(guān)度非常高的單詞往往擁有相同的含義。不過(guò)不要被“潛在語(yǔ)義”的名稱所迷惑,所謂的潛在語(yǔ)義只不過(guò)是統(tǒng)計(jì)意義上的相似,如果想得到同義詞還是使用同義詞詞典靠譜。LSI 得到的近義詞的特點(diǎn)是它們不一定是同義詞(甚至詞性都可能不同),但它們往往出現(xiàn)在同類情景下(比如“魔獸” 和 “dota”)。不過(guò)事實(shí)上直接使用LSI做單詞相關(guān)度計(jì)算的并不多,一方面在于現(xiàn)在有一些灰常好用的同義詞詞典,另外相對(duì)無(wú)監(jiān)督的學(xué)習(xí)大家還是更信任有監(jiān)督的學(xué)習(xí)(分類)得到的結(jié)果。
3)聚類
直接用 LSI 聚類的情景我還沒(méi)有見(jiàn)過(guò),但使用該系列算法的后續(xù)變種 PLSI, LDA 進(jìn)行聚類的的確有一些。其中LDA聚類還有些道理(因?yàn)樗旧砭图僭O(shè)了潛在topic的聯(lián)合概率分布),用 LSI 進(jìn)行聚類其實(shí)并不合適。本質(zhì)上 LSI 在找特征子空間,而聚類方法要找的是實(shí)例分組。 LSI 雖然能得到看起來(lái)貌似是聚類的結(jié)果,但其意義不見(jiàn)得是聚類所想得到的。一個(gè)明顯的例子就是,對(duì)于分布不平均的樣本集(比如新聞?lì)惖奈恼掠?000篇,而文學(xué)類的文章只有10篇), LSI/PLSI 得到的往往是相對(duì)平均的結(jié)果(A類500篇,B類600篇),這種情況下根本無(wú)法得到好的聚類結(jié)果。相對(duì)傳統(tǒng)聚類方法k-means, LSI 系列算法不僅存在信息的偏差(丟失和改變),而且不能處理分布不均的樣本集。
對(duì)于 LSI/PLSI 來(lái)說(shuō),聚類的意義不在于文檔,而在于單詞。所以對(duì)于聚類的一種變型用法是,當(dāng) k 設(shè)的足夠大時(shí),LSI/PLSI 能夠給出落在不同子空間的單詞序列,基本上這些單詞之間擁有較為緊密的語(yǔ)義聯(lián)系。其實(shí)這種用法本質(zhì)上還是在利用降維做單詞相關(guān)度計(jì)算。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、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 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 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ù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(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 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(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ù)分析場(chǎng)景中,聚類分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10CDA 數(shù)據(jù)分析師:商業(yè)數(shù)據(jù)分析實(shí)踐的落地者與價(jià)值創(chuàng)造者 商業(yè)數(shù)據(jù)分析的價(jià)值,最終要在 “實(shí)踐” 中體現(xiàn) —— 脫離業(yè)務(wù)場(chǎng)景的分 ...
2025-09-10