簡體   English   中英

稀疏矩陣上的scikit-learn Normalizer過程

[英]scikit-learn Normalizer process on sparse matrix

我嘗試規范化稀疏矩陣中的數據(矩陣為TF格式)。 我有一個疑問

正確使用sklearn.preprocessing.Normalizer來規范我的矩陣嗎?

歸一化並使用TF矩陣進行聚類是否有意義?

我的矩陣是這樣的:

 (0, 0) 1
 (7, 0) 1
 (13, 0)    1
 (31, 0)    4
 (97, 0)    3
 (99, 0)    1

我從sklearn API使用以下代碼:

 transformer = Normalizer().fit(sparse_matrix) # fit does nothing.

 Normalizer(copy=True, norm='l2')
 transformer.transform(sparse_matrix)  

稀疏矩陣是我的TF矩陣。

輸出是這樣的:

 (0, 0) 0.04822428221704121
 (0, 1) 0.04822428221704121
 (0, 2) 0.04822428221704121
 (0, 3) 0.14467284665112365
 (0, 4) 0.04822428221704121
 (0, 5) 0.04822428221704121
 (0, 6) 0.09644856443408242
 (0, 7) 0.19289712886816485

由於這是我第一次這樣做,所以我不想錯。 對於這些新數據,我想應用聚類以查看規范化和TF-IDF之間的差異。 如果這個問題聽起來很傻,請原諒,但我正在嘗試從零開始學習。

sklearn生成的tfidf矩陣已經以適當的方式進行了歸一化。

通常的歸一化是將單位長度設為l2,以使點積,歐幾里得距離和余弦值返回相同的等級。 從理論的角度來看(並且您應該始終考慮為什么 ),這對應於規范化文檔的長度 :兩倍於另一個文檔的串聯的文檔將產生相同的向量。

考慮幾分鍾,如何檢查矩陣是否確實通過這種方式進行了歸一化。 那是涉及dot單行表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM