咱们知道一个完整的数据挖掘项目一般包含如下流程(1)业务理解、(2)数据理解、(3)数据准备、(4)数据预处理和建模、(5)模型评估、(6)模型部署应用。而要完成一个数据挖掘任务,必需要具有两方面的技能,技术能力和业务知识。技术能力主要包括数据统计分析能力,算法能力,计算机能力等,业务知识体现的则是对业务的熟悉程度。这两大能力都很重要缺一不可,可是业务知识的重要性倒是常常容易被忽视的。今天咱们就来具体聊一下,这两大能力是如何贯穿于整个流程并影响建模效果。程序员
拿到一个数据挖掘项目,首先要进行的就是业务理解和数据理解,了解商务背景,明确挖掘目标和建模数据。建模的目的是为了解决业务问题,业务目标是全部数据解决方案的源头,它定义了数据挖掘的主题。只有正确理解了业务才可以明确挖掘的正确方向。例如,在信贷风险预测中,须要预测出高风险的客户群体,那么如何定义历史数据中的高风险客户就很重要,一般咱们会认为有违约行为的客户是高风险客户,可是进一步分析以后就会发现有一些客户虽然有违约行为,但只是偶尔一两次的逾期几天而已,经过业务常识能够判断这些客户可能只是忘记还款而违约的,并非高风险客户。再例如作产品的精准营销模型时,有没有必要经过细分客户群体来建模,又或是区分地域差异来建模。这些都须要充分了解业务才能作出准确的判断。还有,建模数据范围的,也须要有业务知识的支撑才能进行,不然就是大海捞针,效率低下。所以,在这个环节,业务知识能力占主导地位,技术能力会查看数据就足够了。在建模过程当中,业务思路上的优化比建模技术思路上的优化更重要,而建模技术思路上的优化又比单纯的建模技巧的优化更重要。算法
建模目标和数据范围肯定好之后,就进入到第二个阶段准备数据。数据准备的目的是创建数据集市或者宽表,主要工做包括选择数据、清洗数据、构造数据、整合数据、格式化数据等。这个环节一样须要用到业务知识,例如建模的数据一般会来自于多个表格或数据源,那么就须要了解各个表格之间的业务逻辑,才能将数据整合到一块儿,例如 A 表是订单数据,B 表是产品属性数据,C 表是客户信息数据,要整合 3 张表首先要缕清楚他们之间的逻辑关系,若是彻底不懂业务是很难缕清楚或者很容易出错的。在数据准备过程当中,一般还须要作不少数据汇总,特征提取的工做,例如在原始的订单数据中可能会出现同一用户多个帐号,同一帐号多个订单,同一订单又包含多个产品的状况,这是也须要对业务有必定了解才能清楚其中的关系。在技术能力方面,须要会一些 ETL 的操做,这件事从 0 开始作并不容易,但大多数状况下都有 IT 部门建设好的数据仓库,因此常常也不须要作。ide
在数据预处理和建模环节,对技术能力的要求就比较高了,须要涉及到统计学分析,算法能力和调参能力等内容。也正是这部分工做难度比较大,专业人才少,实现困难,才形成不少人误觉得数据挖掘是一项纯技术的工做,而忽略了业务知识的重要性。不过使人欣慰的是,这部分技术性的工做能够借助 AI 来实现,例如,当前兴起的自动建模技术就能够自主的完成数据预处理和建模工做。自动建模技术是将统计学家和数学家的数据处理经验和理论融入到软件中,使得软件可以智能的去完成数据预处理,建模型,选参数,作评估等一系列的工做。对于使用者来说只须要将数据丢进自动建模工具,而且配置好目标,工具就可以自动建出优质模型。即便是没有统计学背景,不了解算法的初学者,或者普通的 IT 程序员均可以经过自动建模技术来建出高质量模型。工具
模型建好后,可否合理评估模型也很重要,不少时候并非建不出好的模型,而是不知道什么才是好的模型。在这个环节,技术能力须要了解各类模型指标的含义,例如,AUC, ROC, Gini,Lift,Mse……, 业务知识能力则须要知道如何根据业务目标来选择合适的评价指标。例如某企业但愿销售 50 件产品,创建了两个模型来选择待推销客户,混淆矩阵以下,应该选择哪一个模型更合适呢?优化
只考虑准确率,彷佛应当选择 A 模型,但这时候咱们须要对 75(=50/0.667,预测购买者中有 66.7% 的实际会购买,即精确率)个客户推销才可能卖出 50 件商品;而选择模型 B,则只要对 60(=50/0.833)个客户推销就可能卖出 50 件商品了,推销成本反而下降了。在这里业务目标是销售 50 个产品,所以要基于该目标去选择合适的评价指标,而不是随便指定。blog
综上,技术能力和业务知识能力是实现数据挖掘任务的必要条件,二者都具有才能建出好的模型。其中对技术能力要求较高的预处理和建模过程,能够借助自动建模技术来实现,可是业务知识的运用则是 AI 难以替代的。部署
对进一步数据挖掘和 AI 技术感兴趣的同窗还能够搜索“乾学院”,上面有面向小白的零基础“数据挖掘”免费课程。数学