はじめに
Pythonだとscikit-learn datasetsライブラリには、さまざまな評価用のデータをサクッと作れるsample generatorがあります。
Rでも同じようなデータ生成用のライブラリがないかを探したら、mlbenchというライブラリがあったので使ってみました。
Rのmlbenchライブラリについて
mlbenchでは、よく使われる実際のデータセットと人工データ生成用のライブラリが格納されています。
マニュアル記載の「mlbench.〇〇」と言う名称の関数は、人工データ生成ライブラリで、そうでないものはよく見る実際のデータセットです。
「mlbench.〇〇」で作ったオブジェクトは、通常のplot関数で可視化もできますが、指定が若干面倒です。
この面倒さの解消のために、mlbenchオブジェクト用のplot関数も用意されており、簡単に可視化が可能です。
実際にちょっと使ってみます。
mlbenchで色々なデータを作ってみる。
spiralデータ
library(mlbench)
#spiralsで非線形境界を持つ1000個のデータの作成
spirals <- mlbench.spirals(1000, sd=0.1, cycles=1)
plot(spirals$x, col=spirals$classes) # 普通のplot関数だと、こんな感じで指定が必要だが。。
plot(spirals) # mlbenchオブジェクト用のplot関数が用意されているので、これだけで同じように可視化が可能。
2つplot関数を呼び出していますが、同じようにplot図が出ますので、下のように使うのが楽かと思います。
複数クラスの正規分布
# サンプル数1000個で、クラス数が4の2次元正規分布のデータを作成。(各分布の中心をrで設定。sdでばらつき)
dnorm <- mlbench.2dnormals(1000, cl=4, r=1.5, sd=0.5)
plot(dnorm)
球形データ
circle.2 <- mlbench.circle(1000,d=2) #2次元
plot(circle.2)
circle.3 <- mlbench.circle(1000,d=3) #3次元
plot(circle.3)
おわりに
他にも特有の問題のデータ生成関数がありますが、こんな感じで簡単に作って可視化できるので、
評価用に使えそうなものがないかパラパラ見てみると、時間短縮ができて良いかもしれません。
実行環境
- MacOS Big Sur 11.3.1
- R version 4.0.5 (2021-03-31)
- R Studio Version 1.4.1103