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

时间:2011-01-18 09:10:00

标签: r dataset cluster-analysis data-generation

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

您是否可以推荐一个好的数据集生成器进行聚类分析? 无论如何都要用R?

这样的语言生成这样的数据集

3 个答案:

答案 0 :(得分:6)

我会创建一个形状并提取边界坐标。您可以使用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

随意添加异常值。解决这个问题的一种方法是采样不同的形状并以不同的方式加入它们。

答案 1 :(得分:6)

您应该查看mlbench包,尤其是从mlbench.*函数生成的合成数据集,请参阅下面的示例。

enter image description here

其他数据集或实用程序功能可能最好在CRAN上的Cluster任务视图中找到。正如@Roman所说,添加异常值并不是很困难,特别是当你只在两个方面工作时。

答案 2 :(得分:1)

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

Wiki上有文档:http://elki.dbs.ifi.lmu.de/wiki/DataSetGenerator