数据准备
选择数据
企业数据来自各种不同的数据源,例如:
**企业内部数据。**这包括大量不同的数据,例如用户信息、交易数据、调查数据、Web 日志、网页内容等。要考虑现有数据是否足以满足需要。
**外部行业数据。**如人口统计数据、GDP 数据、天气数据、合作单位数据?
**互联网数据。**为了更好地提升分析效果,还可以考虑通过网络爬虫等技术采集互联网数据。
基于已经梳理的数据资源,我们为了提高数据的效率,降低分析大数量的难度,我们首先应该想尽办法降低数据量,尽快排除与数据挖掘目标不相关的数据。通常,分以下几步选择数据:
第一步,按表进行筛选。首先从企业内部数据中选择与分析主题相关的表,然后考虑是否可以从外部行业数据中补充数据,最后再考虑从互联网中采集一些数据进行完善。不过要注意,互联网的数据质量比较低,一定要谨慎使用。
第二步,再对选择的每一张表,进行行和列的筛选。
选择属性或特征(列):如交易频次、最近一次交易时间、交易金额等。选择合适分析对象(行):如要包含哪些卡号、产品类型或日期时间。
数据审核
经过上一步的处理,我们的数据量明显小了很多,为接下来的分析提高了不少效率。数据审核的工作是非常必要的,因为数据从来都不是完美的,只有保证输入的质量,才可以保证模型输出成果的可靠。在这一部分我们不仅要对有质量问题的数据进行处理,同时还要记录数据的基本特征。
需要查找以下这些问题:
-
-
- 数据是否缺失(例如$null$、?)?如果有,是填充缺失值还是删除缺失值;
- 数据度量类型是否正确?比如日期格式是否正常,是否把销售额等数值字段存储为了字符型;
- 编码是否一致?例如同时使用 M 和 male 表示性别男;
- 字段取值是否异常?比如,购买金额是否为负,退货次数是否过多;
- 数据量多大?记下每张表的大小;
- 各变量分布特征如何?比如名义值个数,最大值最小值;
- 值是什么类型?编码方案。例如,一个数据集可以使用 M 和 F 来表示男性和女性,此外也可以使用数字值 1 和 2 表示。两者都可以,但是要保证一致,避免冲突。
-
数据转换
数据转换是数据挖掘最重要的阶段之一,通常需要花费大量的时间。在前期阶段投入足够的精力可以将对这一阶段的投入降至最低,但仍需花费大量的精力为建模准备。
数据转换通常包含以下任务:对于结构化数据:
-
-
- 按研究对象汇总记录
- 导出新的属性
- 数据排序
- 删除或替换空值或缺失值
- 处理异常值
-
对于非结构化数据:
-
-
- 分词
- 情感分析
- 词频统计
- 去噪
-
集成数据:
同一业务问题具有多个数据源的情况很多见。例如,需要分析同一组客户的基本信息以及交易数据。如果这些数据集包含相同的唯一标识符(如客户 ID),可以使用这个关键字段将它们合并在一起。
合并数据的基本方法有以下两种:
合并数据:涉及合并两个具有相似记录但不同属性的数据集。这些数据通过
各记录的相同关键标识符(例如客户 ID)合并。生成的数据将会增加一些列或特征。比如将会员的基本信息和交易信息合并到一张表中。
追加数据:涉及集成两个或多个具有相似属性但不同记录的数据集。数据基于相似字段(例如产品名称或合同时长)集成。比如,会员每年的交易数据都保存在单独的一张表中,现在需要把历年的数据合并到一张表中。
派生数据:
根据现有数据生成新变量的能力是一个企业中数据挖掘团队的另外一个重要的能力。例如,根据会员的交易记录生成会员的总消费额、最近一次交易间隔、交易频次等。这是项目中非常重要的环节。
优化输入
模型优化通常有三种办法:一是换更适用的模型;二是补充新的数据,将更多重要的影响因素补充进来,由于可获得数据在前期已经全部获取,这意味着要从外部获取数据,往往很难行得通,至少短时间之内很难做到,只能作为长期计划;三是基于现有的变量计算生成更多更有代表性的数据,而这种方法才是实际中最常用也最可行的方法,也是团队急需的一种能力。
优化输入主要从三个方面进行:一是清洗数据,如缺失比例较大或者与目标变量相关性很弱甚至不相关的变量;二是处理异常数据,填充缺失的数据;三是派生更多有代表性新变量。
而要完成这三方面,最常用的技术就是使用图形或者表进行可视化探索:首先,您可以使用统计节点对数据的特征进行描述,比如:
-
-
- 哪些会员消费额度过大?
- 字符型字段中名义值的个数占记录的比例是否过大?
- 字符型字段中某个名义值的记录数占比是否过多?
-
其次,通过可视化探索分析各个输入变量与目标变量的相关性。比如:
-
-
- 使用条形图探索两个字符型字段的相关性;
- 使用直方图探索一个数值型字段与一个字符字段的相关性;
- 使用散点图探索两个数值型字段的相关性。
-