Как создать двумерные данные различных форм (например, квадрат, круг, прямоугольник) с выбросами? - PullRequest
6 голосов
/ 18 января 2011

В настоящее время я ищу какой-нибудь инструмент, который бы генерировал наборы данных различных форм, таких как квадрат, круг, прямоугольник и т. Д. С выбросами для кластерного анализа.

Кто-нибудь из вас может порекомендовать хороший генератор наборов данных для кластерного анализа?Есть ли способ генерировать такие наборы данных в таких языках, как R?

Ответы [ 3 ]

6 голосов
/ 20 февраля 2012

Вероятно, вам стоит взглянуть на пакет mlbench , особенно на синтетический набор данных, генерируемый из функций mlbench.*, см. Некоторые примеры ниже.

enter image description here

Другие наборы данных или служебные функции, вероятно, лучше всего найти в Cluster Task View в CRAN. Как сказал @Roman, добавить выбросы не очень сложно, особенно если вы работаете только в двух измерениях.

6 голосов
/ 18 января 2011

Я хотел бы создать форму и извлечь ограничивающие координаты.Вы можете заполнить форму случайными точками, используя пакет 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

Feel freeдобавить выбросы.Одним из способов добиться этого является выборка различных форм и соединение их по-разному.

1 голос
/ 03 июля 2012

В ELKI имеется гибкий генератор данных, который может генерировать различные распределения в произвольной размерности.Он также может генерировать гамма-распределенные переменные, например.

В вики есть документация: http://elki.dbs.ifi.lmu.de/wiki/DataSetGenerator

...