1. Learn
  2. /
  3. 课程
  4. /
  5. Python 中的无监督学习

Connected

道练习

NMF 学习图像的"部分"

现在,请运用您对 NMF 的所学来分解手写数字数据集。您再次得到了作为 2D 数组的数字图像 samples。这一次,还提供了一个函数 show_as_image(),它可以显示任何 1D 数组所编码的图像:

def show_as_image(sample):
    bitmap = sample.reshape((13, 8))
    plt.figure()
    plt.imshow(bitmap, cmap='gray', interpolation='nearest')
    plt.colorbar()
    plt.show()

完成后,请花点时间查看这些图,并留意 NMF 如何将一个数字表示为各个组件之和!

说明

100 XP
  • 从 sklearn.decomposition 导入 NMF。
  • 创建名为 model、包含 7 个组件的 NMF 实例。(7 是 LED 显示屏的单元个数。)
  • 对 model 调用 .fit_transform() 方法,传入 samples。将结果赋值给 features。
  • 对模型的每个组件(通过 model.components_ 访问),在循环内对该组件调用 show_as_image() 函数。
  • 将 features 的第 0 行赋值给 digit_features。
  • 打印 digit_features。