数据挖掘(数据挖掘算法)

本篇文章给大家谈谈数据挖掘,以及数据挖掘算法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

什么是数据挖掘?

数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程。

数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。

数据挖掘是数据库中知识发现(knowledge discovery in database, KDD)不可缺少的一部分,而KDD是将未加工的数据转换为有用信息的整个过程,该过程包括一系列转换步骤, 从数据的预处理到数据挖掘结果的后处理。

数据挖掘的起源

来自不同学科的研究者汇集到一起,开始着手开发可以处理不同数据 类型的更有效的、可伸缩的工具。这些工作都是建立在研究者先前使用的方法学和算法之上,而在数据挖掘领域达到高潮。

特别地,数据挖掘利用了来自如下一些领域的思想:(1)来自统计学的抽样、估计和假设检验;(2)人工智能、模式识别和机器学习的搜索算法建模技术和学习理论。

数据挖掘也迅速地接纳了来自其他领域的思想,这些领域包括最优化、进化计算、信息论、信号处理、可视化和信息检索。

一些其他领域也起到重要的支撑作用。数据库系统提供有效的存储、索引和查询处理支持。源于高性能(并行)计算的技术在处理海量数据集方面常常是重要的。分布式技术也能帮助处理海量数据,并且当数据不能集中到一起处理时更是至关重要。

KDD(Knowledge Discovery from Database)

数据清理

消除噪声和不一致的数据;

数据集成

多种数据源可以组合在一起;

数据选择

从数据库中提取与分析任务相关的数据;

数据变换

通过汇总或聚集操作,把数据变换和统一成适合挖掘的形式;

数据挖掘

基本步骤,使用智能方法提取数据模式;

模式评估

根据某种兴趣度,识别代表知识的真正有趣的模式;

知识表示

使用可视化和知识表示技术,向用户提供挖掘的知识。

数据挖掘方法论

业务理解(business understanding)

从商业角度理解项目的目标和要求,接着把这些理解知识通过理论分析转化为数据挖掘可操作的问题,制定实现目标的初步规划;

数据理解(data understanding)

数据理解阶段开始于原始数据的收集,然后是熟悉数据、甄别数据质量问题、探索对数据的初步理解、发觉令人感兴趣的子集以形成对探索信息的假设;

数据准备(data preparation)

数据准备阶段指从最初原含皮始数据中未加工的数据构造数据挖掘所需信息的活动。数据准备任务可能弊茄被实施多次,而且没有任何规定的顺序。这些任务的主要目的是从源系统根据维度分析的要求,获取所需要的信息,需要对数据进行转换、清洗、构造、整合等数据预处理工作;

建模(modeling)

在此阶段,主要是选择和应用各种建模技术。同时对它们的参数进行调优,以达到最优值。通常对同一个数据挖掘问题类型,会有多种建模技术。一些技术对数据形式有特殊的要求,常常需要重新返回到数据准备阶段;

模型评估(evaluation)

在模型部署发布前,需要从技术层面判断模型效果和检查建立模型的各个步骤,以及根据商业目标评估模型在实际商业场景中的实用性。此阶段关键目的是判断是否存在一些重要的商业问题仍未得到充分考虑;

模型部署(deployment)

模型完成后,由模型使用者(客户)根据当时背景和目标完成情况,封装满足业务系统使用需求。

数据挖掘任务

通常,数据挖掘任务分为下面两大类。

预测任务。这些任务的目标是根据其他属性的值,预测特定属性的值。被预测的属性一 般称目标变量(targetvariable)或因变量(dependentvariable), 而用来做预测的属性称说明变量(explanatoryvariable)或自变量(independentvariable)。

描述任务。其目标是导出概括数据中潜在联系的模式(相关、趋势、聚类、轨迹和异常)。本质上,描述性数据挖掘任务通常是探查性的,并且常常需谈卜差要后处理技术验证和解释结果。

预测建模(predictivemodeling) 涉及以说明变量函数的方式为目标变量建立模型。

有两类预测建模任务:分类(classification),用于预测离散的目标变量;回归(regression),用于预测连续的目标变量。

例如,预测一个Web用户是否会在网上书店买书是分类任务,因为该目标变量是二值的,而预测某股票的未来价格则是回归任务,因为价格具有连续值属性。

两项任务目标都是训练一个模型,使目标变量预测值与实际值之间的误差达到最小。预测建模可以用来确定顾客对产品促销活动的反应,预测地球生态系统的扰动,或根据检查结果判断病人是否患有某种疾病。

关联分析(association analysis) 用来发现描述数据中强关联特征的模式。

所发现的模式通常用蕴涵规则或特征子集的形式表示。由于搜索空间是指数规模的,关联分析的目标是以有效的方式提取最有趣的模式。关联分析的应用包括找出具有相关功能的基因组、识别用户一起访问的Web页面、 理解地球气候系统不同元素之间的联系等。

聚类分析(cluster analysis)旨在发现紧密相关的观测值组群,使得与属于不同簇的观测值相比, 属于同一簇的观测值相互之间尽可能类似。聚类可用来对相关的顾客分组、找出显著影响 地球气候的海洋区域以及压缩数据等。

异常检测(anomaly detection) 的任务是识别其特征显著不同于其他数据的观测值。

这样的观测值称为异常点(anomaly)或离群点(outlier)。异常检测算法的目标是发现真正的异常点,而避免错误地将正常的对象标注为异常点换言之,一个好的异常检测器必须具有高检测率和低误报率。

异常检测的应用包括检测欺诈、网络攻击、疾病的不寻常模式、生态系统扰动等。

数据挖掘是什么?

数据挖芹悉掘(Data Mining)是指通过大量数据集进行分类的自动化过程,以通过数据分析来识别趋势和模式,建立关系来解决业务问题。换句话说,数据挖掘是从大量的、不完全的、有噪声的、模糊的、隐首伍随机的数据中提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。

通常我们把信息转化为价值,要经历信息、数据、知识、价灶或值四个层面,数据挖掘就是中间的重要环节,是从数据中发现知识的过程。

数据挖掘的主要步骤有哪些?

(1)信息收集:根据确定的数据分析对象抽象出在数据分析中所需要的特征信息,然后选择合适的信息收集方法,将收集到的信息存入数据库。对于海量数据,选择一个合适的数据存储和管理的数据仓库是至关重要的。

(2)数据集成:把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。

(3)数据规约:执行多数的数据挖掘算法即使在少量数据上也需要很长的时间,而做商

业运营数据挖掘时往往数据量非常大。数据规约技术可以用来得到数据集的规约表示,它小得多,但仍然接近于保持原数据的完整性,并且规约后执行数据挖掘结果与规约前执行结果相同或几乎相同。

(4)数据清理:在数据库中的数据有一些是不完整罩坦丛的(有些感兴趣的属性缺少属性值),含噪声的(包含错误的属性值),并且是不一致的(同样的信息不同的表示方式),因此需要进行数据清理,将完整、正确、一致的数据信息存入数据仓物樱库中。不然,挖掘的结果会差强人意。

(5)数据变换:通过平滑聚集,数据概化,规范化等方式将数据转换成适用于数据挖掘的形式。对于有些实数型数据,通过概念分层和数据的离散化来转换数据也是重要的。

(6)数据挖掘过程:根据数据仓库中的数据信息,选择合适的分析工具,应用统计方法、事例推理、决策树、规则推理、模糊集信御、甚至神经网络、遗传算法的方法处理信息,得出有用的分析信息。

(7)模式评估:从商业角度,由行业专家来验证数据挖掘结果的正确性。

(8)知识表示:将数据挖掘所得到的分析信息以可视化的方式呈现给用户,或作为新的知识存放在知识库中,供其他应用程序使用。

数据挖掘十大算法-

整理里一晚上的数据挖掘算法,其中主要引自wiki和一些论坛。发布到上作为知识共享,但是发现Latex的公式转码到网页的时候出现了丢失,暂时没找到解决方法,有空再回来填坑了。

——编者按

一、 C4.5

C4.5算法是埋顷由Ross Quinlan开发的用于产生决策树的算法[1],该算法是对Ross Quinlan之前开发的ID3算法的一个扩展。C4.5算法主要应用于统计分类中,主要是通过分析数据的信息熵建立孝液闹和修剪决策树。

1.1 决策树的建立规则

在树的每个节点处,C4.5选择最有效地方式对样本集进行分裂,分裂规则是分析所有属性的归一化的信息增益率,选择其中增益率最高的属性作为分裂依据,然后在各个分裂出的子集上进行递归操作。

依据属性A对数据集D进行分类的信息熵可以定义如下:

划分前后的信息增益可以表示为:

那么,归一化的信息增益率可以表示为:

1.2 决策树的修剪方法

C4.5采用的剪枝方法是悲观剪枝法(Pessimistic Error Pruning,PEP),根据样本集计算子树与叶子的经验错误率,在满足替换标准时,使用叶子节点替换子树。

不妨用K表示训练数据集D中分类到某一个叶子节点的样本数,其中其中错误分类的个数为J,由于用估计该节点的样本错误率存在一定的样本误差,因此用表示修正后的样本错误率。那么,对于决策树的一个子树S而言,设其叶子数目为L(S),则子树S的错误分类数为:

设数据集的样本总数为Num,则标准错误可以表示为:

那么,用表示新叶子的错误分类数,则选择使用新叶子节点替换子树S的判据可以表示为:

二、KNN

最近邻域算法(k-nearest neighbor classification, KNN)[2]是一种用于分类和回归的非参数统计方法巧罩。KNN算法采用向量空间模型来分类,主要思路是相同类别的案例彼此之间的相似度高,从而可以借由计算未知样本与已知类别案例之间的相似度,来实现分类目标。KNN是一种基于局部近似和的实例的学习方法,是目前最简单的机器学习算法之一。

在分类问题中,KNN的输出是一个分类族群,它的对象的分类是由其邻居的“多数表决”确定的,k个最近邻居(k为正整数,通常较小)中最常见的分类决定了赋予该对象的类别。若k = 1,则该对象的类别直接由最近的一个节点赋予。在回归问题中,KNN的输出是其周围k个邻居的平均值。无论是分类还是回归,衡量邻居的权重都非常重要,目标是要使较近邻居的权重比较远邻居的权重大,例如,一种常见的加权方案是给每个邻居权重赋值为1/d,其中d是到邻居的距离。这也就自然地导致了KNN算法对于数据的局部结构过于敏感。

三、Naive Bayes

在机器学习的众多分类模型中,应用最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBC)[3]。朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。

在假设各个属性相互独立的条件下,NBC模型的分类公式可以简单地表示为:

但是实际上问题模型的属性之间往往是非独立的,这给NBC模型的分类准确度带来了一定影响。在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型;而在属性相关性较小时,NBC模型的性能最为良好。

四、CART

CART算法(Classification And Regression Tree)[4]是一种二分递归的决策树,把当前样本划分为两个子样本,使得生成的每个非叶子结点都有两个分支,因此CART算法生成的决策树是结构简洁的二叉树。由于CART算法构成的是一个二叉树,它在每一步的决策时只能是“是”或者“否”,即使一个feature有多个取值,也是把数据分为两部分。在CART算法中主要分为两个步骤:将样本递归划分进行建树过程;用验证数据进行剪枝。

五、K-means

k-平均算法(k-means clustering)[5]是源于信号处理中的一种向量量化方法,现在则更多地作为一种聚类分析方法流行于数据挖掘领域。k-means的聚类目标是:把n个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类。

5.1 k-means的初始化方法

通常使用的初始化方法有Forgy和随机划分(Random Partition)方法。Forgy方法随机地从数据集中选择k个观测作为初始的均值点;而随机划分方法则随机地为每一观测指定聚类,然后执行“更新”步骤,即计算随机分配的各聚类的图心,作为初始的均值点。Forgy方法易于使得初始均值点散开,随机划分方法则把均值点都放到靠近数据集中心的地方;随机划分方法一般更适用于k-调和均值和模糊k-均值算法。对于期望-最大化(EM)算法和标准k-means算法,Forgy方法作为初始化方法的表现会更好一些。

5.2 k-means的标准算法

k-means的标准算法主要包括分配(Assignment)和更新(Update),在初始化得出k个均值点后,算法将会在这两个步骤中交替执行。

分配(Assignment):将每个观测分配到聚类中,使得组内平方和达到最小。

更新(Update):对于上一步得到的每一个聚类,以聚类中观测值的图心,作为新的均值点。

六、Apriori

Apriori算法[6]是一种最有影响的挖掘布尔关联规则频繁项集的算法,其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。Apriori采用自底向上的处理方法,每次只扩展一个对象加入候选集,并且使用数据集对候选集进行检验,当不再产生匹配条件的扩展对象时,算法终止。

Apriori的缺点在于生成候选集的过程中,算法总是尝试扫描整个数据集并尽可能多地添加扩展对象,导致计算效率较低;其本质上采用的是宽度优先的遍历方式,理论上需要遍历次才可以确定任意的最大子集S。

七、SVM

支持向量机(Support Vector Machine, SVM)[7]是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

除了进行线性分类之外,SVM还可以使用所谓的核技巧有效地进行非线性分类,将其输入隐式映射到高维特征空间中,即支持向量机在高维或无限维空间中构造超平面或超平面集合,用于分类、回归或其他任务。直观来说,分类边界距离最近的训练数据点越远越好,因为这样可以缩小分类器的泛化误差。

八、EM

最大期望算法(Expectation–Maximization Algorithm, EM)[7]是从概率模型中寻找参数最大似然估计的一种算法。其中概率模型依赖于无法观测的隐性变量。最大期望算法经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

九、PageRank

PageRank算法设计初衷是根据网站的外部链接和内部链接的数量和质量对网站的价值进行衡量。PageRank将每个到网页的链接作为对该页面的一次投票,被链接的越多,就意味着被其他网站投票越多。

算法假设上网者将会不断点网页上的链接,当遇到了一个没有任何链接出页面的网页,这时候上网者会随机转到另外的网页开始浏览。设置在任意时刻,用户到达某页面后并继续向后浏览的概率,该数值是根据上网者使用浏览器书签的平均频率估算而得。PageRank值可以表示为:

其中,是被研究的页面集合,N表示页面总数,是链接入页面的集合,是从页面链接处的集合。

PageRank算法的主要缺点是的主要缺点是旧的页面等级会比新页面高。因为即使是非常好的新页面也不会有很多外链,除非它是某个站点的子站点。

十、AdaBoost

AdaBoost方法[10]是一种迭代算法,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率。每一个训练样本都被赋予一个权重,表明它被某个分类器选入训练集的概率。如果某个样本点已经被准确地分类,那么在构造下一个训练集中,它被选中的概率就被降低;相反,如果某个样本点没有被准确地分类,那么它的权重就得到提高。通过这样的方式,AdaBoost方法能“聚焦于”那些较难分的样本上。在具体实现上,最初令每个样本的权重都相等,对于第k次迭代操作,我们就根据这些权重来选取样本点,进而训练分类器Ck。然后就根据这个分类器,来提高被它分错的的样本的权重,并降低被正确分类的样本权重。然后,权重更新过的样本集被用于训练下一个分类器Ck[,并且如此迭代地进行下去。

AdaBoost方法的自适应在于:前一个分类器分错的样本会被用来训练下一个分类器。AdaBoost方法对于噪声数据和异常数据很敏感。但在一些问题中,AdaBoost方法相对于大多数其它学习算法而言,不会很容易出现过拟合现象。AdaBoost方法中使用的分类器可能很弱(比如出现很大错误率),但只要它的分类效果比随机好一点(比如两类问题分类错误率略小于0.5),就能够改善最终得到的模型。而错误率高于随机分类器的弱分类器也是有用的,因为在最终得到的多个分类器的线性组合中,可以给它们赋予负系数,同样也能提升分类效果。

引用

[1] Quinlan, J. R. C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers, 1993.

[2] Altman, N. S. An introduction to kernel and nearest-neighbor nonparametric regression. The American Statistician. 1992, 46 (3): 175–185. doi:10.1080/00031305.1992.10475879

[3] Webb, G. I.; Boughton, J.; Wang, Z. Not So Naive Bayes: Aggregating One-Dependence Estimators. Machine Learning (Springer). 2005, 58 (1): 5–24. doi:10.1007/s10994-005-4258-6

[4] decisiontrees.net Interactive Tutorial

[5] Hamerly, G. and Elkan, C. Alternatives to the k-means algorithm that find better clusterings (PDF). Proceedings of the eleventh international conference on Information and knowledge management (CIKM). 2002

[6] Rakesh Agrawal and Ramakrishnan Srikant. Fast algorithms for mining association rules in large databases. Proceedings of the 20th International Conference on Very Large Data Bases, VLDB, pages 487-499, Santiago, Chile, September 1994.

[7] Cortes, C.; Vapnik, V. Support-vector networks. Machine Learning. 1995, 20 (3): 273–297. doi:10.1007/BF00994018

[8] Arthur Dempster, Nan Laird, and Donald Rubin. "Maximum likelihood from incomplete data via the EM algorithm". Journal of the Royal Statistical Society, Series B, 39 (1):1–38, 1977

[9] Susan Moskwa. PageRank Distribution Removed From WMT. [October 16, 2009]

[10] Freund, Yoav; Schapire, Robert E. A Decision-Theoretic Generalization of on-Line Learning and an Application to Boosting. 1995. CiteSeerX: 10.1.1.56.9855

[img]

什么是数据挖掘

数据挖掘就是从大量的数据中,提取隐藏在其中的,事先不知道的、但潜在有用的信息的过程。数据挖掘的目标雹没是建立一个决策模型,根据过去的行动数据来预测未来的行为。比如分析一家公司的不同用户对公司产品的购买情况,进而分析出哪一类客户源槐纳会对公司的产品有兴趣。在讲究实时、竞争激烈的网络时代,若能事先破解消费者的行为模式,将是公司获利的关键因素之一。数据挖掘是一门交叉学科,它涉及了数据库,人工智能,统计学,可视化等不同的学科和领域。

数据挖掘是数据库中知识发现不明姿可缺少的一部分,而KDD是将未加工的数据转换为有用信息的整个过程,该过程包括一系列转换步骤, 从数据的预处理到数据挖掘结果的后处理。

什么是数据挖掘?

数据挖掘又译戚凳穗为资料探勘、数据采矿。是一种透过数理模式来分析企业内储存的大量资料,以找出不同的客户或市场划分,分析出消费者喜好和行为的方法,它是数据库知识发现中的一个步骤。

数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性的信息的过程。主要有数据准备、规律寻找和规律表示3个步骤。数据挖掘高卜的任务有关联分析、聚类分析、分类分析、异常分析、特异群组分析和演变分析等。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习粗搏、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。

关于数据挖掘和数据挖掘算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表