Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

数据挖掘

数据挖掘(英语:data mining)是一个跨学科的计算机科学分支 它是用人工智能、机器学习、统计学和数据库的交叉方法在相對較大型的数据集中发现模式的计算过程。 数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。

来源:维基百科
简介

数据挖掘作为一个真正的跨学科主题,可以用许多不同的方式来定义,即使是数据挖掘这个术语也不能详尽的呈现这个过程中所涉及到的主要步骤。它是用人工智能、机器学习、统计学和数据库的交叉方法在相对较大型的数据集中发现模式的计算过程。数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。数据挖掘实际上应该更加适当地命名为“从数据中挖掘知识”,因为目标是从大量数据中提取模式和知识,而不是(挖掘)数据本身。另外,许多其他术语与数据挖掘具有相似的含义-例如,从数据中挖掘知识(knowledge mining from data),知识提取(knowledge extraction),数据/模式分析(data/pattern analysis),数据考古(data archaeology)和数据挖掘(data dredging)。

许多人将数据挖掘视为另一个常用术语——数据知识发现(knowledge discovery from data,KDD)——的同义词,而另一些人则认为数据挖掘仅仅是知识发现过程中的一个重要步骤。知识发现过程一般被分类为以下步骤:

1.数据清理(Data cleaning):去除噪音和不一致的数据;

2.数据集成(Data integration):可以将多个数据源组合在一起

3.数据选择(Data selection):从数据库中检索与分析任务相关的数据

4.数据转换(Data transformation):通过执行汇总或汇总操作将数据转换并合并为适合数据挖掘的格式

5.数据挖掘(Data mining):一种应用智能方法提取数据模式的重要过程

6.模式评估(Pattern evaluation)根据兴趣度量来确定代表知识的真正感兴趣的模式

7.知识表示(Knowledge presentation):使用可视化和知识表示技术向用户展示所获取的知识

在数据挖掘仅显示为知识发现过程中的一个步骤——尽管它是一个关键步骤,因为它揭示了隐藏的评估模式。然而,在工业界,媒体和研究环境中,术语数据挖掘通常用于指整个知识发现过程,尽管这有时会带来一些歧义在这里我们采用广义的数据挖掘功能:数据挖掘是从大量数据中发现感兴趣的模式和知识的过程。数据源可以包括数据库,数据仓库,Web,其他信息存储库或动态流入系统的数据。

数据挖掘涉及的常见的任务有:

  • 数据表征(Data characterization)-是对目标类数据的一般特征或特征的总结。对应于用户指定类的数据通常通过数据库查询收集。例如,要研究上一年销售额增长10%的软件产品的特征,可以通过执行SQL查询来收集与此类产品相关的数据。
  • 异常检测(Outlier Analysis)–数据库可能包含不符合数据一般行为或模型的数据对象,这些数据对象即被成为异常值。大多数数据挖掘方法将异常值视为噪声或异常。但是,在诸如欺诈检测等应用中,罕见事件可能比更常见的事件更有价值。异常值数据的分析被称为异常值挖掘。
  • 关联规则学习(Mining Frequent Patterns, Associations, and Correlations)–搜索变量之间的关系。例如,一个超市可能会收集顾客购买习惯的数据。运用关联规则学习,超市可以确定哪些产品经常一起买,并利用这些信息帮助营销。这有时被称为市场购物篮分析。
  • 聚类–是在未知数据的结构下,发现数据的类别与结构。聚类算法基于最大化类内相似性和最小化类间相似性的原则对对象进行聚类或分组。也就是说,形成对象集群,使得集群内的对象彼此之间具有较高的相似性,但与其他集群中的对象非常不相似。每个形成的集群都可以被视为一类对象,从中可以派生出规则。聚类还可以促进分类的形成,也就是将观察组织成一个将类似事件归类在一起的类的层次结构。
  • 分类–分类是查找描述和区分数据类别或概念的模型(或函数)的过程,目的是为了能够使用模型来预测类别标签未知的对象的类别。例如,一个电子邮件程序可能试图将一个电子邮件分类为“合法的”或“垃圾邮件”。
  • 回归–试图找到能够以最小误差对该数据建模的函数。回归分析是最常用于数字预测的统计方法,但也存在其他方法。预测还可以根据现有数据确定趋势。
  • 数据演化分析(Data evolution analysis)-描述并建模其行为随时间变化的对象的规则或趋势。虽然这可能包括时间相关数据的表征,区分,关联和相关分析,分类,预测或聚类,但这种分析的明显特征包括时间序列数据分析,序列或周期性模式匹配以及基于相似性的数据分析。

[描述来源:Han J.; Kamber M.; Pei J. (2011). Data mining: concepts and techniques. Morgan Kaufman.]

数据挖掘的方法包括监督式学习、非监督式学习、半监督学习、增强学习。监督式学习包括:分类、估计、预测等。非监督式学习包括:聚类,关联规则分析等。

举例来说,零售公司往往会跟踪客户的购买情况,假如其发现某个客户购买了大量的真丝衬衣,这时数据挖掘系统就在此客户和真丝衬衣之间创建关系。销售部门就会看到此信息,直接发送真丝衬衣的当前行情,以及所有关于真丝衬衫的资料发给该客户。这样零售商店通过数据挖掘系统就发现了以前未知的关于客户的新信息,并且扩大经营范围。

[描述来源:维基百科URL:https://en.wikipedia.org/wiki/Data_mining]

发展历史

描述

术语”数据挖掘”于1990年左右出现在数据库社区,Gregory Piatetsky-Shapiro在KDD-1989会议中创造了术语“数据库中的知识发现”(KDD),该术语在AI和机器学习社区更受欢迎,而“数据挖掘”这个术语则在商业和新闻界更受欢迎。目前,在大部分情况下术语“数据挖掘”和“知识发现”可以互换使用。而具体到在数据挖掘中使用的算法,其中不少可以追溯到更早的历史,这是由于数据挖掘作为一个十分广义的术语,其使用的算法往往与一些其他研究领域高度重叠。

IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法,包括C4.5,CART树,K-means算法,KNN算法,朴素贝叶斯,关联规则算法,AdaBoost算法,支持向量机,EM算法,PageRank算法。

我们将简单介绍这些算法的起源:

1993年Quinlan提出的C4.5,是数据挖掘中最简单常用的决策树算法之一。其他的决策树算法还有CART,由Breiman于1984年提出,它是一种基于树的分类和预测方法,模型使用简单,易于理解(规则解释起来更简明易)。

类似的还有K-means算法,它最初在1955年由Steinhaus提出,在众多不同的科学邻域被发现。时至今日,K-means仍然是最受欢迎和最简单的聚类算法之一,被广泛使用。当然,经过多年的研究与发展,目前我们所使用的K-means算法已经有了许多变体。

1967年,Cover和Hart提出KNN算法,这是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。

朴素贝叶斯(naive Bayes)的起源则更难以界定一些,我们只能确定朴素贝叶斯分类器是一种基于贝叶斯定理的简单概率分类器家族的一员,而贝叶斯定理Bayes’ theorem是以Thomas Bayes(1701-1761)命名的,他研究了如何计算二项分布的概率参数的分布。

朴素贝叶斯分类器特点是具有强(朴素)的独立假设,在2004年,Zhang, Harry对贝叶斯分类问题的分析了朴素贝叶斯分类器能够取得难以置信的有效性的理论原因。

2006年,Caruana, R.; Niculescu-Mizil, A.将朴素贝叶斯与其他分类算法的综合比较表明,贝叶斯分类的表现优于其他方法,如boosted trees或随机森林。

关联规则算法(apriori)是最有影响的挖掘布尔关联规则频繁项集的算法之一,它由R. Agrawal和R. Srikant于1994年首次提出,简单、易理解、对数据的要求低,常常用于市场篮分析等领域。该过程通过对交易资料库中的纪录进行资料挖掘,这种关联的发现可以帮助零售商了解哪些商品频繁的被顾客同时购买,从而帮助他们开发更好的营销策略。

由Freund和Schapire于1995年提出的AdaBoost算法是最优秀的Boosting算法之一,它能够将比随机猜测略好的弱分类器(weak learner)提升为分类精度高的强分类器(strong learner)。同时期的算法还有S.Brin和L.Page提出的PageRank(1998年),一种用于客观地对网页进行评级的方法,可有效衡量人类对其的兴趣和关注,这也是Google算法的重要内容。另外两个重要的算法则是SVM和EM算法。

主要事件

年份

事件

相关论文/Reference

1955

K-means算法的雏形由Steinhaus被提出

Steinhaus, H. (1956). Sur la division des corps matériels en parties. Bull.acad.polon.sci.cl.iii, 801-804.

1967

Cover和Hart提出了KNN算法

Cover T. ; Hart P. (1967). Nearest neighbor pattern classification. IEEE Transactions on Information Theory. 1(13): 21 - 27.

1977

Dempster等人提出EM算法

Dempster, A. P., Laird, N. M., & Rubin, D. B. (1977). Maximum likelihood from incomplete data via the EM algorithm. Journal of the royal statistical society. Series B (methodological), 1-38.

1984

Breiman提出CART方法

Breiman, L., Friedman, J. H., Olshen, R., & Stone, C. J. (1984). Classification and regression trees. Encyclopedia of Ecology, 40(3), 582-588.

1993

Quinlan开发出C4.5算法

Quinlan, J. R. (1993). C4.5: Programs for machine learning. San Francisco,CA: Morgan Kaufman.

1994

R. Agrawal和R. Srikant提出了Apriori算法

Agrawal, R., & Srikant, R. (1994). Fast Algorithms for Mining Association Rules in Large Databases. very large data bases,, 487-499.

1995

Freund和Schapire的论文提出AdaBoost,并将其推广至多元分类情况

Freund, Y., & Schapire, R. E. (1995, March). A desicion-theoretic generalization of on-line learning and an application to boosting. In European conference on computational learning theory (pp. 23-37). Springer, Berlin, Heidelberg.

1995

Cortes, C., & Vapnik, V.提出标准的SVM with Soft margin

Cortes, C., & Vapnik, V. (1995). Support-vector networks. Machine learning, 20(3), 273-297.

1998

S.Brin和L.Page提出PageRank算法

Page, L. (1998). The pagerank citation ranking : bringing order to the web. Stanford Digital Libraries Working Paper, 9(1), 1-14.

2004

Zhang对朴素贝叶斯的最优性进行分析

Zhang, H. (2004). The optimality of naive Bayes. AA, 1(2), 3.

2006

Caruana, R., & Niculescu-Mizil, A.对当时的监督式学习算法进行比较

Caruana, R., & Niculescu-Mizil, A. (2006, June). An empirical comparison of supervised learning algorithms. In Proceedings of the 23rd international conference on Machine learning (pp. 161-168). ACM.

发展分析

瓶颈

目前数据挖掘面临的一个困难是数据的获得,由于包含有效信息的数据往往也涉及到个人隐私,数据获取的过程很容易触犯法律法规。另外,出于不同的设计考虑,往往不同的算法会被选择,但如何选择最优的数据挖掘工具/算法并没有明确的定论。

许多数据挖掘分析软件很难运行,需要进行预先培训。

由于设计中采用了不同的算法,因此不同的数据挖掘工具以不同的方式工作。因此,选择正确的数据挖掘工具是一项非常困难的任务。

不准确的数据挖掘技术会在某些情况下造成严重后果。

未来发展方向

数据挖掘是一类十分适合商业化的技术,它有助于公司获取基于知识的信息、可以帮助企业在运营和生产中及时调整、有助于决策过程并且便于自动预测趋势和行为,以及自动发现隐藏模式。基于这些特点,更快速、更高度的定制化以及轻量级的数据挖掘应用软件/算法是一个发展方向。

Contributor: Yuanyuan Li

简介