NMF python
时间: 2023-10-15 15:25:42 浏览: 171
NMF是非负矩阵分解(Non-Negative Matrix Factorization)的缩写,它是一种常用的矩阵分解技术,用于降低数据维度和特征提取。在Python中,我们可以使用scikit-learn库来实现NMF。
以下是一个使用Python中scikit-learn库实现NMF的示例代码:
```python
from sklearn.decomposition import NMF
import numpy as np
# 构造一个随机矩阵作为输入数据
X = np.random.rand(100, 50)
# 创建NMF模型并指定要分解的特征数
n_components = 10
model = NMF(n_components=n_components)
# 使用NMF进行矩阵分解
W = model.fit_transform(X) # 得到表示样本在新特征空间中的表示
H = model.components_ # 得到新特征空间中的基
# 打印分解结果
print("原始矩阵 X:")
print(X)
print("\n分解得到的 W:")
print(W)
print("\n分解得到的 H:")
print(H)
```
在上面的示例中,我们首先创建了一个随机矩阵X作为输入数据,然后创建了一个NMF模型并指定要分解的特征数。接下来,我们使用`fit_transform`函数对输入数据进行矩阵分解,并使用`components_`属性获取分解后的新特征空间和基。最后,我们打印出分解结果。
希望这个例子能帮助你理解如何在Python中使用scikit-learn库实现NMF。如果你有更多关于NMF或其他机器学习方面的问题,请随时提问。
阅读全文