Media > AI活用ユースケース > カスタマーサポート > 自動車保険の保険金請求のデータから不正請求の疑いの度合いを見込み、調査に回す順番と疑いの理由を損害調査の担当に出す

自動車保険の保険金請求のデータから不正請求の疑いの度合いを見込み、調査に回す順番と疑いの理由を損害調査の担当に出す

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

自動車保険の新しい請求ごとに、過去の請求と調査の結果から不正の疑いの度合いを見込みます。度合いの高い順に並べ、度合いを押し上げた要因を理由として添えて、損害調査の担当へ渡します。

サマリー
連携・自動化
Python
対象業界
保険
対象部門
カスタマーサポート
対象業務
内容確認・チェック/集計・分析
主な課題
判断に時間がかかる/属人化している/確認ミスが多い
AIで行う処理
予測
主な効果
判断支援/属人化解消/工数削減
導入難易度
★★★★★
実装レベル
本格構成
費用感
RAG・個別開発(大)
人間の確認
条件付き
現在工数
160h/月
AI導入後
40h/月
想定削減
75%
年間削減
1,440h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 事故の受付で、事故日・場所・事故の型・相手の有無・修理工場・連絡先を受付・調査システムに入れる
  2. 担当者が契約管理システムを開き、契約の始期、車両保険の金額、過去の契約の変更を見る
  3. 事故受付・調査システムで、同じ契約者・同じ車の過去の請求を引く
  4. チェックリストの各項目に印を付け、点数を合計する
  5. 点数が一定以上のものを、主任に相談する
  6. 主任が記憶と照らして、特別調査に回すかを決め、依頼書を書く
  7. 特別調査の結果を、スプレッドシートに記録する
導入後(After)
  1. 自動毎朝、前日までに受け付けた請求を、事故受付・調査システムと契約管理システムから書き出す
  2. 自動請求ごとに、契約・事故・過去の請求の特徴量を作る
  3. 自動電話番号・振込先の口座・住所・修理工場・相手方の車両番号が、過去3年の他の請求と重なる数を数える
  4. 自動モデルが請求ごとの疑いの度合いと、度合いを押し上げた要因の寄与を出す
  5. 自動寄与の大きい要因を、決めておいた言い回しの理由文にして、度合いの高い順に並べる
  6. 自動無作為に選んだ一定の割合の請求に、度合いに関係なく「抽出確認」の印を付ける
  7. 人主任が一覧の上位と抽出確認の請求を見て、特別調査に回すものを決める
  8. 人特別調査の担当が事実を確かめ、結果を記録する
  9. 自動調査の結果を、次の学び直しの正解として取り込む
各工程の詳しい説明を読む
  1. 事故の受付で、事故日・場所・事故の型・相手の有無・修理工場・連絡先を受付・調査システムに入れる
  2. 担当者が契約管理システムを開き、契約の始期、車両保険の金額、過去の契約の変更を見る
  3. 事故受付・調査システムで、同じ契約者・同じ車の過去の請求を引く
  4. チェックリストの各項目に印を付け、点数を合計する
  5. 点数が一定以上のものを、主任に相談する
  6. 主任が記憶と照らして、特別調査に回すかを決め、依頼書を書く
  7. 特別調査の結果を、スプレッドシートに記録する

(a)全件にチェックリストを付ける時間が無い。 1件4分でも2,400件で月160時間で、事故の多い月はチェックリストが後回しになり、支払の手続きが先に進みます。 調査に回すべき請求が、支払の後に見つかることがあります。

(b)兆候が別々の請求に分かれている。 同じ電話番号、同じ振込先の口座、同じ修理工場、同じ相手方が複数の請求に出てくることは、1件ずつ受け付けている担当者には見えません。 気づくのは、たまたま同じ担当者が続けて受けたときだけです。

(c)チェックリストの点数が、調査の結果と合っていない。 項目は何年も前に作られたもので、点数が高くても調査して何も無い請求が多く、点数が低くても不正だった請求があります。 どの項目がどれだけ効いているかを、確かめる仕組みがありません。

(d)判断の基準が人に付いている。 主任の記憶は書き出されておらず、同じ請求でも、誰が受けたかで調査に回る・回らないが分かれます。

  1. 【自動】 毎朝、前日までに受け付けた請求を、事故受付・調査システムと契約管理システムから書き出す
  2. 【自動】 請求ごとに、契約・事故・過去の請求の特徴量を作る
  3. 【自動】 電話番号・振込先の口座・住所・修理工場・相手方の車両番号が、過去3年の他の請求と重なる数を数える
  4. 【自動】 モデルが請求ごとの疑いの度合いと、度合いを押し上げた要因の寄与を出す
  5. 【自動】 寄与の大きい要因を、決めておいた言い回しの理由文にして、度合いの高い順に並べる
  6. 【自動】 無作為に選んだ一定の割合の請求に、度合いに関係なく「抽出確認」の印を付ける
  7. 【人】 主任が一覧の上位と抽出確認の請求を見て、特別調査に回すものを決める
  8. 【人】 特別調査の担当が事実を確かめ、結果を記録する
  9. 【自動】 調査の結果を、次の学び直しの正解として取り込む

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どうやって実装するのか

Step1

処理の起点を決める

毎朝7時に、前日までに受け付けた請求を対象に動かします。 受付のたびに1件ずつ動かす形にはしません。請求どうしのつながりは、その日に受け付けた他の請求も含めて数えないと拾えないためです。同じ日に同じ口座の請求が2件入ってきた、という型は、1件ずつでは見えません。

朝に一覧を出すのは、主任がその日の調査の割り振りを決める前に間に合わせるためです。 特別調査の担当が1日に動ける件数は限られているので、どの請求から手を付けるかを朝のうちに決められることが大事です。

学び直しは別に動かします。月に1回、調査の結果が確定した請求を足して作り直します。 調査は数週間から数か月かかるため、結果がまだ出ていない請求を正解にも不正解にも入れないことが、学び直しの条件です。

Step2

入力データを集める

データ中身取得元
請求の内容請求番号、事故日、受付日、事故の時間帯、場所、事故の型、相手の有無、修理工場、見積額事故受付・調査システム
契約の内容契約の始期、車両保険の金額、車の時価の目安、補償の変更の履歴契約管理システム
過去の請求同じ契約者・同じ車・同じ関係者の過去3年の請求と結果事故受付・調査システム
つながりの材料連絡先の電話番号、振込先の口座、住所、相手方の車両番号事故受付・調査システム
調査の結果特別調査に回したか、不正と判明したか、支払ったか、確定日調査の記録(スプレッドシート)

質を決めるのは、いちばん下の行です。 どの請求が調査で不正と判明したかの記録が無いと、モデルは何を学べばよいかが分かりません。スプレッドシートの調査の記録を、請求番号でつなげられる形に直すのが最初の作業です。

入れない項目も決めておきます。 契約者の国籍、性別、年齢は特徴量に入れません。これらで度合いが上がると、属性で人を疑う仕組みになります。 事故の事実と請求のしかたに関わる値だけを使います。

Step3

データの取得方法を決める

各システムから、前日までに受け付けた請求と、つながりを数えるための過去3年分の請求を書き出します。過去分は毎日全件を引き直さず、前日までの数え上げの結果に新しい請求を足す形にします。

取るものどこから何に使うか
新しい請求の内容事故受付・調査システム見込みの対象
契約の始期と補償の変更契約管理システム契約直後・補償を上げた直後の事故の検知
過去の請求と結果事故受付・調査システム請求の回数、学び直しの正解
電話番号・口座・住所事故受付・調査システム請求どうしのつながりの数え上げ
調査の結果と確定日調査の記録学び直しの正解

電話番号と口座の番号は、そのままの形で比べません。 ハイフンや全角・半角の違いをそろえたうえで、照合用の値に置き換えてから数えます。 数え上げの処理と一覧には、元の番号を出しません。

Step4

AIへ渡す前に整形する

  1. 表記をそろえる … 電話番号・口座番号・住所・修理工場の名前の書き方を統一します。修理工場は名前の表記ゆれが多いため、工場の登録番号で引きます
  2. 照合用の値に置き換える … 電話番号・口座・住所を、元に戻せない照合用の値にします
  3. つながりを数える … 照合用の値ごとに、過去3年の他の請求に出てくる数を数えます。同じ契約者の請求どうしは数えません
  4. 特徴量を作る … 契約の始期から事故までの日数、事故から届出までの日数、補償の変更から事故までの日数、深夜の事故か、車両保険の金額と時価の差、過去3年の請求の回数、見積額、修理工場、事故の型
  5. 欠けた値を残す … 相手の無い事故では相手方の車両番号は欠けたまま渡します
  6. 学習の正解を決める … 調査で不正と判明したものを1、調査して問題が無かったものと、調査せずに支払って1年たったものを0とし、結果が確定していないものは学習から外します

3番目の「同じ契約者の請求どうしは数えない」を忘れないでください。 同じ人が同じ電話番号で2回請求するのは当たり前で、それを数えると、事故の多い普通の契約者が上位に並びます。 見たいのは、別々の契約者のはずの請求に、同じ連絡先や口座が出てくることです。

6番目の「調査せずに支払ったものを0とする」は、割り切りです。 その中に見逃した不正が混ざっていることは避けられません。第5章の抽出確認で、その混ざり方を少しずつ確かめます。

Step5

AIに処理させる

させるのは、請求ごとの疑いの度合いと、要因ごとの寄与を出すことだけです。 調査に回すか、何を調べるかは、主任と特別調査の担当が決めます。

見るもの出し方使い方
疑いの度合いpredict_proba の値並べる順番
要因ごとの寄与predict(pred_contrib=True)度合いを押し上げた要因を上位3つまで取り出す
理由文寄与の大きい要因を、決めておいた言い回しに置き換える主任と調査の担当が読む
抽出確認の印度合いと関係なく無作為に選ぶモデルの見落としの確認

理由を上位3つまでにしているのは、主任が1行で読める数だからです。 要因を10個並べると、どれが効いているのかを主任が読み解く時間がかかり、理由を付けた意味が薄れます。 4つ目以降の寄与は記録には残し、一覧には出しません。

度合いは、確率としては読みません。 正解の0には見逃した不正が混ざっており、1は調査に回った請求の中からしか出てこないためです。「上から何番目か」として使い、一覧の上位何件を主任が見るかで運用します。

理由文は、要因ごとに言い回しを決めておきます。

要因理由文の言い回し
契約の始期から事故までの日数契約の始期から事故まで {n} 日
補償の変更から事故までの日数車両保険の金額を上げてから事故まで {n} 日
事故から届出までの日数事故から届出まで {n} 日
電話番号の重なり同じ連絡先が、別の契約者の請求 {n} 件に出てくる
口座の重なり同じ振込先の口座が、別の契約者の請求 {n} 件に出てくる
修理工場この修理工場の過去3年の請求のうち、調査に回ったもの {n} 件
させないこと理由
不正かどうかの結論似ているかどうかであって、事実ではない
支払の保留・減額支払の判断は査定と調査の事実で行う
請求者への説明度合いを請求者に伝える場面は無い
属性による調整国籍・性別・年齢を材料にしない
Step6

指示内容を固定する

この構成で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つにそろえると、ほとんど効いていない要因が理由として並びます。

評価は、時期で分けて行います。直近の数か月を検証用に取っておき、学習に使いません。 不正の手口は時期で変わるので、ばらばらに分けた評価は実際より良く見えます。見る値は、上位何件に、調査で不正と判明した請求がいくつ入ったかです。

Step7

出力形式を固定する

請求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 を度合いと別に持つことです。 抽出確認の請求は度合いが低くても一覧に載り、主任は「なぜこれが載っているのか」を印で区別できます。

Step8

システムへ連携する

つなぎ先方式内容
事故受付・損害調査システム書き出し(読むだけ)請求の内容、過去の請求、つながりの材料
契約管理システム書き出し(読むだけ)契約の始期、補償と変更の履歴
調査の記録スプレッドシートの読み取り調査の結果と確定日
社内のデータベース書き込み一覧、寄与、主任の判断、調査の結果
主任社内のメール一覧ができたことの通知

度合いを、事故受付・調査システムの画面に表示しません。 受付の担当者が請求者と話す前に度合いを見ると、質問の仕方や声の調子に表れます。 一覧を見るのは主任と特別調査の担当だけにします。

主任への通知のメールには、請求の中身を書きません。 書くのは「今朝の一覧ができた」ことと件数、一覧の置き場所だけです。メールは転送や誤送信で広がりやすく、度合いと理由を本文に載せると、見せる範囲を絞った意味がなくなります。 一覧そのものは、主任と特別調査の担当だけが開ける場所に置きます。

Step9

人が確認する

主任が見るのは、一覧の上位と抽出確認の請求です。 2,400件をすべて開く必要はなく、上位を理由と一緒に読み、調査に回すかを決めます。

  1. 理由を読む … どの要因で度合いが上がっているかを見ます
  2. 事実で確かめる … 理由に挙がった値が、請求の記録と合っているかを画面で確かめます
  3. 調査に回すかを決める … 回すものは依頼書を書き、回さないものには短い理由を選択肢から選びます
  4. 抽出確認の請求を回す … 度合いが低くても、決めた割合だけは調査します

目標は2,400件をならして1件1分です。 主任が詳しく見るのは毎朝の上位の十数件と抽出確認の数件で、残りは度合いと理由の1行を流し見て、支払の手続きに任せます。 上位を何件まで見るかは、特別調査の担当がその週に受けられる件数から逆算して決めます。

2番目を省かないでください。 電話番号の重なりが、代理店の代表番号や修理工場の番号だったということがあります。重なりの数は事実でも、疑う理由にはならない重なりです。 気づいたものは、次から数えない番号の一覧に足します。

支払の手続きは止めません。 保険法では、保険給付の期限について、保険事故や損害額などの確認をするための相当の期間という考え方が置かれています。調査が要ると判断したときに、その期間の中で事実を確かめます。 度合いが高いことだけを理由に、支払を寝かせる運用にしません。

Step10

例外に対処する

起きること対応
代理店・修理工場の代表番号で重なりが出る数えない番号の一覧に足し、数え直す
新しい修理工場で過去の記録が無い欠けたまま見込み、理由には出さない
契約の書き出しが遅れて始期が取れないその請求は度合いを出さず、翌朝に回す
調査の記録に請求番号が無い学び直しから外し、記録の担当へ戻す
度合いの上位が特定の地域・工場に偏る主任が偏りを確かめ、要因の作り方を見直す
学び直しで上位の顔ぶれが大きく変わる前の版と並べて比べ、採用するかを決める
請求者から調査の理由を聞かれる度合いではなく、確かめている事実で説明する
同じ事故で車両・対物・人身の請求が分かれて入る事故番号でまとめ、つながりの数え上げで同じ事故どうしを数えない
盗難の請求で見積額が無い見積額は欠けたまま渡し、車両保険の金額と時価の差を重く見ないよう理由から外す

上の2行が最も多く起きます。 どちらもモデルの問題ではなく、数え上げの材料の問題です。 運用の最初の数か月で、数えない番号の一覧が育ちます。

下から2行目も見落としやすい型です。 1つの事故で車両と対物の請求が別の番号で入ると、同じ契約者・同じ口座の請求が2件あるように見えます。前処理の「同じ契約者を数えない」に加えて、同じ事故番号どうしも数えないようにしておきます。

Step11

記録を残す

  • 毎朝の書き出しの件数と、請求ごとの度合い・寄与・理由
  • 主任が調査に回したか、回さなかった理由
  • 抽出確認に選ばれた請求と、その調査の結果
  • 特別調査の結果と確定日
  • モデルの版(学習の期間、特徴量、入れなかった項目、重みの設定)と、検証期間での上位の当たり方
  • 数えない番号の一覧の変更の履歴

2つ目の「回さなかった理由」が、学び直しで最も効く記録です。 上位にあっても回さなかった請求の理由がたまると、モデルが的外れに上げている要因が見えてきます。

度合いと理由は、調査が終わった後も消しません。 請求者から苦情や照会があったときに、その朝の一覧で何位だったか、どの理由が並んでいたか、主任が何を見て調査に回したかを示せるようにしておきます。度合いを残しておくことは、度合いだけで判断していないことの裏付けにもなります。

04実装レベルの3段階

最小構成:過去の請求を表計算で並べ、つながりの数を数えて手がかりになるかを確かめる / 材料の確認
半自動化:上記+Python で毎朝つながりを数え、チェックリストの項目を自動で埋める / 照会とチェックリストの記入
本格構成:上記+LightGBM で度合いと理由を出し、抽出確認と学び直しまで回す / 並べ方と理由の作成、結果の記録

最小構成では毎日の請求には使えません。 材料が効くかを確かめる段階です。 半自動化で、1件4分が2分程度になります。 照会とチェックリストの記入は自動になりますが、点数の合計で並べるため、主任が全体を見て判断する時間が残ります。 本格構成で1分になり、この段階が本記事の想定です。理由つきの並び順が出ることで、上位以外を一覧で流せるようになるのが差です。 段階を飛ばさないでください。 半自動化を2〜3か月回すと、数えない番号の一覧と、調査の記録の欠けが先に分かります。そこを直してから学習させるほうが、上位の質が上がります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
12 名
月間件数
2,400 件
1件あたり現在時間
4 分
1件あたり導入後時間
1 分
現在  2,400件 × 4分 ÷ 60 = 160 時間/月
導入後 2,400件 × 1分 ÷ 60 = 40 時間/月
月間削減時間
120h
削減率
75%
年間削減時間
1,440h
年間金額換算(時間単価3,500円)
504万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 自動車保険の保険金請求を月に数千件受け付け、損害調査の担当が新しい請求ごとに不正の兆候のチェックリストを手で付けている損害保険会社。調査に回すかどうかが、経験のある担当者の勘に寄っている場合。過去数年分の請求の記録と、調査の結果(不正と判明したか、支払ったか)を請求番号で引ける場合。
向いていない
  1. 請求が月に数百件以下で、担当者が全件の事情を把握できる場合。過去の調査の結果が記録に残っておらず、どの請求が不正だったかを後から特定できない場合。調査の担当が少なく、順番を付けても回せる件数が増えない場合。なお、不正に当たるかどうか、保険金を支払うかどうかの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 過去2年分の請求から、調査で不正と判明した請求と、同じ時期の普通の請求を書き出す
  2. 表計算で、両者の契約の始期から事故までの日数、届出までの日数、過去の請求の回数を並べる
  3. 電話番号と口座について、別の契約者の請求と重なっている数を数える
  4. 不正と判明した請求のうち、当時のチェックリストの点数が低かったものに印を付ける
  5. 重なりの数で、その印の付いた請求がどれだけ拾えたかを見る

ここではまだ機械学習を使いません。 確かめるのは、請求どうしのつながりという材料が、チェックリストに無い手がかりになっているかです。

出てきた内容判断
点数の低かった不正の請求が、重なりで拾えたモデルを作る段階に進む
重なりが代表番号ばかりで意味が無い数えない番号の一覧を先に作る
調査の結果が請求番号でつながらない記録の整備が先。 モデルの問題ではない

3行目が出ることは珍しくありません。 調査の記録が担当者ごとのスプレッドシートに分かれている拠点では、ここを直すのに一番時間がかかります。

この段階の結果は、主任と一緒に見てください。 重なりで拾えた請求を見せたときに「これは前から怪しいと思っていた」と言われるものと、「これは知らなかった」と言われるものがあります。後者が多いほど、つながりの数え上げが主任の記憶の外にある手がかりだということになります。

08実装時につまずきやすいポイント

問題対策
上位が普通の事故の多い契約者で埋まる同じ契約者の請求どうしは数えない
代表番号の重なりで度合いが上がる数えない番号の一覧を育てる
モデルが主任の判断をなぞるだけになる抽出確認で、調査しなかった型の正解を足す
ばらばらに分けた評価で良く見える時期で分けて、直近を検証に取っておく
結果の確定していない請求を0にする確定していないものは学習から外す
度合いを確率として読む順番として使い、上位何件を見るかで運用する
属性を足すと精度が上がる入れない項目をコードに書き、足さない
理由が担当者に伝わらない要因ごとに言い回しを決め、値を差し込む
度合いが受付の画面に出る見せる範囲を主任と調査の担当に限る
度合いだけで支払を止める支払は事実で決める。 調査は相当の期間の中で行う

上の3行が、この構成の失敗のほとんどです。 どれも、モデルが学ぶ材料が、過去の人の判断に強く寄っていることから起きます。材料の偏りを自覚して設計しないと、仕組みは今の勘を速くするだけになります。

下の2行は、運用に入ってから効いてきます。 度合いが見える人が増えるほど、度合いが判断の代わりに使われ始めます。 見せる範囲を最初から絞っておきます。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 請求者と相手方の氏名・連絡先・住所、振込先の口座、事故の内容、契約の内容、そして不正の疑いの度合いという、本人に大きな影響を与えうる推計です。

  1. 度合いを判断の代わりにしない … 調査に回すか、支払うかを決めるのは人で、度合いは並べ方の材料です。 自動で支払を止める経路を作りません
  2. 属性を材料にしない … 国籍・性別・年齢を特徴量に入れず、入れないことを設定の中に書いて残します
  3. 見せる範囲を絞る … 度合いを見るのは主任と特別調査の担当だけにし、受付の画面に出しません
  4. 照合用の値で数える … 電話番号と口座は照合用の値に置き換えて数え、一覧に元の番号を出しません
  5. 外部の情報の扱いを分ける … 日本損害保険協会は保険金不正請求ホットラインを設け、寄せられた情報を参加保険会社と共同利用するとしています。こうした外部の情報を特徴量に入れるかは、その情報の利用目的の範囲をコンプライアンスの部門と確かめてから決めます
  6. 偏りを定期的に見る … 上位が特定の地域・修理工場・事故の型に偏っていないかを、毎月の学び直しのたびに確かめます

誤りが起きた場合のリスクは、不正でない請求者を疑うことと、不正を見逃すことの2つです。 前者は度合いを結論として扱うと起き、後者はモデルが過去の判断をなぞると起きます。前者は運用の決まりで、後者は抽出確認で守ります。

10まず何から始めるか

1週目:調査の記録をつなげる

担当者ごとのスプレッドシートに分かれた調査の記録を集め、請求番号と結果と確定日の3列にそろえます。 何件の請求に正解が付いているかを数えます。

2週目:つながりを数えてみる

第8章の最小構成で、電話番号と口座の重なりを数えます。代理店や修理工場の代表番号が混ざっていないかを最優先で見ます。

3週目:入れない項目と見せる範囲を決める

国籍・性別・年齢を入れないこと、度合いを見るのは主任と特別調査の担当だけにすることを、コンプライアンスの部門と決めます。 あわせて、抽出確認の割合を特別調査の担当と決めます。

4週目:モデルを作って時期で評価する

Python で LightGBM のモデルを作り、直近の数か月で上位の当たり方を見ます。この時点では一覧を運用に出さず、当時の主任の判断と並べて比べます。

2か月目: 理由文と抽出確認を足し、一覧を主任に出します。回さなかった理由の記録を始めます。3か月目以降: 学び直しを月1回回し、1件4分が何分になったかを実測します。抽出確認の請求の中から、モデルが拾えていなかった型が見つかり、それを学び直しに足せた時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-07/最終更新:2026-10-07
確認した内容情報源確認日
predict の pred_contrib で要因ごとの寄与が返り、返り値が要因の数+1列で最後の列が期待値であること。SHAP の詳しい説明には shap パッケージを使えること。2値分類で is_unbalance・scale_pos_weight が使えること。categorical_feature が 'auto' のとき pandas の順序のない区分の列が使われることLightGBM: LGBMClassifier2026-10-07
TreeExplainer が木のモデルの SHAP 値を求め、XGBoost・LightGBM・CatBoost と多くの scikit-learn の木のモデルに対応すること。feature_perturbation="tree_path_dependent" では背景のデータが要らないことSHAP: TreeExplainer2026-10-07
日本損害保険協会が保険金不正請求ホットラインを設け、自動車事故を装った不正受給などの情報を受け付けていること。寄せられた情報を参加保険会社との間で共同利用すること日本損害保険協会: 保険金不正請求ホットライン2026-10-07
保険法第21条が、保険給付の期限について、保険事故・てん補損害額・免責事由など確認が必要な事項の確認をするための相当の期間を定めていることe-Gov 法令API: 保険法2026-10-07

調査に回す基準と、度合いを見せる範囲は、自社のコンプライアンスの部門と決めてください。 本記事は上の公開情報で確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0843)についてのご相談はこちらから。

AI活用について相談する
目次