募集中いろいろな大学などでの研究をわかりやすく紹介したり、研究生活のこと・データ解析のことなど書いたり。解析するデータ数が少ないとき、ありますよね。30サンプルしかないのに、どうやってモデル構築用データとモデル検証用データに分ければいいの・・・みたいな。クロスバリデーションするにしても、ただでさえ少ないサンプルを、分割してさらに分割しなければなりません。つくられたモデルが不安定になってしまいます。そこで、モデル検証用データを自分でつくることを考えましょう!そうすれば、今あるすべてのサンプルをモデル構築用データにできるわけです。下で説明するモデル検証用データのつくり方を、すぐに実現できるプログラムはこちらです。同じ言語であれば、noteでもSPIKEでも同じプログラムです。SPIKE近いサンプルとの間の中点をモデル検証用データにする2つのサンプルの間の中点をモデル検証用データにする方法を紹介します。すべての2つのサンプルで中点を計算するわけではありません。距離が近い2つのサンプルに限ります(遠い2点のサンプルの中点は、他のサンプルとは全く異なる点になってしまうため使いません)。)と同じように2つのサンプルの中点を計算します。モデル構築用サンプルが30あるとして、一つのサンプルにつき距離が最も近い10のサンプルとの間で中点を計算することにしましょう。単純に計算すると、すべての中点の数は30×10=300になりますが、実際には重複する中点が出てきますので、200くらいになります。この200点をモデル検証用データとして使うわけです。モデル検証用データの誤差が小さくなるように(RMSEが小さくなるように)、PLSの最適成分数を決めたり、SVRのC・εを決めたりできるわけです。近いサンプルとの間の中点をモデル検証用データにすることで、クロスバリデーションより多くのサンプルでモデルを構築することができるため、モデルが安定になり適切なパラメータを選ぶことができます。教師なし学習にも使える近いサンプルとの間の中点の利点の一つは、教師なし学習にも応用できるということです。SOMのマップサイズ、GTMのマップサイズ・RBFの数・分散などの値を、それぞれモデル検証用データの誤差(写像する前とした後との間のRMSEの値)が、小さくなるように決めることができます。教師なし学習におけるパラメータの設定は難しく、人によることが多いので、この方法は重宝します。ここまでお読みくださりありがとうございます。実行してモデル検証用データをつくれるプログラムへのリンクは、このブログの上の方にありますので、ぜひご活用ください。募集中!こちらへお願いします!ご案内。まとめオススメ記事セレクション。人工知能との未来における人の役割~現役のデータサイエンティストのメッセージ~集中する時間を確保するために大学教授が行っている8つのことtwitterでも発信中。univprofblog1無料メルマガでブログにない情報を配信中。データマイニングブログを勉強しながら役立つ情報を発信しています!フォローしていただけると嬉しいです。