降維方法 非負矩陣分解 NMF

2021-08-24 18:02:36 字數 1013 閱讀 2183

非負矩陣分解(non-negative matrix factorization),作為一種非監督式的降維方法,其主要思想正如其名字描述的那樣:將乙個非負原始矩陣分解為兩個非負矩陣的積(vm

∗n=w

m∗r⋅

v′r∗

n vm∗

n=wm

∗r⋅v

r∗n′

)。矩陣v

v

為原始資料矩陣,包含

n' role="presentation" style="position: relative;">n

n個樣本,共

m m

個特徵。矩陣v′

' role="presentation" style="position: relative;">v′v

′為降維後的資料矩陣,包含

n n

個樣本,共

r' role="presentation" style="position: relative;">r

r個特徵(

r<

m r

<

m)。矩陣

w w

為權重係數矩陣。

要求降維後的矩陣元素非負,在現實應用中非常廣泛,如影象或文字資料,一些負值是沒有意義的。

找到合適的矩陣

w' role="presentation" style="position: relative;">ww和

v′v

′使得: e=

v−w⋅

v′e =v

−w⋅v

′||e

||| |e

||

最小,e

e

矩陣也被稱為雜訊矩陣,假設雜訊服從不同的概率分布,通過最大似然函式會得到不同型別的目標函式,或者使用基於kl散度的優化目標,優化目標函式即可得到目標矩陣。

細節可以參考:nmf

可以使用sklearn庫中的nmf類,其考慮了不同的初始化方,優化的目標函式以及迭代的學習率等問題。

非負矩陣分解 NMF 簡介

非負矩陣分解,顧名思義就是,將非負的大矩陣分解成兩個非負的小矩陣。回顧矩陣分解本身,在 公式 1 中的v是乙個n m維的矩陣,其中每一列就是 那麼非負和其它的有什麼不同呢?下面我就盜一張圖來直觀地展示幾種矩陣分解方法的效果差異。出自lee and seung 1999 圖中就對比了三種方法的區別。v...

python 非負矩陣分解 NMF

非負矩陣分解是矩陣中所有元素均為非負數約束條件下的矩陣分解,其基本思想 給定乙個非負矩陣v,nmf能夠找到乙個非負矩陣w和乙個非負矩陣h,使得矩陣w和矩陣h的乘積近似等於矩陣v中的值。h矩陣 係數矩陣 nmf廣泛應用於影象分析,文字挖掘和語音處理鄰域。nmf矩陣分解優化目標 最小化w矩陣h矩陣的乘積...

NMF演算法 非負矩陣分解演算法 python實現

nmf演算法 非負矩陣分解演算法。目標 將乙個大矩陣分解成兩個稍小的矩陣 利用矩陣的乘法 要求 待分解矩陣不能有負值。因為負值對於資料是無效的。假定有乙個元資料矩陣v,目標是將其分解成兩個非負矩陣w和h相乘的形式。v w h 這邊需要注意一些維度也就是角標,我就會直接寫了 其中,w稱為權重係數矩陣,...