先说一下为什么突然想起来要了解数据挖掘技术。以笔者目前的了解,国内大多数企业管理软件都只停留在“工具化”的阶段,很少看到有像C端产品那样智能化的技术Demo。当B端产品在说“智能化”的时候,顶破天只能拿出个多维数据仓库和OLAP(联机分析处理),而能拿出这两样的企业还是少数……
也就是说,在面对企业产生的大量运营数据面前,只能停留在查证假设这一步,即根据已有数据,产出报表,验证假设。这是OLAP的作用。
仅借助OLAP,对数据的利用是远远不够的,所以就想到了数据挖掘。数据挖掘跟OLAP最大的不同是,数据挖掘是用来帮助用户产生假设的,它可以找出数据中不容易被我们发现的潜在规则,然后帮助我们预测一些事情,这是当前OLAP所做不到的。
Photo by Webaroo on Unsplash
从技术角度看,数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中提取隐含在其中的、人们事先不知道的、但又是潜在的和有用的信息和知识的过程。
因此,它又被称为数据库中的知识发现(Knowledge Discovery in Database, KDD)。
数据挖掘一般可以分为两类,描述型数据挖掘和预测型数据挖掘:
- 描述型主要用来刻画数据集合的一般特性;
- 预测型主要是根据当前数据进行分析推算,从而达到预测的目的。
具体来讲,数据挖掘的功能主要包括以下几个方面:
01 概念描述
概念描述就是通过对某类对象关联数据的汇总、分析和比较,对此类对象的内涵进行描述,并概括这类对象的有关特征。
常见的场景是性格测试。用户通过回答一组问题,系统概括出该用户的性格特征,并通过几个预先设置好的关键词展现出来;系统还可以对两组用户的回答进行对比,通过差异性分析,匹配两个人性格上的契合度。
常用的方法有两种:基于数据立方体的OLAP方法和面向属性的归纳方法。
02 关联分析
关联分析是发现一个事件和其他事件之间相互依赖或关联的知识。
最常见的场景是购物分析。该过程通过发现顾客购买不同商品之间的联系,了解哪些商品频繁地被用户同时购买,从而掌握用户的购物习惯,帮助商家制定针对性的营销策略,这也是推荐系统的基础。
关联规则的种类有 :
(1)基于规则处理的变量
关联规则处理的变量可以分为布尔型和数值型。
布尔型关联规则处理的值是离散的、种类化的,它显示了这些变量之间的关系;例如,在母亲节这天,分析某地区用户的消费记录,统计出母亲节与某类商品的关联关系。
数值型关联规则可以和多维关联或多层关联结合起来,对数值型字段进行处理;例如,在母亲节这天,分析某地区用户的消费记录,统计出母亲节与消费金额的关联关系。
(2)基于数据的抽象层次
基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。
在单层关联规则中,所有变量都没有考虑可能具有多个不同层次的现实数据;例如,用户浏览女士服装与购买Nike男鞋的关系。
多层关联规则,则对数据的多层性进行了充分考虑;例如,用户浏览Nike男鞋与购买Nike男跑鞋的关系。
(3)基于数据的维数
关联规则中的数据可以分为单维和多维。
在单维的关联规则中,只涉及数据的一个维,如用户购买的物品;
而在多维的关联规则中,要处理的数据将会涉及多个维,如购买的物品名称、购买时间、消费金额、消费频次等等。
也就是说,单维关联规则处理单个属性中的一些关系,多维关联规则处理各个属性之间的关系。
03 序列模式分析
序列模式分析和关联分析相似,其目的也是为了挖掘数据之间的联系,但序列模式分析的侧重点在于分析数据间的前后序列关系。
例如,在某一段时间内,顾客购买商品A,接着购买商品B,而后购买商品C,即序列A–C;如果在10个用户中,有8个用户都有类似的购买行为,那我们可以认为序列A–C的出现频度较高;可以针对性地对购买商品A的用户推荐商品B”
序列模式分析描述的问题是:在给定的交易序列数据库中,每个序列按照交易时间排列,构成一组交易集,挖掘序列函数作用在这个交易序列数据库上,返回该数据库中出现的高频交易集(序列)。
04 分类分析
分类分项即,通过分析,训练数据集中的数据(即标记已知的数据对象),为每个类别做出准确的描述,建立分析模型,挖掘出分类规则,然后用这个分类规则对其它数据库中的记录进行分类。
分类模式的预测值可以是离散的,比如根据某位用户的消费特征来判断他是高价值客户还是无价值客户;
也可以是连续的,比如根据某人的受教育情况和工作经验来判断这个人的工资范围。
05 聚类分析
聚类分析和分类分析是一个互逆的过程。聚类分析输入的是一组未分类记录,也就是说不必事先知道数据对象结构;通过检测多个观测指标,找出数据个案与数据个案之间相似程度的统计量,然后对数据个案进行分组;组内的相似性越大,组间的差别越大,聚类效果就越好。
基于聚类思想的异同,可以把聚类分析划分成不同的聚类类型:
(1)层次聚类和划分聚类
不同类型的聚类之间,最常讨论的是:是否允许簇具有子簇,即簇的集合是否允许嵌套。
层次聚类是嵌套簇的集簇,组织成一棵树,除叶结点外,树中每一个结点簇都是其子簇的合并,而树根是包含所有对象的簇;
划分聚类是简单的将数据对象集划分成不重叠的子簇,使得每个对象恰在一个子集中。
(2)互斥聚类、重叠聚类和模糊聚类
数据集中每个对象是否完全被指派到单个簇中是区别互斥聚类与模糊聚类的根本方法。
互斥聚类中每个对象都被指派到唯一确定的单个簇;
非互斥聚类或重叠聚类用来反映一个对象可以同时属于多个簇的事实;
模糊聚类即每个对象按照一定的隶属权值属于单个簇,隶属权值介于0与1之间,0表示绝对不属于,1表示绝对属于。
(3)完全聚类和部分聚类
是否把数据集中的每个对象都指派到一个簇中,是判断完全聚类和部分聚类的基本方法。
完全聚类是把数据集中的每个对象都指派到一个簇中:
然而,数据集中某些对象可能不属于明确定义的簇,筛选掉一些可能代表噪声、离群点的数据,而仅仅对相关度高的数据进行聚类,称为部分聚类。
基于簇类型的异同,可以把聚类分析划分成不同的聚类类型:
(4)基于原型的聚类
对象的集合为簇,簇中的每个对象到定义该簇的原型的距离都小于到其他簇的簇原型的距离。大多数情况下,簇原型被认为最接近簇中心的点。
(5)基于图的聚类
如果把数据用图的结构表示出来,那么图中的结点就是对象,边就代表了对象之间的联系。基于此,簇可以定义为连通分支,即组内对象相互连通、不与组外对象连通的对象组。基于图的聚类的一个重要应用就是基于邻近的聚类。
(6)基于密度的聚类
簇可以理解为对象的稠密区域,簇周围环绕的是低密度区域,因此基于密度的聚类能较好的降低噪声和离群点对聚类分析的干扰。在对包含明显噪声和离群点的数据进行聚类分析时,基于密度的聚类算法往往优越于基于图的聚类算法。
06 时间序列分析
时间序列分析即以时间为关键属性,由历史的和当前的数据去推测未来的数据。
时间序列分析用于描述行为随时间变化的对象的规律或趋势,并对其建模。时间序列分析的实现方法有经典的统计方法、神经网络方法和机器学习方法等。
07 偏差检测
偏差检测是对差异和极端特例(也叫孤立点)进行检测和分析,揭示了事物偏离常规的异常现象。
08 复杂类型的数据挖掘
通常的数据挖掘方法多用于对以结构化数据为主的关系数据库、事务数据库、数据仓库进行挖掘。
而随着数据处理工具、先进数据库系统以及互联网技术的发展,大量的形式各异的复杂类型的数据不断涌现,如复杂对象、空间数据、多媒体数据、文本数据和Web数据等。因此,复杂类型的数据挖掘是当前数据挖掘技术的一个重要研究领域。
信息挖掘最常见的研究分支是文本挖掘。文本挖掘是利用智能算法,如神经网络、基于案例的推理、可能性推理等,结合文字处理技术,分析大量的非结构化文本源,如文档、电子表格、客户电子邮件、问题查询、网页等。
本文为@运营喵原创,运营喵专栏作者。