コンテンツにスキップ

モデルで予測値算出

学習済みのモデルを別のデータに当てて、予測値の列を足します。 オートML・マニュアルML・MLアンサンブル(βver)のどれで作ったモデルでも使えます。

入出力

ポート内容
機械学習モデル学習済みモデル。左側の入力につなぎます
入力データ予測したいデータ。右側の入力につなぎます
出力データ入力データに予測値列を足したもの
エラー情報予測の結果。何も起きなければ「正常に予測が終了しました。」の 1 行だけです

Spark エンジンでは動きません。

設定項目

フォームには「設定項目はありません」と出ますが、その下にチェックボックスが 1 つあります。

エラーを無視する
グループごとに作ったモデルを使うときだけ効きます。一部のグループで予測に失敗しても止めず、通ったグループだけを出力データに出し、落ちたグループをエラー情報に出します。チェックを外していると、1 グループでも落ちた時点でノード全体がエラーになります。

予測対象データに要るもの

学習に使った説明変数の列が、同じ名前でそろっている必要があります。 列が足りないとエラーになります。

見るところ必要なこと
説明変数の列学習時と同じ名前で全部ある
文字列列の値学習時に出てこなかった値が入っていない
欠損説明変数に欠損がない
グループ列(グループごとのモデルのとき)同じ名前・同じ型で、学習時に出てきた値である

目的変数の列は要りません。あっても使われません。

エラーと対処

どのエラーも、つなぎ方か予測対象データを直して実行し直せば消えます。 このノードは元のデータを書き換えないので、やり直しても前の結果は壊れません。

モデルがつながっていない

予測対象モデルが入力されていません。

直し方 — 左側の入力に学習済みモデルをつなぎます

データがつながっていない

予測対象データが入力されていません。

直し方 — 右側の入力に予測したいデータをつなぎます

データが 0 件

予測対象データが0件のため失敗しました。

直し方 — 手前の絞り込みを見直して、行が残るようにします

説明変数の列が足りない

予測データに特徴量 (列名) が存在しません。

直し方 — 足りない列を作るか、列名の変更で学習時と同じ名前に戻します

学習時になかった値がある

(列名) 列の要素、 (値) は評価データには含まれていますが、学習データには含まれていません。

直し方 — その値の行を外すか、文字の置換で学習時にあった値にまとめます

グループごとに予測して、全部失敗した

グループ別のモデルで予測したとき、どのグループも予測できなかったときに出ます。後ろにグループごとの理由が付きます。

全てのグループで予測が実行できませんでした。データを確認してください。

この文面の後ろに、グループごとの理由が続きます。 理由を読んでください。説明変数の列や型が学習時と違う、というのがほとんどです。

グループごとに予測して、一部だけ失敗した

予測できたグループがあるのに、できなかったグループもあるときに出ます。

いくつかのグループで予測が実行できませんでした。「エラーを無視する」オプションをお試しください。

この文面の後ろにも、失敗したグループの理由が続きます。

直し方 — エラーを無視するを on にすると、できたグループだけを出して先に進めます。 失敗したグループの行には予測値が入りません。

説明変数に欠損がある

予測データに欠損値が含まれているため予測に失敗しました。欠損値を除外するか補完してください。

直し方 — 欠損値処理で埋めるか、欠損のある行を外します

グループ列がない・型が違う(古いモデルのとき)

予測データにグループ列 (列名) が存在しません。

予測データのグループ列 (列名) の型が構築したモデルと異なります。

この 2 つは、いまは作れない古いモデルをつないだときだけ出ます。 オートML・マニュアルMLで作ったグループごとのモデルでは、グループ列がないときに上の文言ではないエラーでノードが止まります。

直し方 — モデルを作ったときに指定した列と同じ名前・同じ型の列を用意します(列名の変更 / 列の型変更)

一部のグループで予測できない

いくつかのグループで予測が実行できませんでした。「エラーを無視する」オプションをお試しください。

直し方 — 落ちたグループを捨ててよいならエラーを無視するにチェックを入れます。捨てたくないなら、そのグループのデータを直します

すべてのグループで予測できない

全てのグループで予測が実行できませんでした。データを確認してください。

直し方 — エラーを無視するにチェックを入れても消えません。グループ列の値が学習時とまったく噛み合っていないので、どの値で学習したかを確かめます

よく使う例

1. 作ったモデルを新しいデータに当てる

お題 — 来月の解約を予測したい

入力 — 左に学習済みモデル、右に今月の顧客データ(説明変数の列は学習時と同じ)

設定 — なし

出力 — 顧客データに予測値列が足され、エラー情報には「正常に予測が終了しました。」の 1 行だけが出る

2. 店舗ごとのモデルで予測する

お題 — 店舗ごとに作ったモデルを、店舗が混ざったデータにまとめて当てたい

入力 — 左にオートMLの「グループごとにモデルを作成する」で作ったモデル、右に店舗コード列を持つデータ

設定 — なし

出力 — 店舗ごとに対応するモデルで予測され、1 つのデータにまとまって出る

3. 新しい店舗が混ざっていても最後まで通す

お題 — 学習時になかった店舗が増えたが、既存店の予測だけでも先に出したい

入力 — 例 2 と同じ。ただしデータに新しい店舗の行が混ざっている

設定 — エラーを無視するにチェック

出力 — 既存店の行だけが出力データに出て、新しい店舗はエラー情報に「学習時に無いグループの値のため予測が出来ません。」として並ぶ

4. 予測の当たり外れを数字にする

お題 — 正解が分かっているデータで、モデルの精度を測りたい

入力 — 正解の列も入ったデータ

設定 — なし。出力を予測精度を評価につなぐ

出力 — 指標の表と、精度検証結果が出る

関連