下图比较了
sklearn.decomposition.NMF
中的Multiplicative-Update(‘mu’)求解器支持的各种Beta-divergence损失函数。
import numpy as npimport matplotlib.pyplot as pltfrom sklearn.decomposition._nmf import _beta_divergenceprint(__doc__)
x = np.linspace(0.001, 4, 1000)
y = np.zeros(x.shape)
colors = 'mbgyr'for j, beta in enumerate((0., 0.5, 1., 1.5, 2.)):for i, xi in enumerate(x):
y[i] = _beta_divergence(1, xi, 1, beta)
name = "beta = %1.1f" % beta
plt.plot(x, y, label=name, color=colors[j])
plt.xlabel("x")
plt.title("beta-divergence(1, x)