数据挖掘
上世纪80年代末到90年代初,流行的一句话:我们沉浸在数据的海洋里,却渴望这知识的淡水。这句话生动地描述了当时人们对海量数据的迷茫和无奈,就在这时,商业巨头沃尔玛演绎了一场“啤酒与尿布的故事”揭示了隐藏在海量数据中美国人的一个行为规律:年轻父亲给孩子买尿布时会随手买一瓶啤酒。于是调整商品布局,并策划促销价格,结果销量大增。这一现象引起了科学界的重视,他们将此引申为“关联规则获取”,进而讲“从大量的,不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又潜在的信息和知识的过程”定义为“数据挖掘”。
1、揭开数据挖掘的面纱
派克汉尼汾公司是一流的工业企业,年销售额超过100亿美元,年维修费用非常高。他们通过数据分析机器各个零件之间的寿命关系,发现昂贵零件的寿命是和少数几种便宜零件的磨损有关的,他们通过及时替换便宜部件来达到延长昂贵部件寿命的目的,大大节约了费用。
2006年世界杯,1/4决赛德国对阿根廷,德国门将莱曼所有点球都判断对了方向,扑出了3个点球,阿根廷黯然出局。关键是点球大战前,卡恩给莱曼的纸条,上面记录了阿根廷队队员习惯的脚法,这些数据来自于德国科隆体育学院数据分析小组夜以继日的努力。
2、数据挖掘能干什么
关联规则挖掘:挖掘两个或多个事件之间的关系。最经典的算法是Apriori算法,其基本思想是:首先从事件中集中收集所有频繁出现的事件子集,然后在这些子集中发现可信度较高的规则。
聚类:将数据对象划分为几类,类间距离最大,类内距离最小(对象差异较小)。聚类算法包括划分方法和层次聚类方法,两类的典型代表是K-Means、K-Medoids和聚集、分裂算法。
k-means流程
k-means的难点是找到最适合的聚类个数k,一般要用若干个k去实验,那个k最后的距离平方和最小,则认为那个k最佳。
k-means用聚类点的均值作为新的聚类中心,如果以各聚类均值点最近的点为聚类中心,其他步骤不变,则变成了k-medoids算法。
另外k-means应用的局限就是对象的距离是可以计算的,有些离散属性的数据是没有均值科研的,比如A=(北邮,本科)B=(吉大,博士),就需要重新定义距离了,于是改进得到了k-模算法;进而将k-means和k-模算法结合,用来处理数值类型和分类类型的数据,就产生了k-原型算法。
其次,k-means算法不适合发现非球状的簇,原因是这类算法使用距离来描述数据之间的相似度;对于非球状数据集,要使用密度来代替相似性设计聚类算法,这就是基于密度的聚类算法Density-based Method。基于密度的算法从数据对象的分布密度出发,把密度足够大的区域连接起来,从而发现任意形状的簇,而且此类算法还能有效地消除噪声,常见的基于密度的聚类算法有DBSCAN、OPTICS、DENCLUE等。
层次聚类算法按照数据分层建立簇,形成一棵以簇为节点的树,如果自底向上称为聚集,自顶向下称为分裂法。聚集:把每个对象看做一个簇,然后逐渐合并这些簇形成较大的簇,知道所有的对象都在一个簇中,或者满足某一终止条件;分裂:把所有对象置于一个簇中,然后逐渐划分越来越小的簇,直到每个对象自成一簇,或者达到某个终止条件,例如达到了希望的簇数或者最近簇的聚类超过了一定的阈值。
层析方法可以在不同的粒度水平对数据进行探测,而且容易实现相似度量或距离度量。但是缺点是终止条件含糊,合并和分裂的操作不可修正,这可能导致聚类结果质量很差,另外,由于需要检查和估算大量的操作才能决定簇的分裂和合并,所以这种方法的扩展性很低。因此通常将其和其他聚类方法结合起来形成多阶段聚类来改善聚类质量,包括BIRCH、CURE、ROCK、Chameleon等。
3、预测
数据挖掘预测是通过对反应了事物输入和输出之间的关联性的学习,得到预测模型,再利用该模型对未来数据进行预测的过程。
数据建模是基于数据建立数学模型的过程,它是相对于基于物理、化学或其他专业基本原理建立数学模型而言的(机理建模)。对于预测问题,如果所研究的对象有明晰的机理,可对其建立数学模型,这当然是最好的选择。但是我们经常会遇到很多复杂的实际问题,不适合用某种机理来描述,从而无法以某种机理来描述,但是如果累计足够的历史数据,这时数据模型就大显身手了。
决策树方法:是一种类似流程图的树型结构,数的最高层节点是根节点,数的每一内部节点代表对一个属性的测试,其分支代表测试的每个结果,数的页节点表示一个类别。从根节点到叶子节点的每条路径构成了一条IF...THEN...分类规则。
应用很广泛,常用的有ID3、C4.5。步骤
ID3的核心思想是:采取基于信息增益的特征选择策略,即选取具有最高信息增益的属性作为当前节点的分裂属性,从而保证了决策树具有最小的分支数量和最小的冗余度。缺点是:不能回溯从新考虑选择过的属性,从而收敛到局部最优解;信息增益的度量偏袒于取值数目较多的属性;不能处理连续属性;训练样本小或包含噪声时,容易产生多拟合现象。
C4.5算法对ID3做了相应修正:用信息增益比率作为选择标准;合并连续属性的值;运用剪枝技术来避免过拟合;K次交叉验证等。剪枝包括:预剪枝和后剪枝两种,预剪枝是事先建立某些规则来限制决策树的生长,后剪枝是决策树充分生长后再减去那些不具有代表性的分支。尽管前种方法更直接,但实践中后者效果更好。
人工神经网络:通过建立适当的网络结构,根据大量数据训练得到各层之间的传递参数,神经网络也具有较强的稳定性和容错性。
支撑向量机:SVM分类问题,建立在计算学习理论的结构化风险最小化原则之上,具有良好的泛化能力,且适宜于小样本学习。后来根据向量机模型又扩展出SVR用于解决回归问题。具体可参见SVM系列教程
正则化方法:神经网络的缺点是网络拓扑结构的确定没有成熟的理论指导,训练代价高,建立的模型难以映射到实际理论等。支撑向量机的缺点是SVM的实质是求解一个凸二次优化问题,理论上是存在全局最优解的,但对于大规模数据,效率很低且存在大量冗余支撑向量,更令人愁苦的是参数没有好的选择策略。基于这些问题,人们提出了不少满足不同性能要求的基于正则化的框架模型,有Lasso和推广的Lasso模型、L1/2正则化模型等。
PS:时间序列预测和回归的功能类似,只是时间序列是用历史数据来预测未来数值,是一种特殊的自回归。
4、跨行业数据挖掘标准流程Cross Industry Standard Process for Data Mining,CRISP-DM。
它包括业务理解、数据理解及收集、数据准备、数据建模、数据评估和部署六个阶段。
(1)业务理解
主要任务是深刻理解业务需求,在此基础上制定数据挖掘的目标和初步计划。
(2)数据理解及收集
收集数据、熟悉数据,探索引起兴趣的子集。
(3)数据准备
从收集的数据集中选择必要的属性,并按照关联关系将它们连接成一个数据集;然后进行数据清洗,即空值异常值处理、离群值剔除、数据标准化等。
(4)数据建模
选择应用不同的数据挖掘技术,确定模型最终的参数。如果初步分析发现模型的效果不太满意,需要再跳回到数据准备阶段,甚至数据理解阶段。
(5)模型评估
对所建立的模型进行可靠性评估和合理性解释。
(6)部署阶段
根据评估后认为合理的模型,制定将其应用于实际工作的策略,形成应用部署报告。
PS:web数据挖掘概述
分为三类:Web内容挖掘,是从文档内容或其描述中抽取信息;Web链接结构挖掘;Web使用模式挖掘,从访问记录中抽取感兴趣的模式。垂直搜索用户行为侧重于Web链接结构和使用模式挖掘,面向电子商务和社交网络方面则侧重于Web内容挖掘和模式挖掘。
今天看了《大话数据挖掘》一书,看网评说这本书有点虚,看完果然有同感...编者还是院士。基本内容都在前两章,除去招摇的书名剩下的东西,整理了下也就上面这三千多字了。