python - 为 K 均值聚类生成随机 (x,y) 点
问题描述
我正在尝试为python中的图形随机生成一堆点来测试k-means聚类算法。这是我的代码。
N = 100
random_x0 = np.random.randn(N) + (np.random.randint(0,100) * np.random.randint(1,4))
random_x1 = np.random.randn(N) + (np.random.randint(0,100) * np.random.randint(1,4))
random_x2 = np.random.randn(N) + (np.random.randint(0,100) * np.random.randint(1,4))
random_y0 = np.random.randn(N) + (np.random.randint(0,100) * np.random.randint(1,4))
random_y1 = np.random.randn(N) + (np.random.randint(0,100) * np.random.randint(1,4))
random_y2 = np.random.randn(N) + (np.random.randint(0,100) * np.random.randint(1,4))
正如您可能想象的那样,每组random_x[index]
坐标都与其对应的 y 坐标相匹配。
(random_x0, random_y0), (random_x1, random_y1), (random_x2, random_y2)
由于我正在测试一个聚类算法,我希望我的数据点有一些聚类……但这似乎太多了。我尝试添加一个 1-100 的随机数,然后将其乘以 1-4 的一个随机数……我做错了什么才能获得如此一致的随机结果?
解决方案
randn
是一个均值为零且方差等于 1 的随机高斯变量。为了生成具有均值m
和标准差的高斯变量,s
可以这样做m + s*randn()
。既然你这样做randn(N) + constant
了,你基本上会创建标准差为 1 且均值等于 的高斯变量constant
。现在constant
由一个可以在 0 到 297 之间变化的随机变量给出,即质心的散布比方差大得多。您可能想要一个有几个标准偏差的质心(即平均值)分布。您还可以传递多个均值和 std.dev。值random.normal
例如:
np.random.normal(loc=[0, 1, 2], scale=[0.5, 0.75, 1.0], size=(N, 3))
推荐阅读
- python - 如何使用 EMR 集群增加 Spark 应用程序运行容器的数量?
- javascript - jQuery:获取html元素的正常JS格式
- asp.net-mvc - CLRThreadPoolQueue 中的大部分请求
- mysql - #2006 - MySQL 服务器已消失/仅在某些数据库中
- nestjs - NestJS 处理服务异常
- react-native - 刷新路线 - 仅在显示屏幕时渲染屏幕(已修复)
- java - 如何根据变量延迟 Spring Bean 初始化
- python-3.x - 在 Python 中使用索引和标签迭代列表
- python - 如何在保持顺序的同时重塑数组?
- c++ - 带指针的结构的间接原子交换