分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。
新しいサンプルに対するモデルの予測性能を評価するために N-fold クロスバリデーションが用いられます。
![](https://datachemeng.com/wp-content/uploads/2017/08/SnapCrab_2017-8-19_12-3-2_No-00.png)
データセットのサンプルを N グループに分割し、(N−1) 個のグループで構築されたモデルで残りの 1 グループを予測する、といったことを、全てのグループが予測用のデータになるまで N 回繰り返します。N がサンプル数と等しいとき、Leave-One-Out (LOO) クロスバリデーションとも呼ばれます。
広く一般に用いられているクロスバリデーションですが、適切にクロスバリデーションの結果を評価し、モデルの予測性能と紐付けるためには、いくつかの注意点があります。
サンプル数によって N を変える
クロスバリデーションでは、全サンプルを使ってモデルを構築するのではなく、(N−1) 個のグループでモデルを構築するため、モデル構築時のサンプルが少なくなります。N を小さくすればするほど、サンプル数はさらに小さくなります。もともとの全サンプル数が小さいときに N を小さくしてしまうと、クロスバリデーションでのモデル構築用のサンプルがさらに少なくなり、モデルが不安定になってしまいます。これでは、全サンプル数で構築したモデルと大きく変わってしまい、モデルの予測性能を適切に評価することができません。
サンプル数が小さいときには、N を大きくするようにしましょう。目安は以下の通りです。
- サンプル数 30 未満 : leave-one-out クロスバリデーション
- サンプル数 30 ~ 100 : 10-fold クロスバリデーション
- サンプル数 100 ~ 1000 : 5-fold クロスバリデーション
- サンプル数 1000 以上 : 2-fold クロスバリデーション
ランダムに分割する
グループに分けるとき、ランダムに分けます。例えば、上から順に N グループに分けてしまうと、サンプルの並びによっては各グループに傾向が出てしまい、モデルの予測性能の評価に、そのサンプルの傾向を予測できるかといった要素が入ってしまい、一般的な新しいサンプルをどの程度予測できるかを評価できません。LOO クロスバリデーションの時は気にしなくて構いませんが、それ以外の時はランダムに各グループに分けるようにしましょう。
全サンプルで1回、統計量を計算する
統計量を計算するときは、グループごとではなく、グループごとの結果を一つにまとめて全サンプルで1回計算します。例えば、回帰分析における r2 やクラス分類における正解率などをクロスバリデーション後に計算して、それぞれの r2 や正解率などの統計量が最大となるハイパーパラメータを選ぶといったことをします。この時、N 個の予測値を全て1つにまとめて統計量を計算するようにしてください。言い換えると、全サンプルで統計量が計算されます。
グループごとに統計量が計算され、N 個の r2 の平均値を計算して、最終的な r2 とする方がいますが、これでは安定的にモデルの予測性能を評価できません。そもそも、r2 はサンプルのばらつきの影響を受けるため、サンプルが異なる r2 の平均することに意味がありません。また、少ないサンプルで r2 や正解率計算されると、たまたま値が小さくなったり、大きくなったりといったことが起きてしまいます。クロスバリデーション後は、必ず全てのサンプルの予測値を用いて実測値と比較し、統計量を1回計算するようにしましょう。
なお r2 や正解率の値や、最終的なモデルの結果に違和感があるときは、r2 や正解率などの統計量だけでなく、予測結果をしっかり確認するようにしましょう。
クロスバリデーションで何を評価しているのか理解する
今、クロスバリデーションで何を評価しているのか理解してから行うことが重要です。手法によって、クロスバリデーションで何を評価しているか異なります。具体的には、ハイパーパラメータのない手法とハイパーパラメータのある手法で、何を評価しているかが異なります。
ハイパーパラメータのない手法では、その手法自体の予測性能を評価しています。一方で、ハイパーパラメータがある手法においては、ハイパーパラメータの候補を変更してクロスバリデーションをすることから、その手法とあるハイパーパラメータの候補の組み合わせにおける予測性能を評価しています。ハイパーパラメータがある手法に対して、その手法自体の予測性能を評価したいときは、トレーニングデータとテストデータの分割やダブルクロスバリデーションを使うことになります。
![](https://datachemeng.com/wp-content/uploads/cooking08_kakugiri.png)
以上の注意点に気をつけながら、クロスバリデーションを用いるようにしましょう。
以上です。
質問やコメントなどありましたら、X, facebook, メールなどでご連絡いただけるとうれしいです。