如何生成具有异常值的不同形状(例如正方形、圆形、矩形)的双变量数据?

发布于 2024-10-12 10:02:23 字数 119 浏览 5 评论 0原文

我目前正在寻找一些工具,可以生成不同形状的数据集,例如正方形、圆形、矩形等,并带有异常值以进行聚类分析。

你们中有人可以推荐一个好的数据集生成器来进行聚类分析吗? 有没有办法用 R 等语言生成这样的数据集?

I am currently looking for some tool that would generate datasets of different shapes like square, circle, rectangle, etc. with outliers for cluster analysis.

Can any one of you recommend a good dataset generator for cluster analysis?
Is there anyway to generates such datasets in languages like R?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

白云不回头 2024-10-19 10:02:23

您可能应该查看 mlbench 包,特别是生成合成数据集来自 mlbench.* 函数,请参阅下面的一些示例。

在此处输入图像描述

其他数据集或实用函数可能最好在 CRAN 上的集群 任务视图。正如@Roman 所说,添加异常值并不困难,尤其是当您仅在二维中工作时。

You should probably look into the mlbench package, especially synthetic dataset generating from mlbench.* functions, see some examples below.

enter image description here

Other datasets or utility functions are probably best found on the Cluster Task View on CRAN. As @Roman said, adding outliers is not really difficult, especially when you work in only two dimensions.

错々过的事 2024-10-19 10:02:23

我将创建一个形状并提取边界坐标。您可以使用 splancs 包用随机点填充形状。

这是我的一个程序中的一小段:

# First we create a circle, into which uniform random points will be generated (kudos to Barry Rowlingson, r-sig-geo).
circle <-  function(x = x, y = y, r = radius, n = n.faces){
    t <- seq(from = 0, to = 2 * pi, length = n + 1)[-1]
    t <- cbind(x = x + r * sin(t), y = y+ r * cos(t))
    t <- rbind(t, t[1,])
    return(t)
}

csr(circle(0, 0, 100, 30), 1000)

alt text

随意添加异常值。解决这个问题的一种方法是对不同的形状进行采样并以不同的方式将它们连接起来。

I would create a shape and extract bounding coordinates. You can populate the shape with random points using splancs package.

Here's a small snippet from one of my programs:

# First we create a circle, into which uniform random points will be generated (kudos to Barry Rowlingson, r-sig-geo).
circle <-  function(x = x, y = y, r = radius, n = n.faces){
    t <- seq(from = 0, to = 2 * pi, length = n + 1)[-1]
    t <- cbind(x = x + r * sin(t), y = y+ r * cos(t))
    t <- rbind(t, t[1,])
    return(t)
}

csr(circle(0, 0, 100, 30), 1000)

alt text

Feel free to add outliers. One way of going about this is sampling different shapes and joining them in different ways.

随风而去 2024-10-19 10:02:23

ELKI中有一个灵活的数据生成器,可以生成任意维度的各种分布。例如,它还可以生成 Gamma 分布变量。

Wiki 上有文档: http://elki.dbs.ifi.lmu.de/维基/数据集生成器

There is a flexible data generator in ELKI that can generate various distributions in arbitrary dimensionality. It also can generate Gamma distributed variables, for example.

There is documentation on the Wiki: http://elki.dbs.ifi.lmu.de/wiki/DataSetGenerator

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文