用户流量分析模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
版本:1.0 安徽联通用户流量分析模型
2012年01月12日
文件建立/修改记录
一、工具选择与算法选择
选用Clementine建模工具里面的决策树算法C5.0对本网用户的流量使用情况进行分析,类别划分。
二、决策树算法介绍
决策树算法构造决策树来发现数据中蕴涵的分类规则.如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树构造可以分两步进行。第一步,决策树的生成:由训练样本集生成决策树的过程。一般情况下,训练样本数据集是根据实际需要有历史的、有一定综合程度的,用于数据分析处理的数据集。第二步,决策树的剪技:决策树的剪枝是对上一阶段生成的决策树进行检验、校正和修下的过程,主要是用新的样本数扼集(称为测试数据集)中的数据校验决策树生成过程中产生的初步规则,将那些影响预衡准确性的分枝剪除。
1)树以代表训练样本的单个结点开始。
2)如果样本都在同一个类.则该结点成为树叶,并用该类标记。
3)否则,算法选择最有分类能力的属性作为决策树的当前结点.
4)根据当前决策结点属性取值的不同,将训练样本数据集tlI分为若干子集,每个取值形成一个分枝,有几个取值形成几个分枝。匀针对上一步得到的一个子集,重复进行先前步骤,递4'I形成每个划分样本上的决策树。一旦一个属性出现在一个结点上,就不必在该结点的任何后代考虑它。
6)递归划分步骤仅当下列条件之一成立时停止:
①给定结点的所有样本属于同一类。
②没有剩余属性可以用来进一步划分样本.在这种情况下.使用多数表决,将给定的结点转换成树叶,并以样本中元组个数最多的类别作为类别标记,同时也可以存放该结点样木的类别分布,
③如果某一分枝tc,七砰如恤卜a*没有样本,则以样.本的多数类创建一个树叶。
决策树构造的输入是一组带有类别标记的例子,构造的结果是一棵二叉树或多叉树。二叉树的内部节点(非叶子节点)一般表示为一个逻辑判断,如形式为a=aj的逻辑判断,其中a是属性,aj是该属性的所有取值:树的边是逻辑判断的分支结果。多叉树(ID3)的内部结点是属性,边是该属性的所有取值,有几个属性值就有几条边。树的叶子节点都是类别标记。
由于数据表示不当、有噪声或者由于决策树生成时产生重复的子树等原因,都会造成产生的决策树过大。因此,简化决策树是一个不可缺少的环节。寻找一棵最优决策树,主要应解决以下3个最优化问题:①生成最少数目的叶子节点;②生成的每个叶子节点的深度最小;③生成的决策树叶子节点最少且每个叶子节点的深度最小。
三、数据预处理及准备
首先关联本网用户资料信息表,联通用户资料半年汇总表,3G业务资料表,统计出用户收入,用户增值费用,用户年龄,用户在网时长与用户使用流量的关系,及按流量使用量,套餐内流量使用情况,套餐内流量剩余流量将用户分档统计(详细见附件)。后将用户资料11月份数据清洗(除去离网用户,测试卡用户,上网卡用户)后作为模型数据来源。取数sql如下:
create table spss_flow as (
select er_id,
a.phone_no,
a.online_dura,
(a.addval_fee + a.call_fee + a.month_fee) as arpu,
a.addval_fee,
NVL(_flow, 0) / (case
WHEN trim(a.prodt_cde) = '42221'THEN
150
ELSE
p.RUN_COUNT_IN
END) as shiyonglv,
((case
WHEN trim(a.prodt_cde) = '42221'THEN
150
ELSE
p.RUN_COUNT_IN
END) - NVL(_flow, 0)) / (case
WHEN trim(a.prodt_cde) = '42221'THEN
150
ELSE
p.RUN_COUNT_IN
END) as shengyulv,
b.age_level_code,
_flow
from tb_b_ft_prd_inst partition(p201111) a
left join tb_b_dim_prd_3g p on trim(p.offer_id) = trim(a.PRODT_CDE) left join tb_b_ft_prd_inst_bn b on trim(er_id) = er_id where a.online_user_flag = '1'
and a.ceshi_user_flag <> '1'
AND A.PRODT_CDE NOT IN
('14419', '44364', '25924', '63155', '63160', '63399', '42221') );
四、建模过程及流文件说明
首先将建模数据导出为CSV文件并保存在一个路径
然后打开clementine工具,在面板下方找到文件节点:,打开它,然后选中CSV文件路径即可导入数据文件:
,选择字段选项下的过滤节点,拖入工作区,将电话号码及USER_ID过滤掉,选择字段选项下的填充节点,选择需要去null的字段,将null值和无效值置换为0,选择字段选项下的类型节点,选择字段选项下的导出节
点,编辑导出节点,在导出为选项中选择标志,编辑公式编辑器,输入流量数大于0作为条件,测试成功后点击确定,再选择类型节点,设置输入输出参
数,将是否产生流量作为输出,在网时长,年龄,收入,增值用作为输入参数,
最后在建模下拖入C5.0模型节点,编辑节点,设置输出类型,决策树方式,剪枝程度100,确定后执行节点。
并点击按钮,弹出执行界面:
如果执行过程中,想终止执行,点击:即可,模型正常执行完成后,执行界面会消失,此时可在面板右方:
找到模型最终执行结果:,右键点击该模型节点的浏览选项查看模型即可.结果: