热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

机器学习真实案例研究:基于文本描述的交易聚类

作者:RavindraReddyTamma翻译:方星轩.校对:欧阳锦本文约2200字,建议阅读5分钟。本文为大家介绍了在日常

作者:Ravindra Reddy Tamma 翻译:方星轩. 校对:欧阳锦

本文约2200字,建议阅读5分钟。

本文为大家介绍了在日常的电子交易中对用户的交易信息进行聚类分析和建模,提供了用户分析的思路和建议。

我们正生活在数字技术时代。还记得你上次去到没有PayTM或BHIM UPI的商店是什么时候吗?很显然,这些数字交易技术已迅速成为我们日常生活的关键部分。

数字技术不仅是个人,也是各大金融机构的核心。依托着可靠的后台运行系统,执行多种选项的支付交易或资金转帐(例如,网上银行,ATM,信用卡或借记卡,UPI,POS机等)是一件非常顺利的事。

对于我们进行的每笔交易,都会针对它生成一个适当的描述消息,如下所示:

在本文中,我们将讨论一个金融机构的实际使用案例,该案例使用-聚类clustering(一种流行的机器学习算法)来为其客户群定制其产品。

本案例研究的动机

作为一家金融机构,始终根据客户的兴趣为他们量身定制报价,并以此来吸引现有客户群是很重要的事。对于任何金融机构而言,把握全方位的客户信息是一项重大挑战。

Twitter,WhatsApp,Facebook等社交媒体平台已成为描述客户兴趣和偏好的主要信息来源。金融机构使用第三方来源的数据通常会付出巨大的成本。即使如此,将社交媒体帐户映射到每一个客户也非常困难。

那么我们该如何解决呢?

“A partial solution to the above problem can be addressed by using in-house transaction data available with the institution”

“上述问题的部分解决方案可以通过使用该机构提供的内部交易数据来解决”

我们可以根据交易描述消息将客户执行的交易分为不同的类别。此方法可用于标记是否进行了食品,运动,衣服,账单支付,家庭,其他等类别的交易。如果客户的大部分交易都出现在特定类别中,那么我们可以对他/她的交易偏好有更好的预估。

这是我们采取的方法

来了解我们如何处理此问题,并为之找出解决方案时而采取的关键步骤吧。

  • 确定主题数量

我们从所有交易开始,将其描述消息映射到每个客户。首先,我们有一项重要的任务,即确定集群(clusters)(或)类别(catergories)(或)主题(topics)的数量。为了实现这个目标,我们使用主题建模( Topic Modelling)。

Topic Modelling

https://www.analyticsvidhya.com/blog/2018/10/stepwise-guide-topic-modeling-latent-semantic-analysis/

主题建模是一种对文档进行无监督分类的方法,即便我们不确定要查找的内容,它也可以找到适合的项目组。它主要使用狄利克雷分布(LDA)来拟合主题模型。

它将每个文档(即交易)视为主题的混合,而将每个主题视为文字的混合。举个例子:预算一词可能出现在电影主题和政治主题中。该LDA的基本假设是,样本中的每个观察值来自可以被生成统计模型解释的任意未知分布中。

主题建模可以解决我们的问题。这里有一种生成统计模型,该统计模型已经生成了交易描述中的所有文字,这些文字来自未知的任意分布(即未知的组或主题)。我们尝试估计/建立一个统计模型,以便预测一个单词属于特定主题的概率。

  • 主题连贯

我们已经通过手动查看各个主题中的热门关键字来确定主题总数,这可能有点主题不一致,而且我们还需要一种主观的方法来评估正确的主题数量。那么,我们使用主题连贯性( Topic Coherence)来确定正确的主题数。

Topic Coherence

https://rare-technologies.com/what-is-topic-coherence/

主题连贯性应用于该主题的前N个单词。它被定义为主题中单词的成对相似度得分的平均值/中位数。好的模型会产生连贯的主题,即主题连贯得分高的主题。

好的主题是可以用短标签描述的。因此,这就是主题一致性方法所捕获的内容:

是时候聚类了!

我们已经确定了主题/群集的总数(在我们的案例中为7个主题)。我们应该开始将每个交易描述消息分配给主题。在将文档分配给主题时,仅依靠主题建模可能无法产生准确的结果。

在这里,我们使用主题建模的输出以及其他一些功能,使用 K-Means clustering对交易描述消息进行聚类,我们将主要为K-Means集群构建功能集。

K-Means clustering

https://www.analyticsvidhya.com/blog/2019/08/comprehensive-guide-k-means-clustering/

特征:

  • 基本特征

- 字数,位数,特殊符号数

- 最长数字序列长度,数字-字符比

- 平均,最长字长等

- 交易的周,日和月,当前日期,周末交易等

- 每月最后5天或每月前5天执行的交易

- 公众假期和节日交易等

 

  • 查找功能–使用行业中的顶级品牌和常用名词作为查找名称。计算与特定行业相关的交易描述中的单词数。

- 食品:蔬菜,多米诺骨牌Dominos(披萨品牌),FreshDirect(美国的在线食品杂货商),赛百味等

- 体育:棒球,阿迪达斯,足球,防滑钉等

- 卫生:药房,医院,体育馆等

- Bill&EMI:政策,能源,声明,时间表,取款,电话等。

- 娱乐:Netflix,Prime节目,Spotify,Soundcloud,酒吧

- 电子商务:亚马逊,沃尔玛,eBay,Ticketmaster等

 

  • 其他:Uber,Airbus,打包机等

主题建模功能

对使用TF-IDF方法生成的DTM矩阵的一元模型和二元模型执行主题建模。对于每个主题的交易描述的unigram一元模型和bigram 二元模型DTM矩阵,我们使其获得2组7种的不同概率。

 

最后的想法

每个交易描述大约有30个功能,我们执行K-Means聚类将每个交易描述分配给7个集群之一。

结果表明,聚类中心附近的观测结果大多标有正确的主题。少量错误的主题标签被分配在距离聚类中心较远的观察点。在手动查看的350个交易描述中,大约240个(准确率为69%)交易描述已正确标记了适当的主题。

现在,我们至少可以对内部客户的偏好和兴趣进行基本估算。我们可以通过发送定制的要约和选项使内部客户参与并改善业务。

尽管使用主题建模的方法相对新颖,实际上,大多数的信用卡的发行商都会使用对客户交易的兴趣进行分类。例如,美国运通公司一直在使用这种方法为其客户创建兴趣图。这样的兴趣图不仅将交易分为食物,旅行等主要类别,而且还创建了诸如泰国美食迷,野生动物爱好者等的细分。所有这些分类都仅仅基于交易数据的丰富性!

关于作者

Ravindra Reddy Tamma –数据科学家(Actify数据实验室)

Ravindra是Actify Data Labs的机器学习专家。他的专长包括信用风险分析,应用程序欺诈建模,OCR,文本挖掘以及将模型部署为API。他与贷方广泛合作,以开发应用程序,行为和收款记分卡。

Ravindra还使用非结构化征信机构标头信息为印度的无抵押贷款开发了国家级应用程序欺诈模型。除信用风险外,Ravindra在OCR,图像分析和文本挖掘方面拥有深厚的专业知识。Ravindra还在自动化生产数据管道和将机器学习模型部署为可扩展的API方面具有丰富的专业知识。

原本标题:

Real-World Machine Learning Case Study: Clustering Transactions Based on Text Descriptions

译者简介:方星轩,美国东北大学数据分析研究生在读,本科毕业于美国莫瑞州立大学商学院。对利用数据来进行市场和企业内的分析有着浓厚的兴趣,对机器学习AI领域充满好奇。喜欢篮球,吉他,旅行,希望能够结交朋友分享故事,拓宽视野,客观的看待世事万物。

转自:数据派THU 公众号;

版权声明:本号内容部分来自互联网,转载请注明原文链接和作者,如有侵权或出处有误请和我们联系。

END

合作请加QQ:365242293  

数据分析(ID : ecshujufenxi )互联网科技与数据圈自己的微信,也是WeMedia自媒体联盟成员之一,WeMedia联盟覆盖5000万人群。


推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • Hyperledger Fabric 1.4 节点 SDK 快速入门指南
    本文将详细介绍如何利用 Hyperledger Fabric 1.4 的 Node.js SDK 开发应用程序。通过最新版本的 Fabric Node.js SDK,开发者可以更高效地构建和部署基于区块链的应用,实现数据的安全共享和交易处理。文章将涵盖环境配置、SDK 安装、示例代码以及常见问题的解决方法,帮助读者快速上手并掌握核心功能。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 本文全面解析了JavaScript中的DOM操作,并提供了详细的实践指南。DOM节点(Node)通常代表一个标签、文本或HTML属性,每个节点都具有一个nodeType属性,用于标识其类型。文章深入探讨了DOM节点的创建、查询、修改和删除等操作,结合实际案例,帮助读者更好地理解和掌握DOM编程技术。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 深入解析:React与Webpack配置进阶指南(第二部分)
    在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
author-avatar
夏山_Els乀i丷e
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有