请自己看,自己比较。
机器学习是人工智能的一个分支。人工智能的研究是从以“推理”为重点到以“知识”为重点,再到以“学习”为重点,一条自然、清晰的脉络。显然,机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。很多推论问题属于无程序可循难度,所以部分的机器学习研究是开发容易处理的近似算法。
机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人等领域。
机器学习有下面几种定义:
机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。
机器学习是对能通过经验自动改进的计算机算法的研究。
机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。
一种经常引用的英文定义是:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.
机器学习可以分成下面几种类别:
监督学习从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的。常见的监督学习算法包括回归分析和统计分类。
监督学习和非监督学习的差别就是训练集目标是否人标注。他们都有训练集 且都有输入和输出
无监督学习与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有聚类。
半监督学习介于监督学习与无监督学习之间。
增强学习通过观察来学习做成如何的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断。
具体的机器学习算法有:
构造间隔理论分布:聚类分析和模式识别
人工神经网络
感知器
集成学习AdaBoost
降维与度量学习
聚类
构造条件概率:回归分析和统计分类
线性判别分析
最近邻居法
径向基函数核
通过再生模型构造概率密度函数:
最大期望算法
概率图模型:包括贝叶斯网和Markov随机场
Generative Topographic Mapping
近似推断技术:
蒙特卡罗方法
变分法
最优化:大多数以上方法,直接或者间接使用最优化算法。
数据挖掘(英语:data mining)是一个跨学科的计算机科学分支[1][2][3] 它是用人工智能、机器学习、统计学和数据库的交叉方法在相对较大型的数据集中发现模式的计算过程[1]。数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用[1]。除了原始分析步骤,它还涉及到数据库和数据管理方面、数据预处理、模型与推断方面考量、兴趣度度量、复杂度的考虑,以及发现结构、可视化及在线更新等后处理[1]。数据挖掘是“数据库知识发现”(KDD)的分析步骤[4]。
这个术语其实是误称,因为目标是从大量数据中提取模式和知识,而不是(挖掘)数据本身[5]。 它也是一个流行语[6],而且经常用于大规模数据或信息处理(数据采集、数据提取、数据存储、数据分析和数据统计),还有决策支持系统方面的应用(包括人工智能、机器学习和商业智能)。《数据挖掘:实用机器学习技术及Java实现》一书[7]大部分是机器学习的内容。这本书最初只叫做“实用机器学习”,“数据挖掘”一词是后来为了营销才加入的[8]。通常情况下,使用更为正式的术语,(大规模)数据分析和分析学,或者指出实际的研究方法(例如人工智能和机器学习)会更准确一些。
数据挖掘的实际工作是对大规模数据进行自动或半自动的分析,以提取过去未知的有价值的潜在信息,例如数据的分组(通过聚类分析)、数据的异常记录(通过异常检测)和数据之间的关系(通过关联式规则挖掘)。这通常涉及到数据库技术,例如空间索引。这些潜在信息可通过对输入数据处理之后的总结来呈现,之后可以用于进一步分析,比如机器学习和预测分析。举个例子,进行数据挖掘操作时可能要把数据分成多组,然后可以使用决策支持系统以获得更加精确的预测结果。不过数据收集、数据预处理、结果解释和撰写报告都不算数据挖掘的步骤,但是它们确实属于“数据库知识发现”(KDD)过程,只不过是一些额外的环节。
类似词语“数据捕捞”、“数据捕鱼”和“数据探测”指用数据挖掘方法来采样(可能)过小以致无法可靠地统计推断出所发现任何模式的有效性的更大总体数据集的部分。不过这些方法可以创建新的假设来检验更大数据总体。
数据挖掘有以下这些不同的定义:
“从数据中提取出隐含的过去未知的有价值的潜在信息”[9]
“一门从大量数据或者数据库中提取有用信息的科学。”[10]
尽管通常数据挖掘应用于数据分析,但是像人工智能一样,它也是一个具有丰富含义的词汇,可用于不同的领域。 它与KDD的关系是:KDD是从数据中辨别有效的、新颖的、潜在有用的、最终可理解的模式的过程;而数据挖掘是KDD通过特定的算法在可接受的计算效率限制内生成特定模式的一个步骤。 事实上,在现今的文献中,这两个术语经常不加区分的使用。
数据库知识发现(KDD)过程通常定义为以下阶段:
(1) 选择
(2) 预处理
(3) 变换
(4) 数据挖掘
(5) 解释/评估。[4]
预处理[编辑]
在运用数据挖掘算法之前,必须收集目标数据集。由于数据挖掘只能发现实际存在于数据中的模式,目标数据集必须大到足以包含这些模式,而其余的足够简洁以在一个可接受的时间范围内挖掘。常见的数据源如数据集市或数据仓库。在数据挖掘之前,有必要预处理来分析多变量数据。然后要清理目标集。数据清理移除包含噪声和含有缺失数据的观测量。
数据挖掘[编辑]
数据挖掘涉及六类常见的任务: [4]
异常检测(异常/变化/偏差检测)– 识别不寻常的数据记录,错误数据需要进一步调查。
关联规则学习(依赖建模)– 搜索变量之间的关系。例如,一个超市可能会收集顾客购买习惯的数据。运用关联规则学习,超市可以确定哪些产品经常一起买,并利用这些信息帮助营销。这有时被称为市场购物篮分析。
聚类 – 是在未知数据的结构下,发现数据的类别与结构。
分类 – 是对新的数据推广已知的结构的任务。例如,一个电子邮件程序可能试图将一个电子邮件分类为“合法的”或“垃圾邮件”。
回归 – 试图找到能够以最小误差对该数据建模的函数。
汇总 – 提供了一个更紧凑的数据集表示,包括生成可视化和报表。
结果验证[编辑]
数据挖掘的价值一般带着一定的目的,而这目的是否得到实现一般可以通过结果验证来实现。验证是指“通过提供客观证据对规定要求已得到满足的认定”,而这个“认定”活动的策划、实施和完成,与“规定要求”的内容紧密相关。数据挖掘过程中的数据验证的“规定要求”的设定,往往与数据挖掘要达到的基本目标、过程目标和最终目标有关。验证的结果可能是“规定要求”得到完全满足,或者完全没有得到满足,以及其他介于两者之间的满足程度的状况。验证可以由数据挖掘的人自己完成,也可以通过其他人参与或完全通过他人的项目,以与数据挖掘者毫无关联的方式进行验证。一般验证过程中,数据挖掘者是不可能不参与的,但对于认定过程中的客观证据的收集、认定的评估等过程如果通过与验证提出者无关的人来实现,往往更具有客观性。通过结果验证,数据挖掘者可以得到对自己所挖掘的数据价值高低的评估。
隐私问题及伦理[编辑]
与数据挖掘有关的,还牵扯到隐私问题,例如:一个雇主可以通过访问医疗记录来筛选出那些有糖尿病或者严重心脏病的人,从而意图削减保险支出。然而,这种做法会导致伦理和法律问题。
对于政府和商业数据的挖掘,可能会涉及到的,是国家安全或者商业机密之类的问题。这对于保密也是个不小的挑战。[11]
数据挖掘有很多合法的用途,例如可以在患者群的数据库中查出某药物和其副作用的关系。这种关系可能在1000人中也不会出现一例,但药物学相关的项目就可以运用此方法减少对药物有不良反应的病人数量,还有可能挽救生命;但这当中还是存在着数据库可能被滥用的问题。
数据挖掘实现了用其他方法不可能实现的方法来发现信息,但它必须受到规范,应当在适当的说明下使用。
如果数据是收集自特定的个人,那么就会出现一些涉及保密、法律和伦理的问题。[12]
方法[编辑]
数据挖掘的方法包括监督式学习、非监督式学习、半监督学习、增强学习。监督式学习包括:分类、估计、预测。非监督式学习包括:聚类,关联规则分析。
例子[编辑]
数据挖掘在零售行业中的应用:零售公司跟踪客户的购买情况,发现某个客户购买了大量的真丝衬衣,这时数据挖掘系统就在此客户和真丝衬衣之间创建关系。销售部门就会看到此信息,直接发送真丝衬衣的当前行情,以及所有关于真丝衬衫的资料发给该客户。这样零售商店通过数据挖掘系统就发现了以前未知的关于客户的新信息,并且扩大经营范围。
数据捕捞[编辑]
通常作为与数据仓库和分析相关的技术,数据挖掘处于它们的中间。然而,有时还会出现十分可笑的应用,例如发掘出不存在但看起来振奋人心的模式(特别的因果关系),这些根本不相关的、甚至引人误入歧途的、或是毫无价值的关系,在统计学文献里通常被戏称为“数据捕捞”(Data dredging, data fishing, or data snooping)。
数据挖掘意味着扫描可能存在任何关系的数据,然后筛选出匹配的模式,(这也叫作“过度匹配模式”)。大量的数据集中总会有碰巧或特定的数据,有着“令人振奋的关系”。因此,一些结论看上去十分令人怀疑。尽管如此,一些探索性数据分析 还是需要应用统计分析查找数据,所以好的统计方法和数据数据的界限并不是很清晰。
更危险是出现根本不存在的关系性。投资分析家似乎最容易犯这种错误。在一本叫做《顾客的游艇在哪里?》的书中写道:“总是有相当数量的可怜人,忙于从上千次的赌轮盘的轮子上查找可能的重复模式。十分不幸的是,他们通常会找到。”[13]
多数的数据挖掘研究都关注于发现大量的数据集中,一个高度详细的模式。在《大忙人的数据挖掘》一书中, 西弗吉尼亚大学和不列颠哥伦比亚大学研究者讨论了一个交替模式,用来发现一个数据集当中两个元素的最小区别,它的目标是发现一个更简单的模式来描述相关数据。[14]