python - 如何生成块对角数据矩阵
问题描述
我们使用的第一个合成数据集是一个 100×100 矩阵,其中有四个对角线排列的 25×25 块矩阵。每个块内的数据表示一个簇中两个对应点的亲和度,而所有块外的数据表示噪声。每个块内的亲和度数据在 0 和 1 范围内随机生成,而噪声数据在 0 和 c 范围内随机生成,其中 c 分别设置为 0.6、0.7 和 0.8。此外,为了使这个聚类任务更具挑战性,我们随机挑选出 25 个噪声数据点并将它们的值设置为 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”颜色图,但这不是一个好的感知颜色图,但如果您想要它,您可以cmap=plt.cm.jet
在绘图调用中使用它。)
推荐阅读
- android - 使用视图绑定而不是 findViewById 有什么缺点吗?
- azure - 我在空闲时收到很多事务(Airflow 和 Azure 文件共享)
- python - 如何在 tf.data.Dataset 中编码字符串?
- python - pm AutoARIMA 没有找到合适的型号
- python - 在 PYTHON 中将基于行的 JSON 转换为基于列的 JSON
- javascript - Sweetalert2中的隐形谷歌Recapthca 2
- javascript - 更改浏览器的后退按钮行为
- javascript - jQuery addClass 工作,但 javascript classList.add 不工作
- html - 如何在手机上正确显示网页
- python - 如何从我的数据框中只省略周末?