私は不均衡な学習問題を研究しています。 「不均衡」とは、データセットがそのクラス間で不均等な分布を示していることを意味します。たとえば、1000個の例でバイナリ分類の問題を指定した場合などです。合計900の例はクラス0でラベル付けされ、その他の例ではクラス1でラベル付けされます。どのようにしてrでいくつかのデータセットを作ることができますか?
分類アルゴリズムのほとんどは、データセットの基本的な分布を考慮しないため、この「不均衡な学習の問題」を処理しませんでした。すべての例をクラス0に分類すると、90%の精度が得られるからです。
クラスの不均衡の分類における主要な問題の1つは、データセット内のクラスオーバーラップの発生です。 (クラス不均衡問題を伴う分類:Aida Ali、Siti Mariyam Shamsuddin、Anca L.Ralescu、ISSN 2074-8523)
私はこれらをシミュレートしたい1)データセットの重複度が異なる場合のいくつかのメソッドの比較、2)クラスの不均衡の範囲内でデータセットが存在する場合のいくつかのメソッドの比較などの問題 datasets have overlapping
datasets have within class imbalance
だから私は、rでデータセットを作成する必要があり、私はこれらのデータセットを生成する方法がわかりません。 私はいくつかの独立変数
set.seed(3)
x1 <- rnorm(n) # normal dist
x3 <- rexp(n) # exponential dist
x5 <- rpois(n,lambda=3) # poisson dist
error <- rnorm(n) # error term
を作るそして今、私はこれらのXさんとの関係を持つクラス変数Yを行う必要があります。 Xの係数で重なり率を調整できると思います。
IR <- 90 # IR means imbalanced ratio 'IR=# of class0/# of class1'
eta <- -200*x1 + 0.5*sin(x3) + 300*x5^3 + error
Y <- as.factor(ifelse(eta > quantile(eta, IR/(IR+1)), 1, 0))
実際には、コードが正しいかどうかわかりません。また、私はどのようにクラスの不均衡のデータセット内で作ることができますか。 私を助けることができますか?このデータセットを作成するにはどうすればよいですか?
実際にデータを再現できるようにするには、一度 'set.seed'を呼び出す必要があります。 – xxfelixxx
@xxfelixxx私はそれについて改訂しました。 – Ssunny
この投稿を見てください。人は1:49:50のウェイト(実際には50:2450:2500)で作成する素晴らしい3クラスのデータセットを持っています。https://stats.stackexchange.com/questions/157714/r-package-for-weighted-random-forest -classwt-option –