0

python 的 sklearn 中没有内置函数来执行此操作。

在我的研究中,我发现可以通过以下方式计算“精度分数”错误(组件)

在此处输入图像描述

组件的最佳数量将具有最小的 err(c)。

给定以下测试代码,如何在 python 中实现精度分数?

import numpy as np
import pandas as pd
from sklearn.decomposition import NMF
X = np.random.rand(40, 100) # create matrix for NMF
c = 4
model = NMF(n_components=c, init='random', random_state=0)
W = model.fit_transform(X)
H = model.components_
4

2 回答 2

1

我不确定您的公式中的转置,因为 sklearn 似乎已经转置 H 但这应该可以解决问题

err = np.linalg.norm(X - W @ H)**2/np.linalg.norm(X)**2
print(err)
于 2021-09-06T08:15:18.210 回答
0

只需使用内置函数“重建错误”,如下所示:

错误 = 模型.reconstruction_err_

于 2021-10-20T02:55:06.543 回答