CUR分解算法及Python实现
生活随笔
收集整理的這篇文章主要介紹了
CUR分解算法及Python实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
CUR分解
要理解CUR分解,需要先看下SVD分解。SVD理論以及Python實(shí)現(xiàn)
算法流程
給定輸入的矩陣A。
A=C?U?RA = C* U *RA=C?U?R
- 隨機(jī)選r個(gè)列構(gòu)成C和r個(gè)行構(gòu)成R(也可以使用,平方和加權(quán)過(guò)的行和列(常用))
- 然后選取W矩陣(C和R的交集,也就是被選出來(lái)的部分,在C和R中同時(shí)出現(xiàn)的A矩陣中的位置。)
- 對(duì)W做SVD分解,得到X∑YTX\sum Y^TX∑YT
- 對(duì)∑\sum∑做廣義逆矩陣(∑)+(\sum)^+(∑)+,也就是只有非0元的部分才變成原來(lái)的倒數(shù)。
- U=Y?(∑)+?XTU = Y*(\sum)^+* X^TU=Y?(∑)+?XT
Python實(shí)現(xiàn)
- 導(dǎo)入包
- 數(shù)據(jù)
- 算法
- 調(diào)用
總結(jié)
以上是生活随笔為你收集整理的CUR分解算法及Python实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SVD理论以及Python实现
- 下一篇: Python高效画饼图