みなさんは、あるデータセットが与えられたときに、モデル構築用データセットとモデル検証用データセットをどう分けてますか?ランダムに分けていますか?
ランダムに分けている方がほとんどです。ただ、ランダムに分けると、特にデータセットのサンプル数が小さいときに、モデル構築用データセットとモデル検証用データセットとで偏りがあることもありますよね。これでは、たとえばモデル検証用データセットのサンプルをぜんぜん正確には推定できない、といった誤った結論におちいってしまう可能性があります。これは避けたいです。
また、ランダムに選んでいるので、毎回結果が異なってしまうのも変な感じです。
なので、もう少し工夫してモデル構築用データセットとモデル検証用データセットとを分けましょう。モデル構築用データセットのサンプルは、なるべく広くばらついている方がよいですよね。これによって、広いデータ領域における説明変数 (記述子・特徴量・入力変数) と目的変数との関係を求められます。
そのようなモデル構築用データセットのサンプルを選ぶには、ズバリKennard-Stone (KS) アルゴリズムを使いましょう!
Kennard-Stone (KS) アルゴリズムのメリット
KSアルゴリズムは、すべてのサンプルの中からまんべんなくサンプルを選ぶアルゴリズムです。つまり、データセットのサンプル全体から、なるべくばらつきが大きいようにサンプルを選ぶことができます。そして選び終わったら、
- 選ばれたサンプル → モデル構築用データセット
- 選ばれなかったサンプル → モデル検証用データセット
とします。これで、モデル構築用データセットとモデル検証用データセットとが偏ることはありません。さらに、乱数を用いていませんので、毎回同じ結果になります。
Kennard-Stone (KS) アルゴリズムとは?
具体的にKSアルゴリズムは、以下の手順になります。
- データセットのサンプルの平均を計算し、平均とのユークリッド距離が一番大きいサンプルを選択する
- まだ選択されていない各サンプルにおいて、これまで選択されたすべてのサンプルとの間でユークリッド距離を計算し、その距離の最小値を代表距離とする
- 代表距離が最も大きいサンプルを選択する
- 2. と3. を繰り返す
これによって、必要なサンプル数になるまでサンプルを選択します。
たとえばモデル構築用データセットであれば、もちろんすべてのサンプル数にもよりますが、モデル構築用データセットのサンプル数はすべてのサンプル数の 2/3 程度がよいでしょう。
また上では『ユークリッド距離』で説明しましたが、『マハラノビス距離』や『1-タニモト係数』など、サンプル間が類似しているほど値が小さくなる指標であれば何でもOKです。
Kennard-Stone (KS) アルゴリズムのデメリット
KSアルゴリズムは、データセットにおけるすべてのサンプル間の距離を計算しなければなりません。なので、サンプル数が膨大になったときに、パソコンのメモリによっては計算できない可能性もあります。注意してください。
Kennard-Stone (KS) アルゴリズムのプログラム公開中!
KSアルゴリズムを実行するプログラムはこちらにあります。noteでもSPIKEでもAnyPayでも言語が同じであれば同じものです。
MATLAB言語(note): https://note.mu/notes/n15980a97db70
MATLAB言語(AnyPay):
https://anypay.jp/shops/GpeTLMrcxv/efSwVk2wfi
R言語(note): https://note.mu/notes/n3eb279935738
R言語(AnyPay):
https://anypay.jp/shops/GpeTLMrcxv/pua5ZIzdh5
Python言語(note): https://note.mu/univprof/n/n768be1252865Python言語(AnyPay): https://anypay.jp/shops/GpeTLMrcxv/g3LfVIpQvh
まとめ
みなさんも、偏りなくモデル構築用データセットとモデル検証用データセットとを分けるため、ぜひKSアルゴリズムを活用しましょう。さらに、サンプル数が多すぎてデータ解析・分析に時間がかかりすぎてしまうときは、KSアルゴリズムを使ってサンプルを選択してから解析・分析する、といったことも行われます。
ぜひKSアルゴリズムで快適にデータ解析・分析してください!
ご案内。
- 実践的なデータ解析の手順
- データ解析の手順の各段階における手法
- 公開中のプログラム・コード一覧(実用的かつ実践的なデータ解析・機械学習・データマイニング)
- 主成分分析(PCA)の進化する入門書・実践書~数式なしの導入から実践的応用・結果の解釈まで~(随時更新)
- 20人の学生に対する研究テーマの決め方
オススメ記事セレクション。
- 大学教員の5つのメリット (とデメリット?)
- 現役データサイエンティストへの『人工知能って怖いの?』に対する回答
- 人工知能との未来における人の役割~現役のデータサイエンティストのメッセージ~
- 集中する時間を確保するために大学教授が行っている8つのこと
- 風邪を引かないために大学教授が毎日行っている7つの方法
twitterでも発信中。
フォローしていただけると嬉しいです。
Follow @univprofblog1Tweets by univprofblog1
無料メルマガでブログにない情報を配信中。
無料メルマガの登録はこちら