LoginSignup
1
1

More than 1 year has passed since last update.

Rのmlbenchライブラリで、機械学習ベンチマーク用のサンプルデータをサクッと作る

Posted at

はじめに

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図が出ますので、下のように使うのが楽かと思います。
000013.png

複数クラスの正規分布

# サンプル数1000個で、クラス数が4の2次元正規分布のデータを作成。(各分布の中心をrで設定。sdでばらつき)
dnorm <- mlbench.2dnormals(1000, cl=4, r=1.5, sd=0.5)
plot(dnorm)

000025.png

球形データ

circle.2 <- mlbench.circle(1000,d=2) #2次元
plot(circle.2)
circle.3 <- mlbench.circle(1000,d=3) #3次元
plot(circle.3)

000035 (1).png
000037.png

おわりに

他にも特有の問題のデータ生成関数がありますが、こんな感じで簡単に作って可視化できるので、
評価用に使えそうなものがないかパラパラ見てみると、時間短縮ができて良いかもしれません。

実行環境

  • MacOS Big Sur 11.3.1
  • R version 4.0.5 (2021-03-31)
  • R Studio Version 1.4.1103

参考文献

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1