基于决策树算法的烟草零售户定价方法与流程

文档序号:12272782阅读:673来源:国知局

技术领域

本发明涉及数据挖掘技术,尤其涉及一种基于决策树算法的烟草零售户定价方法。



背景技术:

随着科学技术的发展、移动网络的扩展和普及,信息化浪潮迅速席卷全球。与此同时,各行各业都出现了海量的存储数据,如阿里巴巴集团旗下的淘宝网,就存储着包含消费习惯、消费能力、消费时间、消费爱好等在内的大量数据,而腾讯集团下的QQ、微信等则包含着社交语言、社交习惯、社交爱好、年龄特点在内的大量数据,百度的搜索数据则隐含着人们的兴趣特点、知识需求、网络热点等大量信息。人们在认识到信息重要性的同时,对信息分析与使用的要求也越来越高,如何在大量的数据中,采用有效的方法,挖掘数据背后深层次的有用信息,已经成为了相关行业关注的重点和焦点。目前,一系列的的数据挖掘相关的技术及产业都已经出现并飞速发展着,国外的有包括谷歌、苹果、微软、IBM、亚马逊在内的诸多互联网巨头,国内有包括华为、百度、阿里在内的新兴互联网企业,他们在投入大量资金及人力的同时希望能抢占相关行业的主导地位。同时,数据挖掘也不断发展,从最初的文本、数据库挖掘发展到了空间数据挖掘、多媒体数据挖掘,从静态发展到动态挖掘,数据挖掘不仅重视可视化技术,而且也越来越注重联合功能开发以及跨平台系统开发。

在数据挖掘建模过程中,会遇到数据集中,某一类的样本数据量远远大于其他类的样本数量,其中数据量占多的类称为多数类,反之占少数的类称为少数类。不平衡数据集会影响数据挖掘模型精度和使模型会过度拟合。所以提高少数类的分类精度称为不平衡数据集中的一个研究重点。

一般解决不平衡数据分类问题的策略可以分成两大类:一类是通过改变训练集样本分布,降低不平衡程度。常用的方法有随机过抽样、随机欠抽样、SMOTE等方法。另一种是从算法本身入手,根据算法自身在处理不平衡问题时的缺陷,适当地修改算法使之适应不平衡分类问题。常用的策略有:代价敏感方法,在传统的分类算法基础上引入敏感因子,设计出带有样本阈值的分类算法,如代价敏感决策树、代价敏感支持向量机等。



技术实现要素:

为了解决该问题,本发明提出了一种基于决策树算法的烟草零售户定价方法。利用数据挖掘算法中的决策树算法,利用烟草的零售户营销数据,构建零售户定价分析模型,预测未来几周该规格卷烟的市场价格情况。其中通过采用一种新的数据抽样算法,解决不平衡数据影响模型准确性的问题。

通过使用Python的Pandas包,根据烟草行业特有的数据结构,进行清除噪音数据,然后通过数据归一化方法将数值型数据转换成离散型数据。然后通过合并组成的挖掘宽表,通过使用决策树算法,设置相关参数。构建烟草零售户定价分析模型。找到零售价格和客户、商品名称、周期、订单量、满足率、销量、销额、平均库存量和存销占比之间的关系。既得出规则,对烟草经营起到指导性作用。其中针对烟草样本数据存在分布不平衡的现象。提出通过使用一个改进的C4.5决策树算法来处理不平衡数据的抽样方法。首先按照数据挖掘流程,对烟草数据进行分析,根据各类样本数据确定各个样本的初始阈值,然后通过迭代对各个样本的权重值进行修改,最终得到各个样本的最终权重值,最后根据样本权重值找出少数类边界区域的样本和多数类中心区域的样本,并使用基于聚类的过抽样算法(Under-sampling based on clustering,SBC)对样本进行过抽样。这样改善了不同类别的数据的平衡度,提高少数类和数据集整体的识别率。本发明通过使用C4.5决策树算法对样本进行权重修改,并根据样本权重有针对性地进行过抽样处理,有效的避免了分类器过度拟合和预测分类不准确的问题。

对于抽取数据阶段,通过改进的C4.5决策树算法,来处理烟草数据中不平衡数据抽样的问题。其步骤如下所示:

1)根据训练集中样本的数据量初始化各个样本的权重值,作为本样本的误差权限值:设置迭代次数为T,从1到T每次的迭代依次循环以下的步骤2)-3)

2)利用C4.5决策树算法对训练集进行学习,得出一套规则;

3)根据步骤2)所得规则,将分类错误的样本权重增大,减少分类正确的样本权重,且变化幅度与其原始权重成正相关。

4)设计过抽样概率阈值,并根据样本的权重找出位于少数类边界区域的样本,利用基于聚类的过抽样算法(Under-sampling based on clustering,SBC)算法对此取悦的样本进行过抽样,并将所有的少数类样本及过抽样所得样本添加到新的数据集中。

5)设定欠抽样阈值,按照样本的权重对分类目标进行欠抽样,使位于多数累样本更容易被选中,将选中的样本添加到新的数据集中。

6)使用C4.5算法对抽样得到的新的数据集进行训练,得到规则并使用测试数据集进行分类测试。

在步骤1)中,计算初始化各个样本的阈值具体包括:使用奈曼法算法,即各层应抽样本数与该层总体数及其标准差的积成正比。计算出各个样本的初始抽样数量,假设多数类样本数量为A,少数抽样样本为B,则多数类的权重值为1/2A,少数类样本的权重为1/2B。

本发明的有益效果是

(1)针对烟草业务数据结构建立“烟草公司经营行为—零售户能感受到的市场信号—零售户销售策略”之间的数据挖掘模型。通过对用户、商品名称、周期、订单量、满足率、销量、销额、平均库存量和存销比等属性,通过回归预测需求量,辅助帮助烟草局决策订单需求量的多少。

(2)通过改进的C4.5决策树算法,对于不平衡数据进行平稳的抽样。能够针对性的进行过抽样和欠抽样处理,提高少数类和数据集整体的分类性能。

附图说明

图1是使用wrapper算法流程图示意图。

具体实施方式

下面对本发明的内容进行更加详细的阐述:

实现方案如下所示:

(1)选择开发环境及开发工具,建立Python项目

开发人员可根据开发习惯选择Python开发工具创建Python项目,添加Python Pandas等数据分析包。

(2)在建好的项目中按照规则建立目录结构并添加必要的配置及Python包。通过以上配置,启用多主题功能所需的软件环境已经准备就绪。

(3)数据源分析,确定了业务目标后,要收集相关的数据,并对数据进行描述以及熟悉数据,对数据进行检查以确认数据的质量。如数据是否存在噪音、缺失值、冗余属性、不一致、数据过少或过多等问题。

(4)数据抽取。从业务系统中或者外部数据文件中抽取所需要的数据,测试数据集为大连终端用户数据。其中根据数据分析业务,出去非必要的属性字段。除去了客户、商品名称、时间周期这个三个字段。因此挖掘宽表的数据集应该是所抽取数据集合的子集。

(5)数据转换。由于决策时算法只适用于标称型数据,因此数据值数据必须离散化。变量的离散化是指将连续型的变量转换成离散型的变量的过程,方法是使用某种方法将变量划分成多个区间,每个区间的所有值在离散化后被看做同一个值,这样连续区间就变成了不同的离散值。通过分析数据和结合所使用的算法,选择有监督的离散化方法-基于类信息熵,将其属性值进行离散化。信息熵是从上而下的划分,首先根据信息增益寻找最佳分点,然后在递归的划分。

(6)训练集和测试的划分。采用常用的划分比例7:3,即训练集占原数据集实例总数的70%,测试集占30%。

(7)类标签的确定。在分类任务中,需要首先确定数据集的用来学习或训练的类的标签。确定类标签包括两个含义。一个是类标签应该包括哪几个类,对于数据集为大连终端用户数据。

(8)变量的选择。属性选择的目的是找到满足特定标准的最小的属性子集。属性选择工作方式如下:首先是使用某种搜索方法找到一组属性子集,然后测试这组属性是否满足特定标准,未满足则重新搜索,直到到达终止条件为止。使用wrapper算法选取合适的属性集合,算法流程图如图1所示:

其中S为属性全集,a为S中的每个属性。

本次方案采用业务排除法,去除客户、商品名称编码、周期这三个属性。

(9)建模过程。

9.1)根据训练集中样本的数据量初始化各个样本的权重值,作为本样本的误差权限值:设置迭代次数为T,从1到T每次的迭代依次循环以下的步骤2)-3)

9.2)利用C4.5决策树算法对训练集进行学习,得出一套规则;

9.3)根据步骤2)所得规则,将分类错误的样本权重增大,减少分类正确的样本权重,且变化幅度与其原始权重成正相关。

9.4)设计过抽样概率阈值,并根据样本的权重找出位于少数类边界区域的样本,利用基于聚类的过抽样算法(Under-sampling based on clustering,SBC)算法对此取悦的样本进行过抽样,并将所有的少数类样本及过抽样所得样本添加到新的数据集中。

9.5)设定欠抽样阈值,按照样本的权重对分类目标进行欠抽样,使位于多数累样本更容易被选中,将选中的样本添加到新的数据集中。

9.6)使用C4.5算法对抽样得到的新的数据集进行训练,得到规则并使用测试数据集进行分类测试。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1