配車や引取の担当を誰にするかは、多くの物流・卸の現場で、ベテランの担当者が頭の中で決めています。「この取引先の月曜の引取は、いつもこの人」という判断を、過去の実績から AI に提案させられないか。卸売・運送の会社の受注業務を一つの画面にまとめたとき、frectas はその一部として配車・引取の担当を提案する仕組みを作りました。この記事では、提案をどんな立場に置いたか、何を学習させたか、そして その提案がどれだけ当たっているかを、ごまかさずに測る方法 を書きます。配車 AI や需要予測の評価で起きやすい落とし穴も、あわせてまとめます。
この記事の数字は、frectas の案件の記録(検証の記録)によるもので、区分を添えています。
配車の提案は「助言だけ」にした
この案件の仕組みは、FAX・メールで届く注文書を生成 AI で読み取り、商品と取引先を名寄せし、在庫を引き当て、配車・引取の担当を提案し、既存の倉庫・運送システムに書き戻すところまでを一つの業務画面にまとめたものです。全体の話は事例「卸売・運送業者の受注業務を、注文書の読み取りから配車の提案まで一つの仕組みに」に書いています。
配車の部分は、AI が「この担当が良さそう」という助言だけを返し、決めるのは配車の担当者です。配車には、過去の記録に残らない事情が多く入ります。
- ドライバーの急な休みや、車両の点検
- 取引先との個別の約束(この時間帯はこの人に来てほしい、など)
- その日の荷物の量と、ほかの便との組み合わせ
こうした事情は、担当者は知っていても、データにはありません。記録から学んだ AI が自動で確定すると、外れたときに誰も気づかないまま配車が決まります。助言の形にしておけば、提案が外れても担当者がその場で直せますし、当たっていれば選ぶだけで済みます。在庫の引当も同じ考え方で、仕組みは候補を出し、人が確認して確定します。
提案は過去実績の「票」から作る
提案の作り方は、凝った機械学習ではありません。過去の実績から、どの取引先・どの引取先を、どの担当が受け持っていたかを数え上げ、多く受け持っていた担当を候補として出します。今回はこの数え上げを 曜日ごと に分けました。
考え方を示すために単純にした例です(実案件のデータや取引先とは違います)。
| 引取先 | 曜日 | 過去に受け持った担当(回数) | 提案 |
|---|---|---|---|
| A 社の倉庫 | 月 | 担当 X(多い)、担当 Y(少ない) | 担当 X |
| A 社の倉庫 | 木 | 担当 Y(多い)、担当 X(少ない) | 担当 Y |
| B 社の店舗 | 全曜日 | 担当 Z がほとんど | 担当 Z |
曜日を区別しないと、A 社の倉庫には曜日に関係なく担当 X が提案されます。現場では「月曜は X、木曜は Y」という回し方をしていても、それが平均に埋もれてしまいます。曜日ごとに数えると、こうした回し方を拾えます。
数え上げの方式には、提案の理由を担当者に説明しやすいという利点があります。「この引取先の木曜は、これまで Y さんが多く受け持っていた」と言えれば、担当者は提案を信じるか直すかをすぐ判断できます。理由の分からない提案は、当たっていても使われにくくなります。
一致率をどう測ったか
提案がどれだけ当たっているかは、過去の実績を正解に見立てて測りました。手順は次のとおりです。
- 実績のデータを日付で区切り、前の期間を学習に、後の期間を評価に使う
- 評価の期間の日付を、古い順に一日ずつ予測する。予測する日より後の実績は使わない
- 提案した担当が、実際にその日に受け持った担当と一致したかを採点する
- 方式を変えたときは、同じ評価の期間・同じ採点の単位で測り直して比べる
結果は次のとおりです。
| 条件 | 曜日を区別しない | 曜日ごとの学習を加えた | 区分 |
|---|---|---|---|
| 業務画面と同じ設定 | 71.1% | 72.9%(+1.8ポイント) | PoC実測 |
| 実績のみの条件 | 77.8% | 79.6% | PoC実測 |
どちらの条件でも、曜日ごとの学習を加えると一致率が上がりました。業務画面で使う設定では、+1.8 ポイントです。
ここで、この数字が何を意味しないかも書いておきます。これは 本番での正解率ではありません。過去の実績を正解に見立てた検証用の評価で、記録にもそう明記しています。また、目指しているのは一致率 100% でもありません。理由は次の節で書きます。
「実績を正解にする」評価が意味すること
実績を正解にした評価で測っているのは、「過去の割り当てをどれだけ再現できたか」です。これには良い面と限界があります。
良い面は、正解データを新しく作らなくてよいことです。配車の「正しい担当」を人に付けてもらうのは手間がかかり、付ける人によって答えも割れます。実績なら、すでに記録があります。
限界は、過去の習慣をそのまま正解として扱うことです。
- 過去の割り当てに偏りや非効率があれば、AI はそれも再現する
- 担当者が急な事情で入れ替えた日も「正解」に含まれ、AI がそれを外すと不一致になる
- 一致率を上げることと、配車が良くなることは同じではない
ですから、一致率は 方式を変えた前後を比べる物差し として使っています。曜日ごとの学習を加えて 1.8 ポイント上がった、という比べ方には意味がありますが、「72.9% 当たるから自動で決めてよい」という使い方はしません。本番で役に立っているかは、担当者が提案をそのまま選んだ割合や、手直しにかかる手間で見ていくことになります。
配車 AI・需要予測の評価で起きやすい落とし穴
配車の担当提案に限らず、過去のデータから先を当てる仕組み(需要予測・入荷量の予測・作業時間の見積もりなど)の評価では、同じ落とし穴がよく起きます。どれも、一致率や精度が実力より高く見える方向に働くので、気づきにくいのが厄介です。
1. 未来の情報が学習に混ざる
データをランダムに学習用と評価用に分けると、評価する日の翌日や翌週の実績が学習に入ります。たとえば「来週もこの担当が受け持っている」という情報を使って今日を当てる形になり、本番では使えない手がかりで点数が上がります。時系列のデータは、日付で区切って 分けます。
集計の値にも同じことが言えます。「その取引先の月間の出荷量」のように、評価する日より後の分まで含んだ集計を特徴に使うと、知らないうちに未来の情報が入ります。
2. 学習に使った期間で採点する
学習に使ったデータで採点すると、仕組みは「覚えている答え」を返すだけで高い点が出ます。今回は、学習期間より後の日付だけを採点しています。方式を何度も調整するなら、調整に使う期間と最後に一度だけ測る期間を分けておくと、評価用のデータに合わせ込むのを防げます。この考え方は「AI開発をPoCで止めない合格ラインの決め方」でも書いています。
3. 採点の単位が条件ごとにずれる
「1 件の注文ごと」に採点するのか、「1 日の 1 か所の引取ごと」に採点するのかで、一致率は変わります。注文が多い引取先は、注文単位で数えると何度も数えられ、そこが当たるかどうかで全体の数字が大きく動きます。方式を比べるときは、評価の期間と採点の単位をそろえて から比べます。今回の表でも、二つの条件の数字はそれぞれの条件の中だけで比べ、条件をまたいでは比べていません。
4. 平均の一致率だけを見る
全体の一致率が上がっても、担当が頻繁に変わる引取先ではまったく当たっていない、ということがあります。いつも同じ担当の引取先は、どんな方式でも当たります。人の判断が本当に要るのは担当が揺れる所なので、引取先や曜日ごとに分けて、どこで外れているかを見るほうが、次の改善につながります。
作るときに決めておくこと
配車の提案や需要予測を作るときは、作り始める前に次の点を決めておくと、評価で迷いません。
| 決めること | 今回の決め方 |
|---|---|
| AI の出力の立場 | 助言だけ。決めるのは担当者 |
| 正解として使うもの | 過去の実績(過去の習慣を再現する、という限界を承知のうえで) |
| データの分け方 | 日付で区切り、学習期間より後の日付だけを順に予測・採点 |
| 採点の単位 | 比べる条件の間でそろえる |
| 数字の使い方 | 方式の前後を比べる物差し。本番の正解率としては扱わない |
精度の数字は、測り方を一緒に書かないと意味が伝わりません。frectas が数字に区分を付け、何を意味しないかまで書くのは、発注する側が「この数字で何が言えるのか」を判断できるようにするためです。
参考:この案件の仕組み全体
担当の提案は、受注業務の仕組みの一部です。注文書の読み取りから名寄せ、在庫の引当、既存システムへの書き戻しまで、どこに AI を使い、どこを人が確定しているかは、事例「卸売・運送業者の受注業務を、注文書の読み取りから配車の提案まで一つの仕組みに」とサービス「FAX・メール受注の AI 化」にまとめています。
配車や引取の割り当てが特定の担当者の経験に頼っている、過去の実績はあるが活かせていない、という方は、お問い合わせからご相談ください。いまの割り当ての決め方と、残っている実績データの形(どの期間・どんな項目か)を教えていただければ、提案の仕組みが作れそうか、どう評価するかの見立てをお伝えします。