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

多値分類にて、学習データ内の不正解行を確認したい

k-kishibe
NiCdバッテリー

多値分類にて、学習データ内の不正解行を確認したい

多値分類を学習させた際に、混同行列にてどの分類が多く予測を外しているかを確認することができますが、

実際にどのレコードのデータを外しているかを確認する方法はありますでしょうか?

 

以下の方法で確認することはできそうですが、確認までの手間が多くなることが懸念点です。

・確認したいモデルにて、予測タブ選択

・学習データを予測させてダウンロード

・一番確率の高いカラム名を並べる

・学習データと上記を比較

 

0 件の賞賛
4件の返信4
Isao
データロボット同窓生

手動で実行する場合は概ねその手順となります。なお、予測した後のデータは学習データと同じ順番に並んでいますので、学習データの右側に予測結果をコピペして頂いてからカラムの確認や学習データの調査を行う方が効率的と思います。

また、Python APIを使って頂くと最も予測確率の高いクラスが"Prediction"列として入手することができますので、ご自身で確認していく手間は減ります。

Isao_0-1616457486040.png

 

以下サンプルのコードです。(xxxxxはご指定が必要です。)

import datarobot as dr

end_point = xxxxxxxxxx

token = xxxxxxxx

project_id = xxxxxx

model_id = xxxxxxxx

c = dr.Client(endpoint=end_point, token=token)

model = dr.Model.get(project_id, model_id)

training_predictions_job= model.request_training_predictions(dr.enums.DATA_SUBSET.ALL)
training_predictions = training_predictions_job.get_result_when_complete()

df = training_predictions.get_all_as_dataframe()

 

ご参考になりましたら幸いです。

0 件の賞賛
k-kishibe
NiCdバッテリー

ご回答ありがとうございます。

デプロイ生成後、そちらで予測する際はPrediction列に予測カラム名が表示されていることを確認しました。

1点懸念点があります。

以下の2点の予測結果が異なるのではないか?ということです。

※特に②に関しては作成済みモデルに完全に同じデータを再投入することになるので、正解数が大幅に増えないか?を懸念しております。

 

①実際に作成したモデルに同じレコードを投入して予測した結果

②混合行列を作成した際に実施しているCVなどの結果

 

今後の新データに対する予測正誤のデータ傾向を見るのであればCVの結果を見るのが

正しいのではないかと考えております。

 

改めて確認なのですが、混合行列の結果をレコードの行情報で見たりすることは現状では難しいということでしょうか?

 

アドバイス宜しくお願い致します

 

0 件の賞賛
Isao
データロボット同窓生

仰る通り、学習に使ったデータをそのまま再投入して予測を行えば過大評価になります。

そうではなく、予測モデルの予測タブ内にある「トレーニングデータ」から「予測を計算」→ダウンロードをして頂く必要があります。こちらを実施頂くと、該当のデータがモデルの学習に含まれない際の予測値(Stacked prediction)をダウンロードできますので、その様な過大評価は発生しません。

なお、私が上記で記載したスクリプトはデプロイしなくとも使用可能であり、この手順と同様にトレーニングデータの予測値のダウンロードを行います。

Isao_0-1616459222263.png

 

k-kishibe
NiCdバッテリー

ありがとうございます。

こちらより予測・ダウンロードした際は、各予測カテゴリの確率のみ出力されるようですので

確率が最大のものを比較したいと思います。