我曾经看过所谓预警模型,只是对一些指标设定阈值,然后多个指标加权评分之后,得到总预警评分,若超过阈值,则提出预警。问题在于:这种思路有些一刀切,指标的选取和阈值的设定都存在很大的人为性,也缺乏有效性评估,所以个人觉得没有太大的实践价值。再谈流失预测分析,业界普遍都是采用决策树算法来建立模型。同意heilql的一些看法,包括挖掘流程的大致描述、指标选择是重点等。其实在我们以前所做的多个客户流失预测项目中,更重要的还有:明确业务问题的定义和如何运用挖掘结果来指导客户挽留活动。以下分别简要说明:①明确业务问题定义我一直觉得数据挖掘就是个不断尝试的过程,没有定式。也许挖掘人员掌握了一些套路,但是在你明白要做什么以及数据的情况到底如何之前,其实你是不能给客户任何保证的。业务问题定义类似于需求分析,只有明确了业务问题才能避免多走弯路,浪费人力物力。对于客户流失预测来说,一般要明确这几个问题:-什么叫做流失?什么叫做正常?(严格定义好0和1)-要分析哪些客户?(比如在移动通信行业,很可能要对签约客户和卡类客户分开建模,还需要排除员工号码、公免号码等等)-分析窗口和预测窗口各为多大?(用以前多久范围的数据来预测客户在以后多久范围内可能流失)②变量选取、数据探索和多次建模这个类似于heilql所提到的指标选择,也许变量是更常用的说法;)电信业的绝大多数数据都可能被探查并用于建模过程。一般我们分为如下几类:-客户基本信息(年龄、性别、在网时长、当前状态。。。)-客户账单信息(账单金额、优惠金额、明细账单金额。。。)-客户缴费信息(缴费次数、缴费金额、欠费次数、欠费金额。。。)-客户通话信息(通话次数、通话时长、短信次数、呼转次数、漫游次数。。。)-客户联络信息(投诉次数、抱怨次数。。。)这些变量的数目很多,而且还会根据需要派生出很多新变量,比如近一月账单金额和近三月账单金额的比例(用于反映消费行为的变动)。建议挖掘人员把所有能拿到数据都探索一遍,然后逐步明确哪些变量是有用的。而对于一个公司来说,事先能给出一份比较全面的变量列表,也正体现了他们在这方面的经验。对于挖掘新手来说,多思考,多尝试,也会逐渐总结出来。③对业务的指导(模型的发布及评估反馈)挖掘人员常常是技术导向的,一旦建立好流失预测模型并给出预测名单之后,常常觉得万事大吉,可以交差了。但是对于客户来说,这远远不够。一般来说,客户投资一个项目,总希望能从中获益,因此在验收时领导最关注的问题可能是:数据挖掘对我的ROI有什么提升?要给客户创造价值,就需要通过业务上的行动来实现。NoAction,NoValue。这种行动可能是帮助客户改善挽留流程,制定有针对性的挽留策略,明白哪些客户是最值得被挽留的,计算挽留的成本以及挽留成功后可能带来的收益。以上这些方面需要挖掘人员不仅仅是技术专家,还需要是业务专家,是BusinessConsultant。===========================[heilql的原贴2005年07月01日23:30]理论背景客户流失分析或客户流失预测:通过离网调研和数据挖掘,捕捉客户离网前的特征,预测客户流失的概率。这对于优质客户的保护是十分重要和有效的分析手段。对于客户流失预测,从两个方面来看:一个是客户流失预警,一个是流失客户特征分析。客户流失预警:定义统一的预警模型,根据预警模型,客户话单数据中自动匹配预警数据,预警模型可以按如下规则定义,并且可以灵活扩展。流失客户特征分析:通过决策数算法,分析流失客户特征,然后通过这些特征得到当前在网客户中匹配流失概率高的客户数据。通过客户流失分析获得流失客户数据和潜在流失客户数据,从而将这些数据分配给客户服务部门,整合销售服务资源,根据客户的需求,设计个性化的营销策略,快速反应,以此达到召回流失客户,挽留流失概率高的客户,实现对客户的守护。(摘自人民邮电报)现实背景随着电信行业竞争的加剧,客户流失的规模越来越大,周期越来越短;电信业新增客户和客户流失模式,就犹如往没有底的水桶中倒水。分析方法客户流失分析的流程到处都在讲,不外乎是:1.分析主题确定及数据指标的选择;2.数据仓库数据提取及清洗;3.不相关指标剔除;4.用训练数据建立模型;5.用测试数据检验模型;6.预测新的流失用户,并提取用户名单;为了引起更多的这方面的探讨,本人有的一些想法,先现世:其实本人认为关键是指标的选择,以及模型建立前的资料的分类,这样将增加模型的准确性,后面的步骤都是水到渠成,但有关这方面的探讨确实很少,应用的实例就更少了。一般电信运营商客户资料主要包括:1.客户背景资料:年龄、性别、收入。。。2.客户消费行为:是否欠费,流失前半年平均消费额\消费趋势,话费构成...3.其他:交费方式,设备使用类别..其实能够想到的指标都可以放上去,然后从定性和定量的角度考虑剔除------------------------------------------------其实现在碰到的最大的问题是给出流失名单之后,客户很难利用这些名单。传统意义上的讲法是说,可以通过外呼或者大客户经理的方式去挽留名单上的用户,但实际操作中,客服的人员和大客户经理不知道怎么去跟客户讲。因此,感觉在名单给出的时候需要通过一定的方式去描述它。不知道你有什么好的建议。目前我的思路是说通过简单的分群的方法找到用户的一些特点,然后请市场人员针对每类用户制定相应的策略,然后去跟客户讲。现在在很多个site上都出现了这样的问题,客户希望得到的是更加细致完整的解决方案,而不是仅仅是一个名单。另外,对所有的用户来进行Cluster还是对预测为流失的用户进行Cluster,现在还没有想太清楚。我觉得两者的侧重点不同,作用可能也不一样。都说客户分群是做其他事情的前提,现在看起来似乎也有那么一点点道理。另外,分群的时候结块的问题怎么解决?目前我碰到的问题就是有个群最大,但是它也最没有特点,在我们所采集到的任何变量上都没有特点。-----------------------------------------------梳理一下思路:正如loafer所说的,对于客户流失预测和客户挽留这个专题分析来说,客户更需要的是能够采取恰当行动的完整方案,而非仅仅一个名单。那么这个解决方案可以划分为四部分:发现挽留机会→制订挽留策略→实施挽留行动,收集客户反馈→评估挽留效果并调整模型和策略。①发现挽留机会:最基本的做法是建立客户流失预测模型(用决策树或对数回归),然后对在网客户进行流失倾向的评分,按倾向高低判别。但此处最好结合对全体客户的分群来识别出真正的挽留机会,并非流失倾向越高就越值得挽留。比如可以按照客户价值进行分群,优先考虑对中高价值客户的挽留;同时根据客户行为分群,判别出哪些客户可能已经用了竞争对手的服务,或者属于欺诈类型的客户,对这批客户的挽留可能是没有成效的,不应视为挽留机会。②制订挽留策略:经过第一个步骤,我们已经从预测名单中圈定了值得挽留的客户。但是一般来说,这批客户依然数目较大,难以逐个分析,决定采取何种挽留策略。(这也是一些厂商宣传的一对一营销,想法虽好,可是未必可行)此时可以对圈定的客户进一步进行分群,将他们划分为几种类型,当然此时最好在分群模型中放入行为、人口统计学、地域等属性,然后基于这几群客户逐群制订有针对的挽留策略。比如有的群组是属于夜间通话多(和总体的均值相比)的客户,那么针对他们的挽留策略可能是推荐一些夜间通话优惠的资费方案。③实施挽留行动、收集客户反馈:这里其实最好有类似操作型CRM的系统来支撑。将上述两步骤给出的挽留机会和挽留策略分配给相应的实施人员(可能是客户经理、CallCenter等),由他们进行实施,并收集客户反馈(最简单的客户反馈是响应或不响应,复杂些的可以包含对客户流失倾向的认定、客户流失原因的了解、挽留策略是否适合该客户等等)④评估挽留效果:在客户流失预测专题分析的试运行阶段,由于对模型预测的效果、挽留机会的识别是否准确、挽留策略的制订是否合适等方面尚未得到确认,常常会将预测名单中圈定的客户划分为两组——实施组和对照组。对前者展开挽留,对后者不采取任何行动,根据两组的流失情况来评估模型的预测效果和挽留效果。当专题分析已经基本稳定后,对照组会被取消,那么对挽留效果的评估主要依赖于客户的反馈、客户随后是否在网以及其用量的变化等来评估。分群中的结块问题的确比较麻烦,我觉得还是从变量的归一化入手。因为在进行聚类之前,一般要对变量进行归一化以消除量纲不同造成的影响,但如果采取了不合适的归一化方法,会导致大量客户聚集在中位数附近(因为大多数变量都会满足正态分布)。此时我们要做的是尽量将他们之间的距离拉开。首先在归一化之前将孤立点拿出来,避免它们对归一化的结果造成较大影响;然后选择合适的归一化方法(例如对数变换,bincode,zscore,sigmoid等,最好多尝试一下它们的组合)。