機械学習のハイパーパラメータをベイズ最適化でチューニングするのは既存パッケージの組み合わせで頑張ればできたのですが、頑張らなくても簡単に書けるパッケージを作りました。ベイズ最適化でチューニングしてくれます。3)データセット名、ラベルの列名、XGboostのモデルを組むのに必要なこと、何回クロスバリデーションするかを書けば勝手にやってくれます。ベイズ最適化そのものについては、hoxo_mさんの資料が分かりやすいと思います。はじめにきっかけそもそもこのパッケージを作ろうと思ったきっかけは六本木データサイエンティストの方のブログ記事でした。組み合わせるとパラメータチューニングをベイズ最適化でお手軽にできるよって話なんですが、いくらお手軽にできるといっても実際には以下の手順が必要でした。データを整形し、(機械学習側の)パッケージに適した形にするどのパラメータをチューニングするか決め、最大化する関数を作成パラメータをどの範囲に設定するか決め、ベイズ最適化を実行なかなか面倒です。パッケージごとにデータの変形の仕方が違ったりします。関数で適切な形に変形してやらなければなりません。お手軽にできるとはいえ現実のデータでやると局所解に引っかかるなどの理由で最適化がうまくいかないことがあります。調節したり、獲得関数の最大化戦略の選択など、ベイズ最適化自体にもチューニングのような作業が必要です。そのたびにあちこち変えながらやっているとエラーになったり、コードの見通しが悪くなるといった問題がありました。そこで、これを一つの関数にしてしまいたかったというのがパッケージ作成の動機です。パッケージを作ったgithub.comパッケージの原型ができたのは実は2017年3月頃で、Tokyo.RのLTなどでちょろっと話はしていたんですがいかんせん機能がしょぼかったのを幾つか改良して現在のバージョン(0.3.3)になっています。インストールできます。install.packages("MlBayesOpt")開発版はGitHubからインストールできます。手法とか現在対応してるのは以下の機械学習手法です。使っているため、これらで使われている引数のうち主なものは使えます。SVMではカーネルの選択もできます。引数で指定したものを返します。モデルとしては最小化したいものを選んだ場合はマイナスの値が返ってきます。細かいことは、パッケージのヘルプを御覧ください。引数で指定したデータはラベルの列と特徴量だけの状態にしてください。ここまでのデータは自分で作る必要があります。型だとかはあまり気にしなくても関数がよしなに調整してくれます。細かいチューニングについてパラメータの探索範囲を変えたいデフォルトでよく使われる範囲を指定するようになってますが、探索範囲を変えたいときは関数の中で指定してやればOKです。探索範囲を変えたいときは以下のように書きます。(最大化戦略の方法)あたりでしょうか。実はCRANにアクセプトされるのに結構苦労しました。Calendar2019の第1日目の記事です。データ解析周りを中心に、プログラミング全般で学んだことを記していく個人的な備忘録。合同企画回)」に参加しました。reserved.はてなブログをはじめよう!songcunyouzaiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。