自動車保険の保険金請求のデータから不正請求の疑いの度合いを見込み、調査に回す順番と疑いの理由を損害調査の担当に出す
自動車保険の新しい請求ごとに、過去の請求と調査の結果から不正の疑いの度合いを見込みます。度合いの高い順に並べ、度合いを押し上げた要因を理由として添えて、損害調査の担当へ渡します。
- 連携・自動化
- Python
- 対象業界
- 保険
- 対象部門
- カスタマーサポート
- 対象業務
- 内容確認・チェック/集計・分析
- 主な課題
- 判断に時間がかかる/属人化している/確認ミスが多い
- AIで行う処理
- 予測
- 主な効果
- 判断支援/属人化解消/工数削減
- 導入難易度
- ★★★★★
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 事故の受付で、事故日・場所・事故の型・相手の有無・修理工場・連絡先を受付・調査システムに入れる
- 担当者が契約管理システムを開き、契約の始期、車両保険の金額、過去の契約の変更を見る
- 事故受付・調査システムで、同じ契約者・同じ車の過去の請求を引く
- チェックリストの各項目に印を付け、点数を合計する
- 点数が一定以上のものを、主任に相談する
- 主任が記憶と照らして、特別調査に回すかを決め、依頼書を書く
- 特別調査の結果を、スプレッドシートに記録する
- 自動毎朝、前日までに受け付けた請求を、事故受付・調査システムと契約管理システムから書き出す
- 自動請求ごとに、契約・事故・過去の請求の特徴量を作る
- 自動電話番号・振込先の口座・住所・修理工場・相手方の車両番号が、過去3年の他の請求と重なる数を数える
- 自動モデルが請求ごとの疑いの度合いと、度合いを押し上げた要因の寄与を出す
- 自動寄与の大きい要因を、決めておいた言い回しの理由文にして、度合いの高い順に並べる
- 自動無作為に選んだ一定の割合の請求に、度合いに関係なく「抽出確認」の印を付ける
- 人主任が一覧の上位と抽出確認の請求を見て、特別調査に回すものを決める
- 人特別調査の担当が事実を確かめ、結果を記録する
- 自動調査の結果を、次の学び直しの正解として取り込む
各工程の詳しい説明を読む
- 事故の受付で、事故日・場所・事故の型・相手の有無・修理工場・連絡先を受付・調査システムに入れる
- 担当者が契約管理システムを開き、契約の始期、車両保険の金額、過去の契約の変更を見る
- 事故受付・調査システムで、同じ契約者・同じ車の過去の請求を引く
- チェックリストの各項目に印を付け、点数を合計する
- 点数が一定以上のものを、主任に相談する
- 主任が記憶と照らして、特別調査に回すかを決め、依頼書を書く
- 特別調査の結果を、スプレッドシートに記録する
(a)全件にチェックリストを付ける時間が無い。 1件4分でも2,400件で月160時間で、事故の多い月はチェックリストが後回しになり、支払の手続きが先に進みます。 調査に回すべき請求が、支払の後に見つかることがあります。
(b)兆候が別々の請求に分かれている。 同じ電話番号、同じ振込先の口座、同じ修理工場、同じ相手方が複数の請求に出てくることは、1件ずつ受け付けている担当者には見えません。 気づくのは、たまたま同じ担当者が続けて受けたときだけです。
(c)チェックリストの点数が、調査の結果と合っていない。 項目は何年も前に作られたもので、点数が高くても調査して何も無い請求が多く、点数が低くても不正だった請求があります。 どの項目がどれだけ効いているかを、確かめる仕組みがありません。
(d)判断の基準が人に付いている。 主任の記憶は書き出されておらず、同じ請求でも、誰が受けたかで調査に回る・回らないが分かれます。
- 【自動】 毎朝、前日までに受け付けた請求を、事故受付・調査システムと契約管理システムから書き出す
- 【自動】 請求ごとに、契約・事故・過去の請求の特徴量を作る
- 【自動】 電話番号・振込先の口座・住所・修理工場・相手方の車両番号が、過去3年の他の請求と重なる数を数える
- 【自動】 モデルが請求ごとの疑いの度合いと、度合いを押し上げた要因の寄与を出す
- 【自動】 寄与の大きい要因を、決めておいた言い回しの理由文にして、度合いの高い順に並べる
- 【自動】 無作為に選んだ一定の割合の請求に、度合いに関係なく「抽出確認」の印を付ける
- 【人】 主任が一覧の上位と抽出確認の請求を見て、特別調査に回すものを決める
- 【人】 特別調査の担当が事実を確かめ、結果を記録する
- 【自動】 調査の結果を、次の学び直しの正解として取り込む
7番目が、この設計の分かれ目です。 調査に回すかを決めるのは主任で、度合いは並べ方の材料にすぎません。 支払の手続きは、度合いに関係なくこれまでどおり進みます。
6番目の「抽出確認」が、この構成を長く使えるものにする仕掛けです。 モデルが学ぶ正解は、過去に調査した請求の結果だけです。調査に回さなかった請求が不正だったかどうかは、誰も知りません。 そのまま学び直しを続けると、モデルは「主任が回したくなる請求」をなぞるだけになります。無作為に選んだ請求も調べることで、モデルが見落としている型を見つける材料ができます。
02今回想定するシステム構成
事故受付・損害調査システム / 契約管理システム
│ 前日までに受け付けた請求の書き出し
▼【トリガー】毎朝7時の定時実行
Python(pandas で請求ごとの特徴量の作成)
│ 契約の始期から事故までの日数/届出までの日数/事故の時間帯
│ 車両保険の金額と時価の差/過去の請求の回数
▼
Python(請求どうしのつながりの数え上げ)
│ 電話番号・口座・住所・修理工場・相手方の車両番号の重なり
▼
Python(LightGBM の LGBMClassifier)
│ 疑いの度合い + predict(pred_contrib=True) で要因ごとの寄与
▼
理由文への置き換え(決めておいた言い回しの表)
│
├──▶ 度合いの高い順の一覧(理由つき)
└──▶ 抽出確認の印(無作為)
▼
【主任が特別調査に回すものを決める】
▼
調査の結果の記録 ── 月1回の学び直し| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Python(pandas・LightGBM の LGBMClassifier・SHAP) | R、Amazon SageMaker |
| データの取得元 | 事故受付・損害調査システムと契約管理システムの書き出し | 各システムのデータベースの参照用の複製 |
| 保存 | 社内のデータベース | ファイルサーバー |
| 通知 | 社内のメールで主任へ一覧の場所を知らせる | 社内のチャット |
どのシステムにも書き込みません。 調査の依頼は、これまでどおり主任が依頼書を書いて出します。度合いの数字が、支払の保留や査定の画面に自動で表示される経路は作りません。 担当者が度合いを先に目にすると、請求者への応対そのものが変わってしまうからです。
生成AIは使いません。 理由文は、要因ごとに決めておいた言い回しに値を差し込んで作ります。理由が毎回違う言い方で出ると、担当者は同じ要因かどうかを読み比べなければならなくなります。 請求者の氏名や事故の詳細を外部のサービスに渡す必要もありません。
モデルに LightGBM を選ぶ理由は3つあります。 1つ目は、predict に pred_contrib=True を渡すと、請求ごと・要因ごとの寄与が返ることです。返り値は要因の数に1を足した列を持ち、最後の列が期待値です。度合いを押し上げた要因を、この寄与の大きい順に取り出します。
2つ目は、不正の請求が全体のごく一部であることを扱えることです。2値の分類では is_unbalance や scale_pos_weight で、少ないほうの重みを調整できます。
3つ目は、修理工場や事故の型のような区分の値をそのまま扱えることです。categorical_feature を 'auto' にすると、pandas の順序のない区分の列が区分として使われます。
寄与をさらに詳しく見たいときは、SHAP の TreeExplainer を使います。 LightGBM・XGBoost・CatBoost と多くの木のモデルに対応し、feature_perturbation="tree_path_dependent" なら背景のデータを用意せずに、木をたどって値を出します。日々の一覧は LightGBM の寄与で足り、TreeExplainer はモデルを見直すときに使います。
03どうやって実装するのか
処理の起点を決める
毎朝7時に、前日までに受け付けた請求を対象に動かします。 受付のたびに1件ずつ動かす形にはしません。請求どうしのつながりは、その日に受け付けた他の請求も含めて数えないと拾えないためです。同じ日に同じ口座の請求が2件入ってきた、という型は、1件ずつでは見えません。
朝に一覧を出すのは、主任がその日の調査の割り振りを決める前に間に合わせるためです。 特別調査の担当が1日に動ける件数は限られているので、どの請求から手を付けるかを朝のうちに決められることが大事です。
学び直しは別に動かします。月に1回、調査の結果が確定した請求を足して作り直します。 調査は数週間から数か月かかるため、結果がまだ出ていない請求を正解にも不正解にも入れないことが、学び直しの条件です。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 請求の内容 | 請求番号、事故日、受付日、事故の時間帯、場所、事故の型、相手の有無、修理工場、見積額 | 事故受付・調査システム |
| 契約の内容 | 契約の始期、車両保険の金額、車の時価の目安、補償の変更の履歴 | 契約管理システム |
| 過去の請求 | 同じ契約者・同じ車・同じ関係者の過去3年の請求と結果 | 事故受付・調査システム |
| つながりの材料 | 連絡先の電話番号、振込先の口座、住所、相手方の車両番号 | 事故受付・調査システム |
| 調査の結果 | 特別調査に回したか、不正と判明したか、支払ったか、確定日 | 調査の記録(スプレッドシート) |
質を決めるのは、いちばん下の行です。 どの請求が調査で不正と判明したかの記録が無いと、モデルは何を学べばよいかが分かりません。スプレッドシートの調査の記録を、請求番号でつなげられる形に直すのが最初の作業です。
入れない項目も決めておきます。 契約者の国籍、性別、年齢は特徴量に入れません。これらで度合いが上がると、属性で人を疑う仕組みになります。 事故の事実と請求のしかたに関わる値だけを使います。
データの取得方法を決める
各システムから、前日までに受け付けた請求と、つながりを数えるための過去3年分の請求を書き出します。過去分は毎日全件を引き直さず、前日までの数え上げの結果に新しい請求を足す形にします。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 新しい請求の内容 | 事故受付・調査システム | 見込みの対象 |
| 契約の始期と補償の変更 | 契約管理システム | 契約直後・補償を上げた直後の事故の検知 |
| 過去の請求と結果 | 事故受付・調査システム | 請求の回数、学び直しの正解 |
| 電話番号・口座・住所 | 事故受付・調査システム | 請求どうしのつながりの数え上げ |
| 調査の結果と確定日 | 調査の記録 | 学び直しの正解 |
電話番号と口座の番号は、そのままの形で比べません。 ハイフンや全角・半角の違いをそろえたうえで、照合用の値に置き換えてから数えます。 数え上げの処理と一覧には、元の番号を出しません。
AIへ渡す前に整形する
- 表記をそろえる … 電話番号・口座番号・住所・修理工場の名前の書き方を統一します。修理工場は名前の表記ゆれが多いため、工場の登録番号で引きます
- 照合用の値に置き換える … 電話番号・口座・住所を、元に戻せない照合用の値にします
- つながりを数える … 照合用の値ごとに、過去3年の他の請求に出てくる数を数えます。同じ契約者の請求どうしは数えません
- 特徴量を作る … 契約の始期から事故までの日数、事故から届出までの日数、補償の変更から事故までの日数、深夜の事故か、車両保険の金額と時価の差、過去3年の請求の回数、見積額、修理工場、事故の型
- 欠けた値を残す … 相手の無い事故では相手方の車両番号は欠けたまま渡します
- 学習の正解を決める … 調査で不正と判明したものを1、調査して問題が無かったものと、調査せずに支払って1年たったものを0とし、結果が確定していないものは学習から外します
3番目の「同じ契約者の請求どうしは数えない」を忘れないでください。 同じ人が同じ電話番号で2回請求するのは当たり前で、それを数えると、事故の多い普通の契約者が上位に並びます。 見たいのは、別々の契約者のはずの請求に、同じ連絡先や口座が出てくることです。
6番目の「調査せずに支払ったものを0とする」は、割り切りです。 その中に見逃した不正が混ざっていることは避けられません。第5章の抽出確認で、その混ざり方を少しずつ確かめます。
AIに処理させる
させるのは、請求ごとの疑いの度合いと、要因ごとの寄与を出すことだけです。 調査に回すか、何を調べるかは、主任と特別調査の担当が決めます。
| 見るもの | 出し方 | 使い方 |
|---|---|---|
| 疑いの度合い | predict_proba の値 | 並べる順番 |
| 要因ごとの寄与 | predict(pred_contrib=True) | 度合いを押し上げた要因を上位3つまで取り出す |
| 理由文 | 寄与の大きい要因を、決めておいた言い回しに置き換える | 主任と調査の担当が読む |
| 抽出確認の印 | 度合いと関係なく無作為に選ぶ | モデルの見落としの確認 |
理由を上位3つまでにしているのは、主任が1行で読める数だからです。 要因を10個並べると、どれが効いているのかを主任が読み解く時間がかかり、理由を付けた意味が薄れます。 4つ目以降の寄与は記録には残し、一覧には出しません。
度合いは、確率としては読みません。 正解の0には見逃した不正が混ざっており、1は調査に回った請求の中からしか出てこないためです。「上から何番目か」として使い、一覧の上位何件を主任が見るかで運用します。
理由文は、要因ごとに言い回しを決めておきます。
| 要因 | 理由文の言い回し |
|---|---|
| 契約の始期から事故までの日数 | 契約の始期から事故まで {n} 日 |
| 補償の変更から事故までの日数 | 車両保険の金額を上げてから事故まで {n} 日 |
| 事故から届出までの日数 | 事故から届出まで {n} 日 |
| 電話番号の重なり | 同じ連絡先が、別の契約者の請求 {n} 件に出てくる |
| 口座の重なり | 同じ振込先の口座が、別の契約者の請求 {n} 件に出てくる |
| 修理工場 | この修理工場の過去3年の請求のうち、調査に回ったもの {n} 件 |
| させないこと | 理由 |
|---|---|
| 不正かどうかの結論 | 似ているかどうかであって、事実ではない |
| 支払の保留・減額 | 支払の判断は査定と調査の事実で行う |
| 請求者への説明 | 度合いを請求者に伝える場面は無い |
| 属性による調整 | 国籍・性別・年齢を材料にしない |
指示内容を固定する
この構成でAIに与える指示は、文章のプロンプトではなく学習と予測の設定です。
import lightgbm as lgb
FEATURES = [
"days_policy_start_to_loss", # 契約の始期から事故まで
"days_coverage_change_to_loss", # 補償の変更から事故まで(変更が無ければ欠けたまま)
"days_loss_to_report", # 事故から届出まで
"is_night", "loss_type", "repair_shop_id", # 区分の値は category 型にしておく
"vehicle_sum_insured_minus_value",
"claims_3y_same_policyholder",
"shared_phone_other_holders", "shared_account_other_holders",
"shared_address_other_holders", "shared_counterparty_other_holders",
"estimate_amount",
]
# 入れないもの:国籍、性別、年齢
model = lgb.LGBMClassifier(
n_estimators=400,
learning_rate=0.03,
num_leaves=31,
is_unbalance=True, # 不正と判明した請求はごく一部
random_state=0,
)
# 学習から外すもの:調査の結果が確定していない請求
train = claims[claims["label_status"] == "settled"]
model.fit(train[FEATURES], train["label"], categorical_feature="auto")
score = model.predict_proba(today[FEATURES])[:, 1]
contrib = model.predict(today[FEATURES], pred_contrib=True) # 最後の列は期待値
reasons = top_positive(contrib[:, :-1], FEATURES, k=3) # 押し上げた要因の上位3つ
「入れないもの」をコードの中に書いておくのは、後から足されないためです。 学び直しの担当が替わったときに、「年齢を入れたら精度が上がった」という理由で足されることがあります。精度が上がっても、属性で人を疑う仕組みになるなら入れません。
top_positive は、寄与が正のものだけを取り出す関数です。 寄与が負の要因は度合いを下げたもので、理由としては出しません。理由が3つ未満しか無い請求は、そのまま少ない数で出します。 無理に3つにそろえると、ほとんど効いていない要因が理由として並びます。
評価は、時期で分けて行います。直近の数か月を検証用に取っておき、学習に使いません。 不正の手口は時期で変わるので、ばらばらに分けた評価は実際より良く見えます。見る値は、上位何件に、調査で不正と判明した請求がいくつ入ったかです。
出力形式を固定する
請求1件ごとに、次の形で一覧に書き出します。
{
"claim_no": "",
"received_date": "2026-10-06",
"score": 0.0,
"rank": 1,
"reasons": [
{ "feature": "shared_account_other_holders", "value": 2, "text": "同じ振込先の口座が、別の契約者の請求 2 件に出てくる" },
{ "feature": "days_policy_start_to_loss", "value": 9, "text": "契約の始期から事故まで 9 日" }
],
"random_audit": false,
"linked_claims": ["", ""],
"model_version": "2026-09"
}
1つ目の理由は、reasons に要因の名前と値と文を分けて持つことです。 主任は text を読み、学び直しの担当は feature で集計します。どの要因で調査に回った請求が多く、そのうちどれだけが不正だったかを後から数えられます。
2つ目は、linked_claims で、つながった請求の番号を並べることです。 口座が重なっている別の請求がどれかが分かれば、調査の担当はその請求の記録から見始められます。 番号だけを出し、相手の契約者の氏名は一覧に出しません。
3つ目は、random_audit を度合いと別に持つことです。 抽出確認の請求は度合いが低くても一覧に載り、主任は「なぜこれが載っているのか」を印で区別できます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 事故受付・損害調査システム | 書き出し(読むだけ) | 請求の内容、過去の請求、つながりの材料 |
| 契約管理システム | 書き出し(読むだけ) | 契約の始期、補償と変更の履歴 |
| 調査の記録 | スプレッドシートの読み取り | 調査の結果と確定日 |
| 社内のデータベース | 書き込み | 一覧、寄与、主任の判断、調査の結果 |
| 主任 | 社内のメール | 一覧ができたことの通知 |
度合いを、事故受付・調査システムの画面に表示しません。 受付の担当者が請求者と話す前に度合いを見ると、質問の仕方や声の調子に表れます。 一覧を見るのは主任と特別調査の担当だけにします。
主任への通知のメールには、請求の中身を書きません。 書くのは「今朝の一覧ができた」ことと件数、一覧の置き場所だけです。メールは転送や誤送信で広がりやすく、度合いと理由を本文に載せると、見せる範囲を絞った意味がなくなります。 一覧そのものは、主任と特別調査の担当だけが開ける場所に置きます。
人が確認する
主任が見るのは、一覧の上位と抽出確認の請求です。 2,400件をすべて開く必要はなく、上位を理由と一緒に読み、調査に回すかを決めます。
- 理由を読む … どの要因で度合いが上がっているかを見ます
- 事実で確かめる … 理由に挙がった値が、請求の記録と合っているかを画面で確かめます
- 調査に回すかを決める … 回すものは依頼書を書き、回さないものには短い理由を選択肢から選びます
- 抽出確認の請求を回す … 度合いが低くても、決めた割合だけは調査します
目標は2,400件をならして1件1分です。 主任が詳しく見るのは毎朝の上位の十数件と抽出確認の数件で、残りは度合いと理由の1行を流し見て、支払の手続きに任せます。 上位を何件まで見るかは、特別調査の担当がその週に受けられる件数から逆算して決めます。
2番目を省かないでください。 電話番号の重なりが、代理店の代表番号や修理工場の番号だったということがあります。重なりの数は事実でも、疑う理由にはならない重なりです。 気づいたものは、次から数えない番号の一覧に足します。
支払の手続きは止めません。 保険法では、保険給付の期限について、保険事故や損害額などの確認をするための相当の期間という考え方が置かれています。調査が要ると判断したときに、その期間の中で事実を確かめます。 度合いが高いことだけを理由に、支払を寝かせる運用にしません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 代理店・修理工場の代表番号で重なりが出る | 数えない番号の一覧に足し、数え直す |
| 新しい修理工場で過去の記録が無い | 欠けたまま見込み、理由には出さない |
| 契約の書き出しが遅れて始期が取れない | その請求は度合いを出さず、翌朝に回す |
| 調査の記録に請求番号が無い | 学び直しから外し、記録の担当へ戻す |
| 度合いの上位が特定の地域・工場に偏る | 主任が偏りを確かめ、要因の作り方を見直す |
| 学び直しで上位の顔ぶれが大きく変わる | 前の版と並べて比べ、採用するかを決める |
| 請求者から調査の理由を聞かれる | 度合いではなく、確かめている事実で説明する |
| 同じ事故で車両・対物・人身の請求が分かれて入る | 事故番号でまとめ、つながりの数え上げで同じ事故どうしを数えない |
| 盗難の請求で見積額が無い | 見積額は欠けたまま渡し、車両保険の金額と時価の差を重く見ないよう理由から外す |
上の2行が最も多く起きます。 どちらもモデルの問題ではなく、数え上げの材料の問題です。 運用の最初の数か月で、数えない番号の一覧が育ちます。
下から2行目も見落としやすい型です。 1つの事故で車両と対物の請求が別の番号で入ると、同じ契約者・同じ口座の請求が2件あるように見えます。前処理の「同じ契約者を数えない」に加えて、同じ事故番号どうしも数えないようにしておきます。
記録を残す
- 毎朝の書き出しの件数と、請求ごとの度合い・寄与・理由
- 主任が調査に回したか、回さなかった理由
- 抽出確認に選ばれた請求と、その調査の結果
- 特別調査の結果と確定日
- モデルの版(学習の期間、特徴量、入れなかった項目、重みの設定)と、検証期間での上位の当たり方
- 数えない番号の一覧の変更の履歴
2つ目の「回さなかった理由」が、学び直しで最も効く記録です。 上位にあっても回さなかった請求の理由がたまると、モデルが的外れに上げている要因が見えてきます。
度合いと理由は、調査が終わった後も消しません。 請求者から苦情や照会があったときに、その朝の一覧で何位だったか、どの理由が並んでいたか、主任が何を見て調査に回したかを示せるようにしておきます。度合いを残しておくことは、度合いだけで判断していないことの裏付けにもなります。
04実装レベルの3段階
最小構成では毎日の請求には使えません。 材料が効くかを確かめる段階です。 半自動化で、1件4分が2分程度になります。 照会とチェックリストの記入は自動になりますが、点数の合計で並べるため、主任が全体を見て判断する時間が残ります。 本格構成で1分になり、この段階が本記事の想定です。理由つきの並び順が出ることで、上位以外を一覧で流せるようになるのが差です。 段階を飛ばさないでください。 半自動化を2〜3か月回すと、数えない番号の一覧と、調査の記録の欠けが先に分かります。そこを直してから学習させるほうが、上位の質が上がります。
05工数削減シミュレーション
導入後 2,400件 × 1分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 自動車保険の保険金請求を月に数千件受け付け、損害調査の担当が新しい請求ごとに不正の兆候のチェックリストを手で付けている損害保険会社。調査に回すかどうかが、経験のある担当者の勘に寄っている場合。過去数年分の請求の記録と、調査の結果(不正と判明したか、支払ったか)を請求番号で引ける場合。
- 請求が月に数百件以下で、担当者が全件の事情を把握できる場合。過去の調査の結果が記録に残っておらず、どの請求が不正だったかを後から特定できない場合。調査の担当が少なく、順番を付けても回せる件数が増えない場合。なお、不正に当たるかどうか、保険金を支払うかどうかの判断は、この構成では代替できません。
07最小構成で試す方法
- 過去2年分の請求から、調査で不正と判明した請求と、同じ時期の普通の請求を書き出す
- 表計算で、両者の契約の始期から事故までの日数、届出までの日数、過去の請求の回数を並べる
- 電話番号と口座について、別の契約者の請求と重なっている数を数える
- 不正と判明した請求のうち、当時のチェックリストの点数が低かったものに印を付ける
- 重なりの数で、その印の付いた請求がどれだけ拾えたかを見る
ここではまだ機械学習を使いません。 確かめるのは、請求どうしのつながりという材料が、チェックリストに無い手がかりになっているかです。
| 出てきた内容 | 判断 |
|---|---|
| 点数の低かった不正の請求が、重なりで拾えた | モデルを作る段階に進む |
| 重なりが代表番号ばかりで意味が無い | 数えない番号の一覧を先に作る |
| 調査の結果が請求番号でつながらない | 記録の整備が先。 モデルの問題ではない |
3行目が出ることは珍しくありません。 調査の記録が担当者ごとのスプレッドシートに分かれている拠点では、ここを直すのに一番時間がかかります。
この段階の結果は、主任と一緒に見てください。 重なりで拾えた請求を見せたときに「これは前から怪しいと思っていた」と言われるものと、「これは知らなかった」と言われるものがあります。後者が多いほど、つながりの数え上げが主任の記憶の外にある手がかりだということになります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 上位が普通の事故の多い契約者で埋まる | 同じ契約者の請求どうしは数えない |
| 代表番号の重なりで度合いが上がる | 数えない番号の一覧を育てる |
| モデルが主任の判断をなぞるだけになる | 抽出確認で、調査しなかった型の正解を足す |
| ばらばらに分けた評価で良く見える | 時期で分けて、直近を検証に取っておく |
| 結果の確定していない請求を0にする | 確定していないものは学習から外す |
| 度合いを確率として読む | 順番として使い、上位何件を見るかで運用する |
| 属性を足すと精度が上がる | 入れない項目をコードに書き、足さない |
| 理由が担当者に伝わらない | 要因ごとに言い回しを決め、値を差し込む |
| 度合いが受付の画面に出る | 見せる範囲を主任と調査の担当に限る |
| 度合いだけで支払を止める | 支払は事実で決める。 調査は相当の期間の中で行う |
上の3行が、この構成の失敗のほとんどです。 どれも、モデルが学ぶ材料が、過去の人の判断に強く寄っていることから起きます。材料の偏りを自覚して設計しないと、仕組みは今の勘を速くするだけになります。
下の2行は、運用に入ってから効いてきます。 度合いが見える人が増えるほど、度合いが判断の代わりに使われ始めます。 見せる範囲を最初から絞っておきます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 請求者と相手方の氏名・連絡先・住所、振込先の口座、事故の内容、契約の内容、そして不正の疑いの度合いという、本人に大きな影響を与えうる推計です。
- 度合いを判断の代わりにしない … 調査に回すか、支払うかを決めるのは人で、度合いは並べ方の材料です。 自動で支払を止める経路を作りません
- 属性を材料にしない … 国籍・性別・年齢を特徴量に入れず、入れないことを設定の中に書いて残します
- 見せる範囲を絞る … 度合いを見るのは主任と特別調査の担当だけにし、受付の画面に出しません
- 照合用の値で数える … 電話番号と口座は照合用の値に置き換えて数え、一覧に元の番号を出しません
- 外部の情報の扱いを分ける … 日本損害保険協会は保険金不正請求ホットラインを設け、寄せられた情報を参加保険会社と共同利用するとしています。こうした外部の情報を特徴量に入れるかは、その情報の利用目的の範囲をコンプライアンスの部門と確かめてから決めます
- 偏りを定期的に見る … 上位が特定の地域・修理工場・事故の型に偏っていないかを、毎月の学び直しのたびに確かめます
誤りが起きた場合のリスクは、不正でない請求者を疑うことと、不正を見逃すことの2つです。 前者は度合いを結論として扱うと起き、後者はモデルが過去の判断をなぞると起きます。前者は運用の決まりで、後者は抽出確認で守ります。
10まず何から始めるか
1週目:調査の記録をつなげる
担当者ごとのスプレッドシートに分かれた調査の記録を集め、請求番号と結果と確定日の3列にそろえます。 何件の請求に正解が付いているかを数えます。
2週目:つながりを数えてみる
第8章の最小構成で、電話番号と口座の重なりを数えます。代理店や修理工場の代表番号が混ざっていないかを最優先で見ます。
3週目:入れない項目と見せる範囲を決める
国籍・性別・年齢を入れないこと、度合いを見るのは主任と特別調査の担当だけにすることを、コンプライアンスの部門と決めます。 あわせて、抽出確認の割合を特別調査の担当と決めます。
4週目:モデルを作って時期で評価する
Python で LightGBM のモデルを作り、直近の数か月で上位の当たり方を見ます。この時点では一覧を運用に出さず、当時の主任の判断と並べて比べます。
2か月目: 理由文と抽出確認を足し、一覧を主任に出します。回さなかった理由の記録を始めます。3か月目以降: 学び直しを月1回回し、1件4分が何分になったかを実測します。抽出確認の請求の中から、モデルが拾えていなかった型が見つかり、それを学び直しに足せた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
predict の pred_contrib で要因ごとの寄与が返り、返り値が要因の数+1列で最後の列が期待値であること。SHAP の詳しい説明には shap パッケージを使えること。2値分類で is_unbalance・scale_pos_weight が使えること。categorical_feature が 'auto' のとき pandas の順序のない区分の列が使われること | LightGBM: LGBMClassifier | 2026-10-07 |
TreeExplainer が木のモデルの SHAP 値を求め、XGBoost・LightGBM・CatBoost と多くの scikit-learn の木のモデルに対応すること。feature_perturbation="tree_path_dependent" では背景のデータが要らないこと | SHAP: TreeExplainer | 2026-10-07 |
| 日本損害保険協会が保険金不正請求ホットラインを設け、自動車事故を装った不正受給などの情報を受け付けていること。寄せられた情報を参加保険会社との間で共同利用すること | 日本損害保険協会: 保険金不正請求ホットライン | 2026-10-07 |
| 保険法第21条が、保険給付の期限について、保険事故・てん補損害額・免責事由など確認が必要な事項の確認をするための相当の期間を定めていること | e-Gov 法令API: 保険法 | 2026-10-07 |
調査に回す基準と、度合いを見せる範囲は、自社のコンプライアンスの部門と決めてください。 本記事は上の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0843)についてのご相談はこちらから。
