python NMF
时间: 2023-10-15 14:22:39 浏览: 175
改进NMF算法
NMF(Non-Negative Matrix Factorization)是一种常用的矩阵分解方法,用于对非负矩阵进行因式分解。在Python中,可以使用scikit-learn库来实现NMF算法。
下面是一个简单的使用示例:
```python
from sklearn.decomposition import NMF
import numpy as np
# 创建一个非负矩阵
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 定义NMF模型,并指定要分解的因子数
n_components = 2
model = NMF(n_components=n_components)
# 使用NMF模型拟合数据
model.fit(X)
# 获取分解后的矩阵
W = model.transform(X) # 分解后的基础矩阵
H = model.components_ # 分解后的系数矩阵
print("分解后的基础矩阵:")
print(W)
print("分解后的系数矩阵:")
print(H)
```
这段代码中,我们创建了一个3x3的非负矩阵X,并使用NMF模型对其进行因式分解。设置`n_components`参数为2,表示希望将X分解为一个2维的基础矩阵W和一个2维的系数矩阵H。通过`fit()`方法拟合数据后,可以使用`transform()`方法获取分解后的基础矩阵W,使用`components_`属性获取分解后的系数矩阵H。
希望这可以帮助到你!如果有任何问题,请随时提问。
阅读全文