【问题标题】:How to generate a block diagonal data matrix如何生成块对角数据矩阵
【发布时间】:2021-01-15 07:11:47
【问题描述】:

我们使用的第一个合成数据集是一个 100×100 矩阵,其中有四个对角线排列的 25×25 块矩阵。每个块内的数据表示一个簇中两个对应点的亲和度,而所有块外的数据表示噪声。每个块内的亲和度数据是随机的 在 0 和 1 范围内生成噪声数据,而噪声数据在 0 和 c 范围内随机生成,其中 c 分别设置为 0.6、0.7 和 0.8。此外,为了使这个聚类任务更具挑战性,我们随机挑选出 25 个噪声数据点并将它们的值设置为 1。

想要的人物看起来像这个带有彩条的人物。

【问题讨论】:

  • 问题是什么?欢迎来到 SO。这不是讨论论坛或教程。请使用tour 并花时间阅读How to Ask 以及该页面上的其他链接。
  • 显示数据、您的努力以及您在描绘数据时遇到的问题。考虑minimal reproducible example
  • 不是machine-learningscikit-learn 的问题,请不要发送不相关的标签(已删除)。

标签: python python-3.x matlab matplotlib


【解决方案1】:

这应该让您开始生成矩阵。

import matplotlib.pyplot as plt
import numpy as np

c_min, c_span = 0.0, 0.7
x = c_min + c_span*np.random.random((100,100))
for i in range(4):
    j = i*25
    x[j:j+25, j:j+25] = np.random.random((25,25))

plt.imshow(x, interpolation='nearest')
plt.colorbar()
plt.show()

总体而言,听起来您需要三个不同的矩阵,每个矩阵都有不同的背景范围 (0, .6)、(0, .7)、(0, .8)。如果是这种情况,只需更改c_span。 (此外,您似乎正在使用“jet”颜色图,但这不是一个好的感知颜色图,但如果您想要它,您可以在 plot 调用中使用 cmap=plt.cm.jet。)

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
  • 2015-05-21
  • 2018-05-09
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
相关资源
最近更新 更多