1

私はいくつかのクラスタリング調査を行っており、次の例のような合成データを生成する必要があります。

データセットの例

2つのクラス(赤と黒)の2Dプロットがあります。このような2Dデータを生成するにはどうすればよいですか?それはV構造なので、直線の周りに点を生成することを考えていました-Rでそれを行う方法はありますか?私はRを使用していますが、他のツールを使用できます(データのみをエクスポート可能にする必要があります)。

4

2 に答える 2

2

ここに考えがあります。

n <- c(200,200)                 # Number of points in each class
cls <- rep(1:2, n)              # Class memberships
i <- c(.2-.12*abs(rnorm(n[1])), # Noiseless x position
       -.2+.12*abs(rnorm(n[2])))
noise <- .04*(.2-abs(i))        # Noise level relative to `i`

# Final sample
x <- cbind(i, abs(.5*i)) + noise*matrix(rnorm(sum(n)*2), sum(n), 2)

plot(x[,1], x[,2], col=cls)

ここに画像の説明を入力してください

于 2012-08-22T19:07:23.990 に答える
1

この非常に特殊なタイプのデータを生成する理由はありますか?これから得られた結果は、他のデータセットに一般化されない可能性があります。

とにかく、この種のデータを生成する明白な方法は、たとえば有名な「abs」関数(絶対値)を使用するなど、非線形投影を使用することです。

つまり、xをプロジェクトします(Python構文では、Rは好きではありません):math.abs(x)または、さらにランダム性が必要な場合:math.abs(x + random.random(.1)) + random.random(.1)

于 2012-08-22T19:25:17.657 に答える