今回はSkyFoxの学習データと評価データの切り分けについて説明します。
何故学習データと評価データに分割する必要があるのか?
分類モデルと回帰モデルでは学習データをアップロードした後に内部で学習データと評価データにランダムに分割します。そして学習データだけでモデルを作成し、評価データで作成したモデルの性能を評価します。
すべてのデータを学習に使用してしまうと、作ったモデルがそのデータにだけ当てはまりすぎてしまっている可能性をチェックできないからです。
ですので予測に使用していないデータで客観的に評価することが重要になります。
分割割合について
SkyFoxでは学習データ75%、評価データ25%となるように設定されています。この割合は現状変更できない仕様となっています。
ただ一度モデルができた後に学習100%、評価0%となるように変更してモデルを更新することは可能です。モデル詳細画面にある下記の赤い枠で囲ったボタンです。
このボタンを押すとアップロードデータ全件を使ってモデルを再作成します。
これにより、性能評価を行うことはできなくなりますので、画面に表示される性能評価値は、全データモデルを作成する直前の情報となるのでご注意ください。
あとひと手間必要にはなりますが強制的に任意の比率で分割する裏技があります。
※こちらの記事を参考にしてください。
SkyFoxの中の機能として割合を指定できるようにしてほしい!といったニーズがあれば次回以降のバージョンアップで仕様変更を検討します。
乱数シード値について
ランダムに分けるための乱数シード値はアルゴリズムで自動(ホワイトボックス、ブラックボックスを含む)を選択した場合は1で固定されていて、任意の値を選ぶことができません。
ただアルゴリズムを個別で選択した場合は1以外の値で設定が可能です。
例)勾配ブースティング分類器を選択した場合
下記の赤枠の部分で変更可能です
データが少ない場合の処理で気を付けることは?
アップロードしたデータの件数が少ない場合、SkyFoxは自動的に全てのデータを用いてモデルを作成します。
その場合性能評価にも同じデータを用いていますので、過学習が起きている可能性があります。ご注意ください。
※過学習とはモデルが学習データに適合しすぎてしまい、汎用性が無くなってしまっている状態のことです。
では具体的にどれだけ少なかったら学習データが100%になるかというと、下記の通り分類なのか回帰なのかで設定が異なります。
|
||
---|---|---|
学習100% 評価0% |
1,000件以下 | 2,000件以下 |
学習75% 評価25% |
1,000件超 | 2,000件超 |
ここで言いたいのは1,000件や2,000件あれば大丈夫ということではありません。閾値をこのように設定しているだけで、安定した結果を得るためには、もっと大量にデータあることが望ましいです。
※トライアルサイトはSkyFoxの公式ページ(https://skyfox.ai)にあるリンクからご利用頂けます。