fasttextによる予測
fasttextによる文書分類で作ったモデルを使って、新しい文章を分類します。
入出力
| ポート | 内容 |
|---|---|
| 機械学習モデル | モデル |
| 入力データ | データ |
| 出力データ | データ |
入力が 2 つあります。 機械学習モデル 側にfasttextによる文書分類の 1 つ目の出力をつなぎます。
Spark エンジンでは動きません。
行の数は変わりません。 入力の列はすべて残り、2 列増えます。
増える列
| 列名 | 内容 |
|---|---|
予測結果 | 予測したラベル |
予測確率 | その確からしさ。小数第 3 位に丸められます |
予測結果 には、学習時に使ったラベルがそのままの文字で入ります。 学習時に数値の列を目的変数にしていた場合も、文字列として入ります。数値として計算に使いたいときは列の型変更を掛けてください。
予測は 1 つだけ出ます。 2 番目に確からしいラベルは出力されません。
文章が空欄の行は、予測結果 も 予測確率 も空欄になります。 エラーにはなりません。形態素解析で品詞を絞ると、単語が 1 つも残らなかった行が空欄になります。空欄の行があるかは、予測のあと欠損値処理の欠損値を抽出で数えられます。
設定項目
- 予測対象の文書列を選択必須
- 分類したい文章。文字列の列だけ選べます。1 列だけです。
学習時と同じ前処理をする
学習に使った文章と同じ形に整えてください。 学習時に形態素解析を掛けたなら、予測するデータにも同じ設定で掛けます。辞書や品詞の選び方が違うと、モデルが知らない単語ばかりになって精度が落ちます。
列名は違っていてかまいません。 このノードで選び直せます。
エラーと対処
列を選ばずに実行した
「予測対象の文書列を選択」が空のまま実行したときに出ます。前の処理で列名が変わり、選んでいた列が入力データからなくなったときにも同じメッセージです。
対象の列が選択されていません。
直し方 — 文書の入った列を選び直してください。学習に使ったデータと同じ列名にしておくと、作り直しのときに選び直す手間が減ります。
よく使う例
1. 新しい問い合わせを分類する
今日届いた問い合わせを自動で振り分けたいとき。
入力(学習時と同じ形態素解析を掛けた列)
| 受付日 | 本文_形態素 |
|---|---|
| 2024-04-01 | 返品 送料 負担 |
| 2024-04-01 | 配送 日時 変更 |
設定
| 設定項目 | 値 |
|---|---|
| 予測対象の文書列を選択 | 本文_形態素 |
出力 — 予測結果 に 返品 配送、予測確率 に 0.932 のような値が入ります。
2. 精度を測る
検証データで当たり具合を見たいとき。
入力(正解の 種類 が付いている検証データ)
| 本文_形態素 | 種類 |
|---|---|
返品 手続き | 返品 |
配送 遅延 | 配送 |
設定 — 予測したあと、条件に応じて値を列に挿入で 予測結果 と 種類 が一致するかの列を作り、データ集計で平均を取ります。
出力 — 一致した割合がそのまま正解率になります。
3. 自信のない予測だけを人が見る
全件を人が確認するのは重いので、確からしさの低いものだけ回したいとき。
入力 — 例 1 の出力
設定 — 条件で行をフィルタで 予測確率 < 0.6 に絞ります。
出力 — 確からしさの低い行だけが残ります。この分だけを人が確認します。
4. 予測結果ごとに件数を数える
どの種類が何件来ているかを見たいとき。
入力 — 例 1 の出力
設定 — 予測結果 をキーにデータ集計で件数を数えます。
出力 — 種類ごとの件数が出ます。
5. 定期実行に組み込む
毎朝自動で分類したいとき。
入力 — 例 1 と同じ
設定 — モデルを作るワークフローと、予測するワークフローを分けます。予測側だけをスケジュールの新規作成に沿って登録し、定期実行します。
出力 — モデルを作り直さずに、毎回の新着分だけが分類されます。