1.4 能挖掘出什么
从数据中能够挖掘的模式和规律很多,我们着重讲述需要特别关注的四种模式。
第一是发现数据项之间的相关关系
例如,我们从公开渠道中获得了各城市的环境、人口、交通等数据,就可以通过相关性分析,分析人均汽车保有量与空气质量的各指标之间的关系,从而帮助有关部门制订产业经济和环保政策,如是否进行更严厉的限购,是否收取更重的尾气排放税,等等。
一家大型的连锁超市则可以通过挖掘用户的购买记录,分析哪些商品会频繁被消费者在一次购物中同时购买,从而优化商品的摆放位置,刺激消费者增加购买。
第二是将数据对象聚成不同的类别
每个对象(如手机用户)都有一组数据来描述他。如果我们能够获得大量对象的数据,那么原则上可以把数据对象分成若干组,每组的对象之间更加接近(接近、相似、相像在这里都表示“差不多”的意思,本书后面会详细介绍)。这 就是典型的聚类分析,不需要我们预先知道某种外在于数据本身的类别信息。 在通常的机器学习教材中,这类问题被称为“无监督的学习”。比如,我们可以 根据手机用户每个月平均语音时长、网络流量和付费订阅总费用这三个维度的 数据,把用户聚成若干类别,并且根据聚类的结果来设计套餐。
第三是将数据对象分成不同的类别
分类是与聚类相似但不同的问题。分类也是把数据对象分成若干类别,但是分类问题的前提是已经知道所有的类别和部分数据对象属于哪个类别,然后根据这个信息,给出一套分类的规则,从而可以给未知类别的数据对象或者将来新产生的数据对象标上类别。比如,常见的色素性皮肤病有几十类(雀斑、色素痣、贫血痣、黄褐斑、白癜风等),如果用皮肤镜给病变皮肤拍一张图像,现在已经有 10 万个病人的图像,其中 6 万个有明确的诊断结果,也就是已知疾病类别。然后我们要基于图像,利用数据挖掘或者机器学习的算法,让计算机能够自动给剩下的 4 万个病人诊断。这就是一个典型的分类问题。分类问题在机器学习教材中通常被称为“有监督的学习” 。
第四是预测缺失数据或未来的数据
在很多重要的数据集中,数据只是全部数据的一小部分,如我们通过试验获得了很多人类基因与基因之间的相互作用关系,但是估计已知的部分比未知部分要小一两个数量级。于是,一个重要的问题就是如何从已经观察到的试验数据出发,去预测缺失的数据,从而指导更高效准确的试验。另一类问题是预测未来的变化趋势和结果,如预测股票的价值、河流的径流量、城市的用电量等,还包括预测人的行为(会不会参加某项活动,会不会购买某件商品,等等),以及基于人的综合行为预测结果(借了钱会不会赖账,本学期考试会不会有不及格的科目,等等)。预测问题可以很简单,但大部分实用的场景都比较复杂,往往是数据挖掘多种方法的综合。
当然,数据挖掘的能耐不仅于此, 还可以用于检测异常、发现因果关系甚至 与人博弈——在 AlphaGo 战胜李世石的算法中,数据挖掘也做了相当的贡献[4] 。 由于本书只是介绍数据挖掘最简单和最核心的部分,因此大部分场景都是围绕上面四种模型,我们介绍的方法也是针对这些场景的最简单、基础的方法。读者如果有兴趣,可以通过进一步阅读推荐材料来了解更多场景和更高级的算法。