キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
DataRobot コミュニティ

DataRobot Tips of the Day 100%モデルにおける * がついた精度スコアは何か?

Isao
データサイエンティスト
データサイエンティスト

DataRobot Tips of the Day 100%モデルにおける * がついた精度スコアは何か?

100%モデルにおける * がついた精度スコアは何か?

 

100%モデルとはDataRobotに投入された全てのデータを使って学習した予測モデルのことです。

デフォルト設定ではDataRobotの作成したモデルの中で、交差検定のスコアが最も良かったシングルモデルを100%まで自動でモデリングを行い、「デプロイ推奨」や「デプロイの準備済み」という緑のタグをつけてくれています。

モデルの項目にモデルのサイズはXX%という形で表示されます。下図であれば一番上のモデルは100%、下のモデルは64%だけ使って作成されたモデルであることを示しています。

 

Isao_0-1639993756666.png

 

さて、DataRobotの予測モデルの精度を評価する際に見て頂きたいのは交差検定のスコアです。検定スコアは全体の一部だけを評価した結果ですので、よりデータの大きい交差検定スコアの方が信頼できます。

上図で注目して頂きたいのは、100%モデルの方の交差検定のスコアには * のマークが付いています。

 

この * が付いている交差検定のスコアは、多くの他の無印の交差検定のスコアと比較してはいけません。あくまで"参考"のスコアとして考えます。モデル選定時には * のついていない交差検定スコアのモデルの中で最も望ましいモデルの選定を行い、問題なければ100%モデルまで再トレーニングして実運用に使う、というのが通常の流れとなります。

 

ではこの * が付いているスコアは何なのかをご説明します。

まず、機械学習モデルの精度を測る際には、必ず学習データに入っていないデータに対して、予測値と実測を照らし合わせて評価する必要があります。

しかし、冒頭で書いた通り、100%モデルというのは投入したデータを全て学習データとして使用したモデルなので、もう学習データに入っていないデータは存在しません。

 

下図のように、デフォルトでは64%のモデルが検定用データ・ホールドアウトが学習データに入っていない最大サイズのモデルになります。どのデータが検定データ、ホールドアウトに分けられるかはプロジェクトを開始した際に決定されます。

交差検定というのはこの検定用データを学習用データの一部と入れ替えて何度も検定をしたスコアですので、この検定用のデータの領域が無ければスコアを出すことはできません。この入れ替え方も同様にプロジェクトを開始した際に決定されます。

 

Isao_1-1639993756600.png

 

 

100%モデルは上記のような検定用データ・ホールドアウトがもう無いので本来であれば64%モデルのように交差検定のスコアを表示することが本来はできませんが、DataRobotではこれを参考スコアとして出すようにしています。

出し方は以下の要領です。

 

①100%モデルで用いるハイパーパラメータを決定する(フローズン設定をしていない場合にチューニングを行う)

全体の80%を学習データとして、100%モデルと同じハイパーパラメータにしたモデルを作成し、20%を検定データとして予測を出す。

 この時、どこを学習や検定とするかなどのデータの分け方はプロジェクト開始時に決めたデータの分け方とは別。

③この20%の検定データを交差検定と同じ要領で学習データの一部と入れ替え、全てのデータに対して一度予測値を出す。

元のデータの分け方に当てはめて、集めた予測値と実測値を評価する。検定データ、交差検定スコア、ホールドアウトスコアを算出する。

 

この④の段階で算出したスコアを * 付きで100%モデルが表示している、というわけです。

ですので、このスコアは2つの意味で参考スコアであると言えます。

 

  1. 100%モデルの精度スコアではなく、80%モデルを100%モデルと同じハイパーパラメータで学習した結果の精度スコアである。
  2. 学習データと検定データをプロジェクト開始時に決めた分け方と違う分け方でモデルを作り、予測値を出している。

 

Aはそのままの意味で、最終モデルでは無いモデルのスコアなので"参考"だと理解しやすいかと思います。

Bについては一見問題点が分かりにくいので補足します。

例えば極端に大きいターゲット値を持つなど、シグナルが大きいデータが数点混じっているとします。

このデータが学習データにいる時といない時で、学習の傾向が変わり、引いては出力する予測値の傾向が変わります。

 

通常の * が付いていないモデルの中で比較する場合には、上記のようなデータが学習データにいる時・いない時というのは、プロジェクト開始時のデータの分け方に沿ってモデル間で全て同じ条件になりますので、同じ土俵でモデルの良し悪しが比較できます。

一方 * がついているモデルは他のモデルとは予測値を出す時の分け方が変わっています。他のモデルよりもスコアが低い、あるいは高いとしても、これはモデルの良し悪しではなく、データの分け方が原因の可能性があります。

なので、モデルの評価という観点では"参考"となるわけです。

 

以上のことから、通常の * がついていないモデルの中で比較を行って最も望ましいモデルを選定頂き、そのモデルを100%まで再トレーニングを行う。そしてその時に見れる * 付きのスコアは"参考"として頂く、というのがオススメのフローであるということがご理解頂けたかと思います。ご参考頂ければ幸いです。



ラベル(1)
0 件の賞賛
0件の返信0