keras搭建基于自动编码器的异常检测技术进行欺诈识别(一)

简介: keras搭建基于自动编码器的异常检测技术进行欺诈识别(一)

我最近阅读了一篇名为《使用自动编码器进行异常检测》的文章,在该文中对所生成的数据进行了实验,并且我认为将使用自动编码器进行异常检测这一想法应用于真实世界当中的欺诈检测中,似乎是一个不错的主意。

640.png

我决定从Kaggle中使用信用卡欺诈数据:该数据集包含有在2013年9月欧洲持卡人的信用卡交易信息。

这个数据集显示了两天内发生的交易,其中在284,807次交易中有492次为欺诈数据。这样的数据集是相当不平衡的,其中正类(欺诈)数据占所有交易数据的0.172%。

数据挖掘

这虽然是一个非常不平衡的数据集,但是它也是一个很好的例子:对异常或欺诈进行识别验证。

首先,我们需要通过主成分分析法将数据集维度由30维下降到3维,并画出其对应的点状图。其中,该数据集共有32列,第一列为时间,29列为未知的数据,1列为交易金额和剩下1列为类别。需要说明的是,我们将忽略时间这一指标,因为它不是一个较为固定的指标。

def show_pca_df(df):
x = df[df.columns[1:30]].to_numpy()
y = df[df.columns[30]].to_numpy()
x = preprocessing.MinMaxScaler().fit_transform(x)
pca = decomposition.PCA(n_components=3)
pca_result = pca.fit_transform(x)
print(pca.explained_variance_ratio_)
pca_df = pd.DataFrame(data=pca_result, columns=['pc_1', 'pc_2', 'pc_3'])
pca_df = pd.concat([pca_df, pd.DataFrame({'label': y})], axis=1)
ax = Axes3D(plt.figure(figsize=(8, 8)))
ax.scatter(xs=pca_df['pc_1'], ys=pca_df['pc_2'], zs=pca_df['pc_3'], c=pca_df['label'], s=25)
ax.set_xlabel("pc_1")
ax.set_ylabel("pc_2")
ax.set_zlabel("pc_3")
plt.show()
df = pd.read_csv('creditcard.csv')
show_pca_df(df)

image.png

观察上图,能直观地看见有两个单独的集群,这看似是一个非常简单的任务,但是其实欺诈数据仅为黄色的点。仔细看的话,在较大的那个集群中,我们能够看见有三个黄色的点。因此,在我们保留欺诈数据的同时对正常数据进行了再次抽样。

df_anomaly = df[df[df.columns[30]] > 0]
df_normal = df[df[df.columns[30]] == 0].sample(n=df_anomaly.size, random_state=1, axis='index')
df = pd.concat([ df_anomaly, df_normal])
show_pca_df(df)

image.png

有上图可见,正常数据较为集中,类似于一个圆盘状,而欺诈数据则较为分散。此时,我们将构建一个自动编码器,它具有3层编码器和2层解码器,具体如下:

image.png

目录
相关文章
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
6280 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
7天前
|
JSON API 数据格式
OpenCode入门使用教程
本教程介绍如何通过安装OpenCode并配置Canopy Wave API来使用开源模型。首先全局安装OpenCode,然后设置API密钥并创建配置文件,最后在控制台中连接模型并开始交互。
3177 7
|
13天前
|
人工智能 JavaScript Linux
【Claude Code 全攻略】终端AI编程助手从入门到进阶(2026最新版)
Claude Code是Anthropic推出的终端原生AI编程助手,支持40+语言、200k超长上下文,无需切换IDE即可实现代码生成、调试、项目导航与自动化任务。本文详解其安装配置、四大核心功能及进阶技巧,助你全面提升开发效率,搭配GitHub Copilot使用更佳。
|
3天前
|
人工智能 API 开发者
Claude Code 国内保姆级使用指南:实测 GLM-4.7 与 Claude Opus 4.5 全方案解
Claude Code是Anthropic推出的编程AI代理工具。2026年国内开发者可通过配置`ANTHROPIC_BASE_URL`实现本地化接入:①极速平替——用Qwen Code v0.5.0或GLM-4.7,毫秒响应,适合日常编码;②满血原版——经灵芽API中转调用Claude Opus 4.5,胜任复杂架构与深度推理。
|
15天前
|
存储 人工智能 自然语言处理
OpenSpec技术规范+实例应用
OpenSpec 是面向 AI 智能体的轻量级规范驱动开发框架,通过“提案-审查-实施-归档”工作流,解决 AI 编程中的需求偏移与不可预测性问题。它以机器可读的规范为“单一真相源”,将模糊提示转化为可落地的工程实践,助力开发者高效构建稳定、可审计的生产级系统,实现从“凭感觉聊天”到“按规范开发”的跃迁。
2240 18
|
7天前
|
人工智能 前端开发 Docker
Huobao Drama 开源短剧生成平台:从剧本到视频
Huobao Drama 是一个基于 Go + Vue3 的开源 AI 短剧自动化生成平台,支持剧本解析、角色与分镜生成、图生视频及剪辑合成,覆盖短剧生产全链路。内置角色管理、分镜设计、视频合成、任务追踪等功能,支持本地部署与多模型接入(如 OpenAI、Ollama、火山等),搭配 FFmpeg 实现高效视频处理,适用于短剧工作流验证与自建 AI 创作后台。
1122 5
|
6天前
|
人工智能 运维 前端开发
Claude Code 30k+ star官方插件,小白也能写专业级代码
Superpowers是Claude Code官方插件,由核心开发者Jesse打造,上线3个月获3万star。它集成brainstorming、TDD、系统化调试等专业开发流程,让AI写代码更规范高效。开源免费,安装简单,实测显著提升开发质量与效率,值得开发者尝试。
|
17天前
|
人工智能 测试技术 开发者
AI Coding后端开发实战:解锁AI辅助编程新范式
本文系统阐述了AI时代开发者如何高效协作AI Coding工具,强调破除认知误区、构建个人上下文管理体系,并精准判断AI输出质量。通过实战流程与案例,助力开发者实现从编码到架构思维的跃迁,成为人机协同的“超级开发者”。
1268 102