【视频】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天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品市场预测的深度学习模型
使用Python实现智能食品市场预测的深度学习模型
15 5
|
1天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
3天前
|
机器学习/深度学习 算法 数据可视化
使用Python实现深度学习模型:智能食品配送优化
使用Python实现深度学习模型:智能食品配送优化
13 2
|
2天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
11 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
2天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
9 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
Web App开发 数据库 Python
|
1天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
1天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
3天前
|
设计模式 算法 搜索推荐
Python编程中的设计模式:优雅解决复杂问题的钥匙####
本文将探讨Python编程中几种核心设计模式的应用实例与优势,不涉及具体代码示例,而是聚焦于每种模式背后的设计理念、适用场景及其如何促进代码的可维护性和扩展性。通过理解这些设计模式,开发者可以更加高效地构建软件系统,实现代码复用,提升项目质量。 ####