
1.4 数据挖掘的流程
本书将安排10个章节的内容来讲解具体的数据挖掘算法和应用案例,故需要对数据挖掘的具体流程做一个详细的说明。这里的流程可以理解为数据挖掘过程中的规范,只有熟悉了这些具体的规范,才可以在数据挖掘过程中做到游刃有余。首先通过图1-1中的金字塔了解数据挖掘中具体的操作步骤。

图1-1 数据挖掘步骤
1.4.1 明确目标
前面讲了几个有关数据分析和数据挖掘在电商行业、交通领域和医疗健康方面的案例,体现了数据分析与挖掘的重要性。你可能非常期待数据分析与挖掘在工作中的应用,先别急,在实施数据挖掘之前必须明确自己需要解决的问题是什么,然后才可以有的放矢。
这里通过三个实际的案例来加以说明数据挖掘流程中的第一步,即明确目标:
- 在餐饮行业,可能都会存在这方面的痛点,即如何调整中餐或晚餐的当班人数,以及为下一餐准备多少食材比较合理。如果解决了这个问题,那么对于餐厅来说既可以降低人工成本,又可以避免食材的浪费。
- 当前互联网经济下的消费信贷和现金信贷都非常流行,对于企业来说可以达到“以钱赚钱”的功效,对于用户来说短期内可以在一定程度上减轻经济压力,从而实现两端的双赢。但是企业会面临给什么样的用户放发信贷的选择,如果选择正确了,可以赚取用户的利息,如果选择错误了,就得赔上本金。所以风险控制(简称“风控”)尤其重要,如果风控做得好,就能够降低损失,否则就会导致大批“坏账”甚至是面临倒闭。
- 对于任何一个企业来说,用户的价值高低决定了企业可从用户身上获得的利润空间。用户越忠诚、价值越高,企业从用户身上获取的利润就越多,反之利润就越少。所以摆在企业眼前的重大问题就是如何提升用户的生命价值。
1.4.2 数据搜集
当读者明确企业面临的痛点或工作中需要处理的问题后,下一步就得规划哪些数据可能会影响到这些问题的答案,这一步就称为数据的搜集过程。数据搜集过程显得尤为重要,其决定了后续工作进展的顺利程度。接下来继续第一步中的例子,说明这三个案例中都需要搜集哪些相关的数据。
1.餐饮相关
- 食材数据:食材名称、食材品类、采购时间、采购数量、采购金额、当天剩余量等。
- 经营数据:经营时间、预定时间、预定台数、预定人数、上座台数、上座人数、上菜名称、上菜价格、上菜数量、特价菜信息等。
- 其他数据:天气状况、交通便捷性、竞争对手动向、是否为节假日、用户口碑等。
2.金融授信
- 用户基本数据:姓名、性别、年龄、受教育水平、职业、工作年限、收入状况、婚姻状态、借贷情况、房产、汽车等。
- 刷卡数据:是否有信用卡、刷卡消费频次、刷卡缴费规律、刷卡金额、是否分期、是否逾期、逾期天数、未偿还金额、信用额度、额度使用率等。
- 其他数据:信用报告查询记录、电话核查记录、银行存款、社交人脉、其他APP数据等。
3.影响用户价值高低
- 会员数据:性别、年龄、教育水平、会员等级、会员积分、收入状况等。
- 交易数据:用户浏览记录、交易商品、交易数量、交易频次、交易金额、客单价、最后交易时间、偏好、下单与结账时差等。
- 促销数据:用户活动参与度、优惠券领取率、优惠券使用率、购买数量、购买金额等。
- 客服数据:实时沟通渠道数量、用户沟通次数、用户疑问响应速度、疑问解答率、客户服务满意度等。
1.4.3 数据清洗
为解决企业痛点或面临的问题,需要搜集相关的数据。即使数据搜集上来,也必须保证数据“干净”,因为数据质量的高低将影响最终结果的准确性。通常都有哪些“不干净”的数据会影响后面的建模呢?针对这些数据都有哪些解决方案呢?这里不妨做一个简要的概述。
- 缺失值:由于个人隐私或设备故障导致某些观测在维度上的漏缺,一般称为缺失值。缺失值的存在可能会导致模型结果的错误,所以针对缺失值可以考虑删除法、替换法或插值法解决。
- 异常值:异常值一般指远离正常样本的观测点,它们的存在同样会影响模型的准确性,故可以考虑删除法或单独处理法。当然某些场景下,异常值是有益的,例如通过异常值可以筛选出钓鱼网站。
- 数据的不一致性:主要是由于不同的数据源或系统并发不同步所导致的数据不一致性,例如两个数据源中数据单位的不一致(一个以元为单位,另一个以万元为单位);系统并发不同步导致一张电影票被多个用户购买。针对这种情况则需要不同数据源的数据更新(SQL)或系统实现同步并发。
- 量纲的影响:由于某些模型容易受到不同量纲的影响,因此需要通过数据的标准化方法将不同量纲的数据进行统一处理,如将数据都压缩至0~1的范围。
- 维度灾难:当采集来的数据包含上百乃至成千上万的变量时,往往会提高模型的复杂度,进而影响模型的运行效率,故需要采用方差分析法、相关系数法、递归特征消除法、主成分分析法等手段实现数据的特征提取或降维。
1.4.4 构建模型
“万事俱备,只欠建模”!据不完全统计,建模前的数据准备将占整个数据挖掘流程80%左右的时间,可谓“地基不牢,地动山摇”。接下来,在数据准备充分的前提下,需要考虑企业面临的痛点或难题可以通过什么类型的挖掘模型解决。
- 对于餐饮业需要预测下一餐将有多少消费者就餐的问题,可以归属于预测类型的挖掘模型。如基于整理好的餐饮相关数据使用线性回归模型、决策树、支持向量机等实现预测,进而为下一顿做好提前准备。
- 对于选择什么样的用户放发信贷问题,其实就是判断该用户是否具有良好信用的特征,属于分类类型的挖掘模型。例如,基于Logistic模型、决策树、神经网络等完成用户的分类,为选择优良用户提供决策支持。
- 对于用户的价值分析,不再具有现成的标签,故无法使用预测或分类类型的模型解决,可以考虑无监督的聚类类型模型,因为“物以类聚,人以群分”。例如,使用K均值模型、DBSCAN、最大期望EM等实现不同价值人群的划分。
1.4.5 模型评估
到此阶段,已经完成了数据挖掘流程中的绝大部分工作,并且通过数据得到解决问题的多个方案(模型),接下来要做的就是从这些模型中挑选出最佳的模型,主要目的就是让这个最佳的模型能够更好地反映数据的真实性。例如,对于预测或分类类型的模型,即使其在训练集中的表现很好,但在测试集中结果一般,则说明该模型存在过拟合的现象,需要从数据或模型角度做进一步修正。
1.4.6 应用部署
通常,模型构建和评估工作的完成,并不代表整个数据挖掘流程的结束,往往还需要最后的应用部署。尽管模型构建和评估是数据分析师或挖掘工程师所擅长的,但是这些挖掘出来的模式或规律是给真正的业务方或客户服务的,故需要将这些模式重新部署到系统中。
例如,疾控中心将网民在互联网上的搜索记录进行清洗和统计,并将整理好的数据输入某个系统中,就可以预测某地区发生流感的概率;用户在申请贷款时,前端业务员通过输入贷款者的信息,就可以知道其是否满足可贷款的结论;利用用户在电商平台留下的浏览、收藏、交易等记录,就可以向用户推荐其感兴趣的商品。这些应用的背后,都将数据中的模式或规律做了重新部署,进而便于使用方的操作。