天天看點

圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

本文将基于保險欺詐場景案例講解如何進行有效的圖挖掘,并将挖掘到的資訊提供給AI模型,輔助精準檢測和識别商業保險欺詐。

圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

💡 作者:韓信子@ShowMeAI

📘 機器學習實戰系列:https://www.showmeai.tech/tutorials/41

📘 本文位址:https://www.showmeai.tech/article-detail/307

📢 聲明:版權所有,轉載請聯系平台與作者并注明出處

📢 收藏ShowMeAI檢視更多精彩内容

圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

保險欺詐是一個巨大的問題,保險業長期以來一直在與欺詐作鬥争。健康保險欺詐是一種作假騙保的行為,整個欺詐過程可能涉及患者、醫生和受益人的同行的配合聯合行動,聯合欺詐的異常行為可能形成一個欺詐圈, 普通機器學習AI算法很難基于基礎資訊發現欺詐活動。而這類場景有着強有效作用的,是關系網資料的挖掘和資訊支撐。

大家可以從下述新聞做一些了解:

📘同盾科技:AI智能助力保險反欺詐,科技能力再更新_财經_中國網

📘數千億保險反欺詐市場:人工智能尋覓用武之地_騰訊新聞

圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

在本篇内容中, ShowMeAI 将基于保險欺詐場景案例給大家講解,如何進行有效的圖挖掘,并将挖掘到的資訊提供給AI模型,輔助精準檢測識别商業保險欺詐。

本篇内容結構如下:

  • Graph 圖與圖挖掘基礎
  • 圖搜尋和查詢以了解關系
  • 使用圖特征增強機器學習模型

💡 Graph圖與圖挖掘基礎

📌 什麼是Graph圖

在圖論中,圖是一種結構,包含『相關聯』的一些節點和連接配接的邊。圖中的對象稱為『節點』,每個相關的節點之間的連接配接稱為『邊』。

圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

簡而言之,Graph圖是任何類型的網絡的數學表示,包含:

  • 節點,在醫療保險場景中,可以是:
    • 投保人
    • 醫生
  • 邊是節點之間的關系/互動/行為:
    • 索賠保單持有人
    • 索賠被保險人

💡 圖挖掘:搜尋和查詢

圖形資料庫是專門為圖關聯資料存儲和查詢而建構的,圖查詢語言是根據節點之間的模式比對來完成查詢的。通過圖查詢語言進行圖可視化有助于分析大量資料并識别欺詐活動的模式。典型的圖資料庫如 📘Nebula Graph,我們本次的分析挖掘用到的資料集是 🏆insurance claims 保險索賠資料,大家可以通過 ShowMeAI 的百度網盤位址下載下傳。

🏆 實戰資料集下載下傳(百度網盤):公衆号『ShowMeAI研究中心』回複『實戰』,或者點選 這裡 擷取本文 [16]圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 『insurance claims 保險索賠資料集』
⭐ ShowMeAI官方GitHub:https://github.com/ShowMeAI-Hub

📌 欺詐典型案例

查找欺詐性索賠『C4377』的投保人提出的所有索賠,并顯示索賠『C4377』患者的疾病。

圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

為了深入了解這個投保人(PH3759),我們看到這個人在不同的提供者那裡看到了不同的醫生,這是不正常的。

圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

📌 與欺詐性索賠相關的投保人關系

下圖顯示了具有欺詐風險『C4377』的連接配接關系。我們看到一個高風險投保人處于 1 度連接配接中,而另一個高風險投保人處于 3 度連接配接中。

圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

💡 使用圖特征增強機器學習模型

特征工程是從現有資料中抽取有用資訊的過程。

關于機器學習特征工程,大家可以參考 ShowMeAI 整理的特征工程最全解讀教程。

📘機器學習實戰 | 機器學習特征工程最全解讀

大部分機器學習應用依賴于結構化表格資料模組化,而沒有有效利用圖關聯關系和上下文資料,在我們今天提到的這類關聯場景中,這類資訊至關重要。如果不考慮關聯,單獨看每個索賠/提供者都像是合法的。

在下面内容中,ShowMeAI 會示範把結構化表格資料轉換為圖,并提取圖特征進而增強機器學習模型方法示例。包括下面幾個環節:

  • 将結構化資料提取到 Python 圖結構中
  • 圖資料的特征工程
  • 将圖特征整合到機器學習管道中

📌 将結構化資料提取到圖結構中

我們這裡用到Python圖工具 📘iGraph 來完成基本操作,它可以有效地和 pandas Dataframe 等結構結合。

資料集來自醫療保險領域,包括提供者提出的索賠以及每項索賠的受益人資訊,可以通過 ShowMeAI 的百度網盤位址下載下傳。

🏆 實戰資料集下載下傳(百度網盤):公衆号『ShowMeAI研究中心』回複『實戰』,或者點選 這裡 擷取本文 [16]圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 『insurance claims 保險索賠資料集』
⭐ ShowMeAI官方GitHub:https://github.com/ShowMeAI-Hub

具體的資訊包括:

  • 患者相關特征:年齡、性别、位置、健康狀況等。
  • 索賠相關特征:起止日期、索賠金額、診斷代碼、程式代碼、提供者、主治醫師、手術醫師等。

我們本篇中的節點主要選取了『提供者』和『主治醫師』,分别對應源和目标。(以下僅提供核心代碼作為示例)

# 導入包 
from igraph import *
import pandas as pd

# 讀取資料
df = pd.read_csv('CLAIM.csv')
G_df = df[['CLAIM_ID', 'POLICYHOLDER_ID']]

# 從Dataframe建立Graph無向圖 
G = Graph.DataFrame(G_df, directed=False)
           

📌 圖資料特征工程

我們可以使用圖算法對圖結構進行挖掘,拿到潛在有意義的表征特征,例如連接配接度量和基于關系的聚類特征,進而加強後續機器學習的檢測效果。

Degree 度

節點的度可以定義為連接配接節點的邊數。

degree = pd.DataFrame({'Node': G.vs["name"],
        'Degree': G.strength()})
degree.shape
           

closeness 接近中心性

在連通圖中,節點的接近中心性(closeness)是網絡中中心性的度量,計算為該節點與圖中所有其他節點之間的最短路徑長度之和的倒數。

closeness = pd.DataFrame({'Node': G.vs["name"],
        'Closeness': G.closeness()})
closeness.shape
           

Infomap 資訊圖

Infomap是一種能夠實作高品質社群的圖聚類算法。

communities_infomap = pd.DataFrame({'Node': G.vs["name"],
        'communities_infomap': G.community_infomap().membership})
communities_infomap.shape
           

我們把抽取的圖特征合并成Dataframe,以便後續機器學習模組化使用。

# 合并圖特征 
graph_feature = [degree, closeness, communities_infomap]
graph_feature = reduce(lambda left,right: pd.merge(left,right, how = 'left',on='Node'), graph_feature)
           

📌 将圖特征整合到機器學習管道中

接下來我們将圖特征合并到原始資料中,并基于時間對資料集拆分,進而為機器學習模型準備完整的資料。

train = Final_Dataset_Train[Final_Dataset_Train['ClaimStartDt'] < '2009-10-01'].reset_index(drop = True).drop('ClaimStartDt', axis = 1)
print(train.shape)
test = Final_Dataset_Train[Final_Dataset_Train['ClaimStartDt'] >= '2009-10-01'].reset_index(drop = True).drop('ClaimStartDt', axis = 1)
print(test.shape)x_tr = train.drop(axis=1,columns=['PotentialFraud'])
y_tr = train['PotentialFraud']x_val = test.drop(axis=1,columns=['PotentialFraud'])
y_val = test['PotentialFraud']
           

下面,為了進行對比,我們使用 2 個算法和 3 類特征,模組化和對比效果:

算法:

  • 邏輯回歸
  • 随機森林

特征空間:

  • 原始功能
  • 原始特征+節點級特征
  • 原始特征+節點級特征+聚類特征
# 模組化示例代碼
lr = LogisticRegression(penalty='none', solver='saga', random_state=42, n_jobs=-1)
rf = RandomForestClassifier(n_estimators=300, max_depth=5, min_samples_leaf=50, 
                            max_features=0.3, random_state=42, n_jobs=-1)
lr.fit(x_tr, y_tr)
rf.fit(x_tr, y_tr)
preds_lr = lr.predict_proba(x_val)[:,1]
preds_rf = rf.predict_proba(x_val)[:,1]
           

我們使用 AUC 作為測試集的評估名額,ROC 曲線如下:

圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

結合最終的效果圖,可以很清晰地看到:

  • 具有圖特征的模型表現出色
  • 節點級别特征效果非常好
  • 聚類特征對結果也有補充作用

💡 總結

對于關聯型業務場景,我們可以查詢、可視化和分析圖資料,建構有效的資訊支撐更強大的商業欺詐方案,特别是對于試圖通過複雜網絡結構隐藏的欺詐活動,相比傳統方法有很大效果提升。

将關系資訊和圖的預測特征添加到機器學習管道中可以提高模型性能,針對多方參與欺詐活動的場景尤其明顯。

參考資料

  • 📘 同盾科技:AI智能助力保險反欺詐,科技能力再更新_财經_中國網
  • 📘 數千億保險反欺詐市場:人工智能尋覓用武之地_騰訊新聞
  • 📘 iGraph
  • 📘 https://www.iii.org/article/background-on-insurance-fraud
  • 📘 https://github.com/IBM/analyzing-insurance-claims-using-ibm-db2-graph
  • 📘 https://github.com/vesoft-inc/nebula
  • 📘 https://machinelearningmastery.com/discover-feature-engineering-how-to-engineer-features-and-how-to-get-good-at-it/
  • 📘 https://www.kaggle.com/datasets/rohitrox/healthcare-provider-fraud-detection-analysis
  • 📘 https://igraph.org/python/
圖資料挖掘!使用圖分析+AI進行保險欺詐檢測 ⛵

繼續閱讀