首页 > 编程语言 >Python基于SVM和RankGauss的低消费指数构建模型

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

时间:2023-06-26 22:55:50浏览次数:47  
标签:SVM Python 模型 分类 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%的正常数据。

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元。

1111.png

低消费指数模型

image.png

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

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

image.png

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

image.png

低消费指数模型

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

image.png

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

关于作者

image.png

在此对Wenyi Shen对本文所作的贡献表示诚挚感谢,他在南京理工大学完成了数据科学与大数据技术专业的学位,专注数据挖掘、数据分析领域。擅长Python、R、Excel、SPSSPRO。

QQ截图20220330125750.png


最受欢迎的见解

1.PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯模型和KMEANS聚类用户画像

2.R语言基于树的方法:决策树,随机森林

3.python中使用scikit-learn和pandas决策树

4.机器学习:在SAS中运行随机森林数据分析报告

5.R语言用随机森林和文本挖掘提高航空公司客户满意度

6.机器学习助推快时尚精准销售时间序列

7.用机器学习识别不断变化的股市状况——隐马尔可夫模型的应用

8.python机器学习:推荐系统实现(以矩阵分解来协同过滤)

9.python中用pytorch机器学习分类预测银行客户流失

标签:SVM,Python,模型,分类,RankGauss,消费,聚类,数据
From: https://www.cnblogs.com/tecdat/p/17507364.html

相关文章

  • python有哪些用一行代码就可以完成的任务?
    python有哪些用一行代码就可以完成的任务?━━━━━━━━━━━━━━━━━━━━━━━━━Python语言采用简洁而优美的语法,可以实现非常复杂的操作。下面列举几个Python语言中可以用一行代码实现的任务:统计一个列表或字符串中元素出现次数:a=[1,2,3,1,4,2,1]cou......
  • 学习python日记
    python主要是看着小甲鱼的视频开始的变量和字符串1temp=int(input("这次数学考试的成绩:"))23iftemp==100:4print("6")5else:6print("2")7print("4")在编写这个程序时,忘了“:”和int(),一个是格式的错误,还有一个细节上的错误然后记录一下,print函数......
  • Python全栈 day01 计算机基础和环境搭建
    day01计算机基础和环境搭建课程目标:让大家了解计算机基础知识并完成Python的环境搭建。课程概要:计算机基础编程的本质Python的介绍Python环境的搭建1.计算机基础1.1基本概念计算机的组成计算机是由多个硬件组合而成,常见的硬件有:CPU、硬盘、内存、网卡、显示器、机......
  • 案例6-YApi Python SDK开发
    需求描述什么是SDKSDK(Softwaredevelopmentkit)软件开发包,是软件或平台面向开发者的一种快速开发工具或套件,使开发者可以更方便、灵活的使用软件或平台功能。一般(比较注重生态的)软件或平台会提供不同语言或平台或框架的包,来适用不同的开发者。例如Selenium就提供了Python、......
  • python: GUI using tkinter
     """StudentUI.py读文件类date2023-06-24edit:GeovinDu,geovindu,涂聚文ide:PyCharm2023.1python11"""importdatetimeimportsysimportosfromtkinterimportttkfromtkinterimport*fromtkinter.ttkimport*fromttk......
  • Python随机数据生成——Faker的使用
    安装Fakerpipinstallfaker导入模块及基本配置#导入FakerfromfakerimportFaker#初始化,设置locale为中文;默认是英文fake=Faker(locale='zh_CN')随机日期生成print('随机年月日:',fake.date(pattern='%Y-%m-%d'))print('随机年:',fake.year())print(......
  • 通过Python的fitz库提取PDF中的图片——(邓棋文)
    我来自广东工业大学的邓棋文,作为一个Python初学者,我们经常会遇到需要从PDF中提取信息的情况。今天,我要分享的是如何使用fitz库(它是PyMuPDF的一个别名)从PDF文件中提取图片。PyMuPDF是一个强大的PDF处理库,它的功能包括文本提取、图片提取、分割和合并等。安装fitz库首先,我们需要安......
  • psycopg2用python生成一些数据插入pg数据库
    创建学生表,用python随机生成姓名,性别,班级,省,市,生日插入数据库中先把姓名和省市以字典方式存入单独文件fromname_dictimportnamefromcity_dictimportcityfromrandomimportchoice,randintfromdatetimeimportdateimportpsycopg2aspgconn=pg.connect(data......
  • Python基础知识
    1.变量和简单数据类型1.1变量变量只能包含字母、数字、下划线,并且不能以数字开头变量名不能包含空格不要讲python关键字和函数作为变量名。变量名应简短又具有描述行被赋值的内容应该用双引号或单引号括起来1.2字符串title():将字符串首字母变为大写upper():将字符串......
  • python代码-基于深度强化学习的微能源网能量管理与优化策略研究
    python代码-基于深度强化学习的微能源网能量管理与优化策略研究关键词:微能源网;能量管理;深度强化学习;Q-learning;DQN内容::面向多种可再生能源接入的微能源网,提出一种基于深度强化学习的微能源网能量管理与优化方法。该方法使用深度Q网络(deepQnetwork,DQN)对预测负荷、风光等可......