图数据挖掘!使用图分析+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官方GitHubhttps://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官方GitHubhttps://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进行保险欺诈检测 ⛵

Original: https://www.cnblogs.com/showmeai/p/16628050.html
Author: ShowMeAI
Title: 图数据挖掘!使用图分析+AI进行保险欺诈检测 ⛵

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612993/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 微服务架构设计模式

    内容简介 成功地开发基于微服务架构的应用软件,需要掌握一系列全新的架构思想和实践。在这本书籍中解释了 44 个架构设计模式,这些模式用来解决诸如服务拆分、事务管理、查询和跨服务通信…

    数据库 2023年6月6日
    0136
  • centos 自己常用命令

    tar 1. 使用tar压缩文件 tar -zcvf test.tar.gz ./test/ 该命令表示压缩当前文件夹下的文件夹test,压缩后缀名为test.tar.gz 如果不…

    数据库 2023年6月11日
    075
  • 计算机网络 | TCP 连接的建立 和 TCP 连接的断开

    TCP 连接的建立过程 一开始,客户端和服务端都处于 close 状态。 先是服务端监听某个端口,此时服务端处于 listen 状态。 这个时候客户端就可以发送连接请求报文了。 第…

    数据库 2023年6月11日
    0117
  • CMU 15-445 Project 0 实现字典树

    原文链接:https://juejin.cn/post/7139572163371073543 项目准备 代码、手册 本文对应 2022 年的课程,Project 0 已经更新为实…

    数据库 2023年6月14日
    088
  • ​探秘 Web 水印技术

    Web 水印技术在信息安全和版权保护等领域有着广泛的应用,对防止信息泄露或知识产品被侵犯有重要意义。水印根据可见性可分为可见水印和不可见水印(盲水印),本文将分别予以介绍,带你探秘…

    数据库 2023年6月14日
    0101
  • centos8安装mysql

    前言 最近在centos8系统下部署django项目时,要用到mysql数据库,在安装中遇到了点坑,之后参考了一位博主的文章,也是顺利的安装配置成功,博主原文连接: ((20条消息…

    数据库 2023年5月24日
    075
  • 719. 找出第 K 小的数对距离

    数对 (a,b) 由整数 a 和 b 组成,其数对距离定义为 a 和 b 的绝对差值。 给你一个整数数组 nums 和一个整数 k ,数对由 nums[i] 和 nums[j] 组…

    数据库 2023年6月16日
    097
  • Mybatis的级联查询,分步查询,一对一,一对多和多对一

    配置和代码目录 ***util配置 ***log4j配置 –可以打印入日志,也可以使用系统自带的STDOUT_LOGGING个人喜欢log4j ***mybatis-c…

    数据库 2023年6月16日
    075
  • 关于EF分页查询报错(Count must have a non-negative value.)的解决方案

    具体的异常信息如下,一开始没有写日志只看到错误信息:Count must have a non-negative value.,从表面意思可以看出来是Count值出现了负数,所以报…

    数据库 2023年6月9日
    080
  • git 开发规范

    开发总结最重要的是文档和开发流程 文档最重要:记录开发学习的内容,可以是一种总结,此为其一。留下文档可助后生快速入门,减少学习和指导成本,此为其二。来日需要对项目二次开发或者重构追…

    数据库 2023年6月9日
    0126
  • django-nginx与uwsgi项目部署

    uwsgi是提供动态服务的 nginx反向代理 在项目中创建一个settings.py的副本。我这里重命名为copy_settings.py,将配置文件中的DEBUG=False …

    数据库 2023年6月6日
    095
  • Mysql异常——com.alibaba.druid.sql.parser.ParserException

    今天写业务逻辑时候,写完发现控制台出现报错,但是程序可以正常运行。在控制台报错中发现是因为SQL模糊查询格式问题 修改模糊查询 写法后 成功解决该报错 Original: http…

    数据库 2023年6月16日
    0165
  • 模板语法之继承

    什么是模板继承 模板继承就是指可以使父模板的内容重用,子模板直接继承父模板的全部内容,并可以覆盖父模板中相应的块 继承的语法 &#x7236;&#x6A21;&am…

    数据库 2023年6月14日
    083
  • sed语句用法

    sed编辑器 sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要…

    数据库 2023年6月14日
    075
  • 二分查找及其应用

    概述 二分查找算法是一种效率极高的算法,也是为数不多时间复杂度在 O&#xFF08;logn&#xFF09;量级的算法。算法思想并不难理解,但是某些细节却十分复杂,…

    数据库 2023年6月11日
    062
  • 享受时间 拥抱 Linux

    生活上小闲心 用 游戏 影音 音乐 可以尝试 Window or Macos. 初期代码生涯推荐全面拥抱 Linux , 耐下心少学点, 多享受光 邵雍· 《清夜吟》 月到天心处,…

    数据库 2023年6月9日
    073
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球