【视频】Python基于SVM和RankGauss的低消费指数构建模型

简介: 【视频】Python基于SVM和RankGauss的低消费指数构建模型

全文链接:https://tecdat.cn/?p=32968

分析师:Wenyi Shen


校园的温情关怀是智慧校园的一项重要内容。通过大数据与数据挖掘技术对学生日常校园内的消费信息进行快速筛选和比对,建立大数据模型,对校园内需要帮助的同学进行精准识别,为高校温情关怀提供有效的数据依据点击文末“阅读原文”获取完整代码数据


该项目解决的主要问题是如何通过数据挖掘技术筛选和比对学生消费信息,从而自动识别校园内需要帮助的同学,为高校扶贫提供数据依据。


模型假设与问题分析


模型假设

三点假设:

  • 没有同学使用自己的账户为他人垫付,每一笔消费均为本人所为。
  • 在全部数据的60天内,认为消费总次数小于80次的为经常点外卖的人,剔除他们,不认为属于低消费人群。
  • 不存在收费错误的情况。


数据清洗


剔除时间异常值

image.png

数据共计260多万条条,从20年9月1日6时一直持续到20年10月30日19时。但其中有“9月31日”的数据,我们将其删除。

image.png

为了减少计算量,我们从200万条数据里随机选取20000条进行训练,最终获得两个聚类簇,以及各个簇的最大最小值。考虑到数据选取的随机性,本文将消费金额80作为异常值阈值,删除所有消费金额大于80的数据,保留下约98%的正常数据。


点击标题查阅往期内容


PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享


01

02

03

04



image.png

我们观察消费价格后发现,有少部分消费金额数据在1000甚至10000以上,这部分数据是异常数据,我们采用密度聚类(DBSCAN)算法来寻找一个阈值进行划分。

image.png

image.png

窗口与价位分类


窗口分类

对数据进行了Z-score标准化,以消除数据中的量纲差异,使得每个特征在模型中的影响程度相等。

绘制出标准化后的数据的SSE(Sum of Squared Errors)随分类个数变化的肘形图如下图所示:

image.png

使用簇为4的k-means聚类算法对标准化后的数据进行聚类,并得到各个分类中心的经过标准化后的均值和标准差及每个数据的所属的簇(即标签)。

将标准化后的数据还原,并画出平均消费价格和消费价格的方差与分类标签的关系图,如下图所示:

image.png

image.png

价位分类


最终的聚类效果如下。根据每个簇的最大最小值,将消费分为低、中、高三个价位,分别界定为小于10.37元,10.37元到24.67元和大于24.67元。

image.png

低消费指数模型


image.png

我们选取下面7个自变量参与模型训练:夜宵次数,午饭金额,晚饭金额,下午茶金额,夜宵金额,中消费频率,高消费频率。然后,用户的消费分类cluster变量将作为y标签。

我们以70%的数据做训练集,30%做测试集,建立SVM(支持向量机)分类模型,输出测试数据的准确率、精确率、召回率和F1值,以及混淆矩阵热力图,效果如下所示:

image.png

训练SVM模型后,我们获得了权重和偏置项,如下表所示,后面计算概率矩阵时会用到这些参数。

image.png

点击标题查阅往期内容


【视频】支持向量机算法原理和Python用户流失数据挖掘SVM实例


01

image.png

02

image.png

03

image.png

04

image.png


低消费指数模型


简单的说,RankGauss首先将该特征按照大小排序,计算出每个值的排名(排名从1开始);然后将排名除以n+1,其中n是该特征的样本数量,得到一个0到1之间的比例因子;最后将比例因子作为标准正态分布的累积分布函数(CDF)的输入,得到转换后的数据,如下表所示。

image.png

通过RankGauss标准化,可以看到,原本极小的数据也能转化到10个(-3)数量级及以上,在保留了模型可解释性和科学性的同时规范化了数据,便于数据参与二次运算。相较于其他标准化算法,只有RankGauss能做到将任意分布的数据映射到高斯分布,并且保留原始特征的顺序关系,同时规范减小数据的数量级差异。

相关文章
|
1天前
|
网络协议 Python
Python 网络编程实战:构建高效的网络应用
【5月更文挑战第18天】Python在数字化时代成为构建网络应用的热门语言,因其简洁的语法和强大功能。本文介绍了网络编程基础知识,包括TCP和UDP套接字,强调异步编程、数据压缩和连接池的关键作用。提供了一个简单的TCP服务器和客户端代码示例,并提及优化与改进方向,鼓励读者通过实践提升网络应用性能。
18 6
|
2天前
|
缓存 监控 API
利用Python构建高性能的Web API后端服务
随着微服务架构的普及和RESTful API的广泛应用,构建高性能、可扩展的Web API后端服务变得尤为重要。本文将探讨如何利用Python这一强大且灵活的语言,结合现代Web框架和工具,构建高效、可靠的Web API后端服务。我们将分析Python在Web开发中的优势,介绍常用的Web框架,并通过实际案例展示如何设计并实现高性能的API服务。
|
2天前
|
机器学习/深度学习 数据可视化 PyTorch
使用Python实现深度学习模型:变分自编码器(VAE)
使用Python实现深度学习模型:变分自编码器(VAE)
11 2
|
2天前
|
数据采集 数据挖掘 Python
使用Python构建简单网页爬虫的技术指南
【5月更文挑战第17天】使用Python构建简单网页爬虫的教程,涉及`requests`和`BeautifulSoup4`库。首先安装所需库,然后发送HTTP GET请求获取HTML内容。利用`BeautifulSoup`解析HTML,找到目标元素,如`<h2>`标签内的新闻标题。处理相对链接,将它们转化为绝对URL。添加异常处理以应对网络问题,同时遵循网站的`robots.txt`规则。此爬虫适用于数据分析和市场研究等场景。
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
构建未来:使用Python进行深度学习模型训练
【5月更文挑战第17天】 在这篇文章中,我们将深入探讨如何使用Python进行深度学习模型的训练。我们将首先介绍深度学习的基本概念,然后详细讲解如何使用Python的Keras库来创建和训练一个深度学习模型。我们还将讨论如何优化模型的性能,以及如何避免常见的错误。无论你是深度学习的新手,还是有经验的开发者,这篇文章都将为你提供有价值的信息。
|
2天前
|
存储 API 数据库
使用Python和Twilio通过短信通知主持视频办公时间。
使用Python和Twilio通过短信通知主持视频办公时间。
|
3天前
|
机器学习/深度学习 数据可视化 PyTorch
使用Python实现深度学习模型:生成对抗网络(GAN)
使用Python实现深度学习模型:生成对抗网络(GAN)
18 3
|
4天前
|
机器学习/深度学习 数据可视化 PyTorch
使用Python实现深度学习模型:自动编码器(Autoencoder)
使用Python实现深度学习模型:自动编码器(Autoencoder)
9 0
|
4天前
|
存储 缓存 监控
利用Python和Flask构建RESTful API的实战指南
在当今的软件开发中,RESTful API已成为前后端分离架构中的核心组件。本文将带你走进实战,通过Python的Flask框架,一步步构建出高效、安全的RESTful API。我们将从项目初始化、路由设置、数据验证、错误处理到API文档生成,全方位地探讨如何构建RESTful API,并给出一些实用的最佳实践和优化建议。