基于Matlab编程的客户价值分析模型.doc
《基于Matlab编程的客户价值分析模型.doc》由会员分享,可在线阅读,更多相关《基于Matlab编程的客户价值分析模型.doc(15页珍藏版)》请在沃文网上搜索。
1、目 录1. 背景与挖掘目的52. 问题分析52.1 分析方法63 建模过程与求解73.1 模型的流程73.2 模型的建立83.2.1 数据预处理83.2.2 模型构建143.2.3 结果与分析143.2.4 模型的应用174. 实验总结184.1开发环境与软件配置184.2 小组分工184.3 个人小结18参 考 文 献191问题背景与挖掘目的信息时代的来临使得企业营销焦点从产品中心转变为客户中心,客户关系管理成为企业的核心问题。客户关系管理的关键问题是客户分类,通过客户分类,区分无价值客户、高价值客户,企业针对不同价值的客户制定优化的个性化服务方案,采取不同营销策略,将有限的营销资源集中于高
2、价值客户,实现企业利润最大化的目标。准确的客户分类结果是企业优化营销资源分配的重要依据,客户分类越来越成为客户关系管理中亟待解决的关键问题之一。面对激烈的市场竞争,各个航空公司都推出了更优惠的营销方式来吸引更多的客户,国内某航空公司面临着旅客流失、竞争力下降和航空资源未充分利用等经营危机。通过建立合理的客户价值评估模型,对客户进行分群,分析比较不同客户群的客户价值,并制定相应的营销策略,对不同的客户群提供个性化的客户服务是必须的和有效的。目前该航空公司已积累了大量的会员档案信息和其乘坐航班记录,经加工后得到如表1所示的数据信息。表1 航空信息属性表根据表2所示的数据实现以下目标:(1)借助航空
3、公司客户数据,对客户进行分类;(2)对不同的客户类别进行特征分析,比较不同类别客户价值 ;(3)对不同价值的客户类别提供个性化服务,制定相应的营销策略。表2 航空信息数据表2 分析方法与过程这个案例的目标是客户价值识别,即通过航空公司客户数据识别不同价值的客户。识别客户价值应用最广泛的模型是通过三个指标(最近消费时间间隔(Recency),消费频率(Frequency),消费金额(Monetary)来进行客户细分,识别出高价值的客户,简称RFM模型。 在RFM模型中,消费金额表示在一段时间内,客户购买该企业产品金额的总和。由于航空票价受到运输距离,舱位等级多种因素的影响,同样消费金额的不同旅客
4、对航空公司的价值是不同的。比如一位购买长航线,低等级航位票的旅客与一位购买短航线,高等级舱的位票的旅客相比,后者对于航空公司而言价值可能更高,因此这个指标并不适合于航空公司的客户价值分析。我们选择客户在一定时间内累积飞行里程(M)和客户在一定时间内乘坐舱位对所应的折扣系数的平均值(C)两个指标代替消费金额,此外,考虑航空公司会员入会时间的长短在一定程序上能够影响客户价值 ,所以在模型中增加客户的关系长度(L),以作为区分客户的另一指标。本案例将客户关系长度(L)、消费时间间隔(R)、消费频率(F)、飞行里程(M)和折扣系数的平均值(C),五个指标作为航空公司识别客户价值的指标,如表3所示,记为
5、LRFMC模型。、 表3 LRFMC模型各指标的含义模型LRFMC航空公司LRFMC模型会员入会时间距观测窗口结束的月数客户最近一次乘坐飞机距观察窗口结束的月数客户在观测窗口内乘坐公交飞机的次数客户在观测窗口内累计的飞行里程客户在观测窗口内乘坐舱位说对应的折扣系数的平均值 针对航空LRFMC模型,如果采用传统RFM模型分析的属性分箱方法,如图1所示(它是依据属性的平均值进行划分的,其中大于平均值的表示为,小于平均值的表示为 ,虽然也能够识别出最有价值的客户,但是细分的客户群太多,提高了针对性营销的成本。因此,本案例采用聚类的方法识别客户价值。通过对航空公司客户价值LRFMC五个指标进行K-Me
6、ans聚类,识别出最有价值的客户。图1 RFM模型 本案例航空客户价值分析的总体流程,如图2所示:图2 航空客运数据挖掘建模总体流程航空客运信息挖掘主要包括以下步骤:(1) 从航空公司的数据源中进行选择性抽取与新增数据抽取分别形成历史数据和增量数据。(2) 对第一步形成的两个数据集进行数据探索分析与预处理。包括数据缺失值与异常值的探索分析,以及数据的属性规约、清洗和变换。(3) 利用第二步形成的已完成数据预处理的建模数据,基于旅客价值 LRFMC模型进行客户分群,对各个客户群进行特征分析,识别出有价值的客户。(4) 针对模型结果得到不同价值的客户,采用不同的营销手段,为其提供定制化的服务。3.
7、2.1数据抽取以2014-03-31为结束时间,选取宽度为两年的时间段作为分析观测窗口,抽取观测窗口内有乘机记录的所有客户的详细数据形成历史数据。对于后续新增的客户详细信息,以后续新增数据中最新的时间点作为结束时间,采用上述同样的方法进行抽取,形成增量数据。 从航空公司系统内的客户基本信息、乘机信息以及积分信息等详细数据中,根据末次飞行时期(LAST-FLIGHT-DATE),抽取2012-04-012014-03-31内所有乘客的详细数据,总共62988条记录。其中包含了如会员卡号、入会时间、性别、年龄、会员卡级别、工作地域市、工作地所在省份、工作地所在国家、观测窗口结束时间、观测窗口乘机积
8、分、飞行公里数、飞行次数、飞行时间、乘机时间间隔、平均折扣率等44个属性。3.2.2数据探索分析 本案例的数据探索分析是对数据进行缺失值分析与异常值分析,分析出数据的规律以及异常值,通过对数据进行观察发现原始数据中存在票价为空值、票价最小值为0、折扣率最小值为0、总飞行公里数大于0的记录。票价为空值的数据可能是客户不存在乘机记录造成的,其他的数据可能是客户乘坐0折扣机票或者积分兑换造成的。查找每列属性观测值中空值个数、最大值、最小值的MATLAB的代码,如下所示。% 数据空缺值探索,如果是字符串则返回缺失值个数,% 如果是数值型返回缺失值个数以及最大最小值clear;% 参数初始化datafi
9、le= air_data.csv ; % 航空原始数据,第一行为属性标签logfile = log.txt; % 日志文件resultfile = explore.xls; % 数据探索结果表% 读取数据num,txt = xlsread(datafile);rows,cols = size(num);% 初始化 结果变量results = cell(5,cols+1);result = zeros(4,cols);results(:,1)= 属性;空记录数;缺失率;最大值;最小值;results(1,2:end)=txt(1,:);% 记录日志log_add(logfile,文件 dataf
10、ile 一共有 num2str(rows) . 条记录); % 遍历所有列,进行空缺判断for i= 1: cols % 判断txt每列从第二行开始 ,是否都是空串 empty_sum = sum(cellfun(isempty,txt(2:end,i); % 如果是空串,则empty_sum=rows,即为数值型 if empty_sum=rows % 该列为数值型 min_ = min(num(:,i); % 最小值 max_ = max(num(:,i); % 最大值 nan_sum = sum(isnan(num(:,i); nan_rate = nan_sum/rows; % 缺失率
11、 loginfo=属性列 txt1,i 是数值型,其最大值为. num2str(max_) ,最小值为 num2str(min_) . ,缺失值个数为 num2str(nan_sum) 个,缺失率为 . num2str(nan_rate); log_add(logfile,loginfo);% if nan_sum=0% disp(loginfo);% end result(1,i)=nan_sum; result(2,i)=nan_rate; result(3,i)=max_; result(4,i)=min_; else % 该列为字符串型,接着判断txt emptynum,emptyra
12、te= find_empty(txt(2:end,i); loginfo=属性列 txt1,i 是字符串型,缺失值个数为 . num2str(emptynum) 个,缺失率为 . num2str(emptyrate); log_add(logfile,loginfo);% if emptynum=0% disp(loginfo);% end result(1,i)=nan_sum; result(2,i)=nan_rate; endend % 写入数据探索结果results(2:end,2:end)=num2cell(result);xlswrite(resultfile,results);d
13、isp(代码运行完成!);执行完毕在当前目录产生日志记录文件log.txt,以及数据处理结果保存的文件explore.xls。根据上面的代码得到的探索结果,如表4所示:表4 数据探索分析结果属性空记录数缺失率最大值最小值MEMBER_NO00629881FFP_DATE0000FIRST_FLIGHT_DATE0000GENDER0000FFP_TIER0064WORK_CITY0000WORK_PROVINCE0000WORK_COUNTRY0000AGE4200.00671106LOAD_TIME4200.006700FLIGHT_COUNT002132BP_SUM005053080EP_
14、SUM_YR_10000EP_SUM_YR_200744600SUM_YR_15510.00872395600SUM_YR_21380.00222341880SEG_KM_SUM00580717368WEIGHTED_SEG_KM005.5844e+050LAST_FLIGHT_DATE0000AVG_FLIGHT_COUNT0026.62500.2500AVG_BP_SUM006.3164e+040BEGIN_TO_FIRST007290LAST_TO_END007311AVG_INTERVAL007280MAX_INTERVAL007280ADD_POINTS_SUM_YR_1006000
15、000ADD_POINTS_SUM_YR_2007282820EXCHANGE_COUNT00460avg_discount001.50000P1Y_Flight_Count001180L1Y_Flight_Count001110P1Y_BP_SUM002461970L1Y_BP_SUM002591110EP_SUM00744600ADD_Point_SUM009849380Eli_Add_Point_Sum009849380L1Y_ELi_Add_Points007282820Points_Sum009855720L1Y_Points_Sum007282820Ration_L1Y_Fligh
16、t_Count0010Ration_P1Y_Flight_Count0010Ration_P1Y_BPS001.00000Ration_L1Y_BPS001.00000Point_NotFlight0014003.2.3 数据预处理本案例主要采用数据清洗、数据规约与数据变换的预处理方法1.数据清洗 通过数据探索分析,发现数据中存在缺失值,票价最小值为0、折扣率为0、总飞行公里数大于0的记录。由于原始数据量大,这类数据所占比例较小,对该问题影响不大,因而对其进行丢弃处理,具体处理方法如下: 丢弃票价为空的记录。 丢弃票价最小值为0、折扣率为0、总飞行公里数大于0的记录。使用Matlab对满足清洗
17、条件的数据进行丢弃,处理方法为满足清洗条件的一行数据全部丢弃,其代码如下:% 数据清洗,过滤掉不符合规则的数据clear;% 参数初始化datafile = air_data.csv; % 数据文件cleanedfile = data_cleaned.csv; % 数据清洗后保存的文件% 清洗空值和不符规则的数据num,txt=xlsread(datafile); row,col=size(txt);% 数据整合for i=1:col % 判断txt每列从第二行开始 ,是否都是空串 empty_sum = sum(cellfun(isempty,txt(2:end,i); % 如果是空串,则e
18、mpty_sum=row-1,即为数值型 if empty_sum = row-1 txt(2:end,i)=num2cell(num(:,i); % 把数值型转为cell类型,并整合 end% if mod(i,500)=0% disp(已整合数据 num2str(i) 条记录.); % endenddisp(过滤前行数: num2str(size(txt,1);% 初始化变量txt_copy=;rule1_sum =0;rule2_sum =0;% 数据过滤for i=2:row % 从第二行数据行开始判断 % 判断每一行数据是否符合规则,其中filter_data为自定义函数, % 如果
19、数据符合要求则返回1,否则返回0 filterflag,rule1_sum,rule2_sum = filter_data(txt(i,:),rule1_sum,rule2_sum); if filterflag =0 % 不合要求,删除 txt_copy=txt_copy,i; % 清除数据 end% if mod(i,500)=0% disp(已过滤数据 num2str(i) 条记录.); % endendtxt(txt_copy,:)=;disp(过滤后行数: num2str(size(txt,1)-1) ,规则1过滤记录数: num2str(rule1_sum) . 规则2过滤的记录数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Matlab 编程 客户 价值 分析 模型
