算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,有限时间内获得所要求的输出,如果一个算法有缺陷,或不适合某个问题,执行这个算法将不会解决这个问题,不同的算法可能用不同的时间,空间或者效率来完成同样的任务,一个算法的优劣可以用空间复杂度来衡量,算法工程师就是利用算法处理事物的人。
今天是20190318,好像做了一个很大的决定。希望自己不要后悔。
数据挖掘(data mining)又被译为资料探勘,数据采矿。它是数据库知识发现(knowledge——Discovery in Databases)简称KDD中的一个步骤,数据挖掘一般是从大量的数据中通过算法搜索隐藏于其中的信息的过程,数据挖掘通常与计算机科学有关。并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
需要是发明之母,近年来,数据挖掘引起了信息产业界的极大关注,其主要原因是因为存在大量数据,可以广泛使用,并且迫切的需要将这些数据转换成有用的信息和知识,获取的信息和知识可以广泛用于各种应用,包括商务管理,生产控制,市场分析,工程设计和科学探索等等。
数据挖掘利用了来自如下一些领域的思想,1)来自统计学的抽样,估计和假设检验,2)人工智能,模式识别和机器学习的搜索算法、建模技术和学习理论。数据挖掘也迅速地接纳了来自其他领域的思想,这些领域包括最优化,进化计算,信息论,信号处理,可视化和信息检索。一些其他领域也起到了重要的支撑作用。特别地,需要数据库系统提供有效的存储,索引和查询处理支持,源于高性能(并行)计算的技术在处理数据集的方面常常是最重要,分布式的技术也能帮助处理海量数据,并且当数据不能其中到一起时更是至关重要。
数据挖掘(data mining ):有目的地从现有大数据中提取数据的模式(pattern)和模型(model) 数据挖掘是从现有的信息(existing information)中提取数据的模式和模型,即精选出最重要的信息,以用来未来机器学习和AI的数据使用,其核心的目的是找到数据变量之间的关系,其发展出来的主要原因是因为大数据的发展,用传统的数据分析的方式已经无能处理那么多大量的看似不相关的数据的处理。因为需要数据挖掘技术去提取各种数据和变量之间的相互关系,从而精炼数据。
数据挖掘本质上像是机器学习和人工智能的基础,他的主要目的是从各种各样的数据来源中,提取超集(superset)的信息,然后将这些信息合并让你发现从来没有想到过的模式和内在关系。这就意味着,数据挖掘不是一种用来证明假说的方法,而是用来构建各种各样的假说的方法。数据挖掘不能告诉你这些问题的答案,他只能告诉你,A和B可能存在关系,但是它无法告诉你A和B存在着怎么样的关系。
当然,数据挖掘会使用大量的机器学习的算法,但是其特定的环境和目的和学习不太一样。
机器学习(machine learning):自动地从过往的经验中学习新的知识。
机器学习其实是人工智能需要的一部分,因为目前,在实践过程中,大多数的人工智能处理任务,其实用机器学习的方式完成的,机器学习可以用程序和算法自动地学习,只要被设计好了,这个程序可以进行自我优化,同时,机器学习需要一定数量的数据训练集(training data set),用来构建自过往经验的“知识”
且机器学习目前在实践中的最重要的功能便是预测结果,比如机器学习已经学习结束了,现在有一个新的数据集x,需要预测其分类,机器学习算法会根据这个新数据与学习的“知识”相匹配,然后将这个数据集x分类某类C去,再比较常见的机器学习,比如amazon的推荐系统。
人工智能,一个广泛的概念,本质是用数据和模型去为现有的问题(existing problem )提供解决方案(solution) 人工智能是一个与机器学习和数据挖掘相对不同的概念,人工智能的目的是为了创造有智力的电脑,在实践中,我们希望这个电脑像有智力一样的人去处理一个任务,因此,理论上人工智能几乎包括了所有和机器能做的内容,当然也包括了数据挖掘和机器学习的内容,同时还会有监视(monitor)和控制进程(processcontrol)的内容