[英]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.