“道、法、术、器”出于老子的《道德经》,后人又加了一个“势”,并且也有了不同的排列。很多人习惯用“道、法、术、势、器”的顺序,原因很简单:道以明向、法以立本、术以立策、势以立人、器以成事。所谓道不易,法简易,术变易。
下面我们就从道、法、术、势、器这五个层面上看看究竟什么是机器学习。
1、道以明向
道,是放在最上层的东西,是战略思想,是指引,是客观存在的东西。说白了就是不管你愿意不愿意、知道不知道,它就在那里。虽然人们对客观现象的认识不断加强,但背后的本质从来不曾改变,这就是所谓的真理吧。所谓以不变应万变,就是这个道理。
“道”解决的是什么是正确的事,“法、术、势、器”解决的是如何将事情做正确。很多时候,判断什么是正确的事最为困难。
举个例子,机器学习工程师可以分成三个档次:
初级:熟悉常用的机器学习模型和算法,针对不同的数据会选择对应模型,并进行比较,即操作型;
中级:会改造已有的模型,甚至设计新的模型,并对新的模型进行最优化,即优化型;
高级:给出一个实际问题,可以恰当的从数学角度定义这个问题,正确的给出量化的目标函数,即目标型。
其中,目标型是最高境界,是从“道”的层面确定正确的事情。有了问题模型和目标函数,其他一切都是时间和成本的问题。大多数情况下,大家面对机器学习的问题,一般都是一通乱试,也不知道目标函数是什么,完全是没有目的Ad Hoc方式,很难有好的结果。
对于机器学习来说,里面的道包含如下几个方面:
正确的认识机器学习的定义;
正确的认识机器学习的范围;
正确的认识机器学习的发展历史与启示;
(1)定义
机器学习这个词是让人疑惑的,首先它是英文名称Machine Learning的直译,在计算界Machine一般指计算机。这个名字使用了拟人的手法,说明了这门技术是让机器“学习”的技术。但是计算机是死的,怎么可能像人类一样“学习”呢?
传统上如果我们想让计算机工作,我们给它一串指令,然后它遵照这个指令一步步执行下去。有因有果,非常明确。但这样的方式在机器学习中行不通。机器学习根本不接受你输入的指令,相反,它接受你输入的数据!也就是说,机器学习是一种让计算机利用数据而不是指令来进行各种工作的方法。这听起来非常不可思议,但结果上却是非常可行的。“统计”思想将在你学习“机器学习”相关理念时无时无刻不伴随,相关而不是因果的概念将是支撑机器学习能够工作的核心概念。你会颠覆对你以前所有程序中建立的因果无处不在的根本理念。
从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。
(2)范围
有了定义,再来看看机器学习的范围。
实际上,机器学习跟模式识别,统计学习,数据挖掘,计算机视觉,语音识别,自然语言处理等领域有着很深的联系。
从范围上来说,机器学习跟模式识别,统计学习,数据挖掘是类似的,同时,机器学习与其他领域的处理技术的结合,形成了计算机视觉、语音识别、自然语言处理等交叉学科。因此,一般说数据挖掘时,可以等同于说机器学习。同时,我们平常所说的机器学习应用,应该是通用的,不仅仅局限在结构化数据,还有图像,音频等应用。
(3)历史
回顾机器学习发展历史的动机主要是为了警示我们注意那些本质不能做的事情,以避免重复历史上已经发生过的错误。另外,提示我们关注那些前人研究中的某些动机,在当时,它们可能受到技术条件的限制而不可行,但是,在当前技术条件下,可能获得新生。
实际上,图灵在1950年关于图灵测试的文章中,就已经提到了机器学习的可能性。20世纪50年代,已经开始有机器学习相关的研究工作,主要集中在基于神经网络的连接主义学习方面。
在20世纪70年代,多种学习技术得到了初步发展,例如以决策理论为基础的统计学习技术和强化学习技术等。20多年后红极一时的统计学习理论的一些重要结果也是在这个时期取得的。在这一时期,基于逻辑或图结构表示的符号学习技术也开始出现。20世纪80年代是机器学习成为一个独立的学科领域并开始快速发展、各种机器学习技术百花齐放的时期。
20世纪90年代中期,统计学习粉墨登场并迅速独占鳌头。其实早在20世纪60~70年代就已经有统计学习方面的研究工作,统计学习理论在那个时期也已经打下了基础,例如,早在1963年就提出了“支持向量”的概念,并随后在1968年提出了VC维,在1974年提出了结构风险最小化原则等。但直到90年代中期,统计学习才开始成为机器学习的主流技术。在支持向量机被普遍接受后,支持向量机中用到的核(Kernel)技巧几乎被人们用到了机器学习的每一个角落,“核方法”也逐渐成为机器学习的一种基本技巧。
现在,计算机界戏称机器学习为“全能学科”,它无所不在。除了有其自身的学科体系外,机器学习还有两个重要的辐射功能。一是为应用学科提供解决问题的方法与途径。对于一个应用学科来说,机器学习的目的就是把一些难懂的数学翻译成让工程师能够写出程序的伪代码。二是为一些传统学科,比如统计、理论计算机科学、运筹优化等找到新的研究问题。因此,大多数世界著名大学的计算机学科把机器学习或人工智能列为核心方向,扩大机器学习领域的教师规模,而且至少要保持两三个机器学习研究方向具有一流竞争力。
(4)启示
机器学习的发展历程告诉我们:发展一个学科需要一个务实的态度。时髦的概念和名字无疑对学科的普及有一定的推动作用,但学科的根本还是所研究的问题、方法、技术和支撑的基础等,以及为社会产生的价值。
“机器学习”是个很酷的名字,简单地按照字面理解,它的目的是让机器能像人一样具有学习能力。但在其十年的黄金发展期,机器学习界并没有过多地炒作“智能”或者“认知”,而是关注于引入统计学等来建立学科的理论基础,面向数据分析与处理,以无监督学习和有监督学习为两大主要的研究问题,提出和开发了一系列模型、方法和计算算法等,切实地解决了工业界所面临的一些实际问题。近几年,因为大数据的驱动和计算能力的极大提升,一批面向机器学习的底层架构先后被开发出来。神经网络其实在20世纪80年代末或90年代初就被广泛研究,但后来沉寂了。近几年,基于深度学习的神经网络强势崛起,给工业界带来了深刻的变革和机遇。深度学习的成功不是源自脑科学或认知科学的进展,而是因为大数据的驱动和计算能力的极大提升。
2、法以立本
法是实现道的最根本的战略、方法、指导方针、思路。具体来说就是规则、流程、步骤,是将“道”从理论层面落实到实践层面的关键。
机器学习的流程与步骤可以归纳如下:
首先,我们需要在计算机中存储历史的数据;
接着,我们将这些数据通过机器学习算法进行处理,这个过程在机器学习中叫做“训练”,处理的结果可以被我们用来对新的数据进行预测,这个结果一般称之为“模型”;
最后,对新的数据进行预测。
“训练”与“预测”是机器学习的两个部分,“模型”则是过程的中间输出结果,“训练”产生“模型”,“模型”指导“预测”。
让我们把机器学习的过程与人类对历史经验归纳的过程做个比对。
人类在成长、生活过程中积累了很多的历史与经验。人类定期地对这些经验进行“归纳”,获得了生活的“规律”。当人类遇到未知的问题或者需要对未来进行“推测”的时候,人类使用这些“规律”,对未知问题与未来进行“推测”,从而指导自己的生活和工作。
机器学习中的“训练”与“预测”过程可以对应到人类的“归纳”和“推测”过程。通过这样的对应,我们可以发现,机器学习的思想并不复杂,仅仅是对人类在生活中学习成长的一个模拟。由于机器学习不是基于编程形成的结果,因此它的处理过程不是因果的逻辑,而是通过归纳思想得出的相关性结论。
这也可以联想到人类为什么要学习历史,历史实际上是人类过往经验的总结。有句话说得很好,“历史往往不一样,但历史总是惊人的相似”。通过学习历史,我们从历史中归纳出人生与国家的规律,从而指导我们的下一步工作,这是具有莫大价值的。当代一些人忽视了历史的本来价值,而是把其作为一种宣扬功绩的手段,这其实是对历史真实价值的一种误用。
在大数据时代,机器学习领域还有一个热点是把系统与算法结合,设计大规模分布式的机器学习算法与系统,使得机器学习算法可以在多处理器和多机器的集群环境下作业,处理更大量级的数据。毫无疑问, AlphaGo是近年来机器学习、系统和高效搜索算法结合成功的典范,谷歌AlphaGo成功给机器学习的“法”带来了新的启示:
正确的选题。谷歌选择了可以量化、规则明确的计算机围棋领域,其主要负责人David Silver 和Aja Huang的博士论文均是计算机围棋,有着超过10年的经验。
恰当的方法与时机。在计算机性能大幅度提升的大背景下,谷歌通过训练大规模深度学习网络,结合高效的传统蒙特卡洛搜索树,成功地控制了围棋的复杂度。
精密的工程实现。在数十名谷歌工程师的努力下,AlphaGo有了单机和分布式2个版本,针对时间限制,设计了快速落子和仔细斟酌的策略,对时间采取毫秒级别的估计。这些工程上的细节,无疑是决定成败的关键之一。
谷歌AlphaGo的成功,告诉我们结合机器学习与传统符号搜索方法可以解决人工智能里相对复杂的推理问题,把机器学习与高效的搜索方法的结合开辟了机器学习的新“法”。
3、术以立策
术是方式与技巧,是策略,是具体的方法。机器学习的术就是我们目前讲的最多的内容。
总的来说,按照训练的数据有无标签,可以将机器学习算法分为监督学习算法和无监督学习算法,同时还有一类推荐算法较为特殊,既不属于监督学习,也不属于非监督学习,是单独的一类。
监督学习算法:线性回归,逻辑回归,神经网络,SVM
无监督学习算法:聚类算法,降维算法
特殊算法:推荐算法
下面简单看看这些方法的内涵思想。
(1)回归算法
在大部分机器学习课程中,回归算法都是介绍的第一个算法。原因有两个:回归算法比较简单,介绍它可以让人平滑地从统计学迁移到机器学习中;回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习那些强大的算法。回归算法有两个重要的子类:即线性回归和逻辑回归。
线性回归就是我们前面说过的房价求解问题。如何拟合出一条直线最佳匹配我所有的数据?一般使用“最小二乘法”来求解。“最小二乘法”的思想是这样的,假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。函数极值在数学上我们一般会采用求导数为0的方法。但这种做法并不适合计算机,可能求解不出来,也可能计算量太大。
而逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字,例如房价。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如判断这封邮件是否是垃圾邮件,以及用户是否会点击此广告等等。
逻辑回归算法划出的分类线基本都是线性的,这意味着当两类之间的界线不是线性时,逻辑回归的表达能力就不足。下面的两个算法是机器学习界最强大且重要的算法,都可以拟合出非线性的分类线。
(2)神经网络
神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,携着“深度学习”之势,神经网络重装归来,重新成为最强大的机器学习算法之一。
神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在BP算法(加速神经网络训练过程的数值算法)诞生以后,神经网络的发展进入了一个热潮。BP算法的发明人之一是机器学习大牛Geoffrey Hinton。神经网络的学习机理具体说来就是分解与整合。
(3)SVM(支持向量机)
支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。支持向量机算法从某种意义上来说是逻辑回归算法的强化:通过给予逻辑回归算法更严格的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是如果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。
但是,通过跟高斯“核”的结合,支持向量机可以表达出非常复杂的分类界线,从而达成很好的的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是可以将低维的空间映射到高维的空间。
支持向量机是一种数学成分很浓的机器学习算法(相对的,神经网络则有生物科学成分)。在算法的核心步骤中,有一步证明,即将数据从低维映射到高维不会带来最后计算复杂性的提升。于是,通过支持向量机算法,既可以保持计算效率,又可以获得非常好的分类效果。因此支持向量机在90年代后期一直占据着机器学习中最核心的地位,基本取代了神经网络算法。直到现在神经网络借着深度学习重新兴起,两者之间才又发生了微妙的平衡转变。
(4)聚类算法
前面的算法中的一个显著特征就是训练数据中包含了标签,训练出的模型可以对其他未知数据预测标签。在下面的算法中,训练数据都是不含标签的,而算法的目的则是通过训练,推测出这些数据的标签。这类算法有一个统称,即无监督算法。无监督算法中最典型的代表就是聚类算法。
让我们还是拿一个二维的数据来说,某一个数据包含两个特征。我希望通过聚类算法,给他们中不同的种类打上标签,我该怎么做呢?简单来说,聚类算法就是计算种群中的距离,根据距离的远近将数据划分为多个族群。聚类算法中最典型的代表就是K-Means算法。
(5)降维算法
降维算法也是一种无监督学习算法,其主要特征是将数据从高维降低到低维层次。在这里,维度其实表示的是数据的特征量的大小,例如,房价包含房子的长、宽、面积与房间数量四个特征,也就是维度为4维的数据。可以看出来,长与宽事实上与面积表示的信息重叠了,例如面积= 长× 宽。通过降维算法我们就可以去除冗余信息,将特征减少为面积与房间数量两个特征,即从4维的数据压缩到2维。于是我们将数据从高维降低到低维,不仅利于表示,同时在计算上也能带来加速。
刚才说的降维过程中减少的维度属于肉眼可视的层次,同时压缩也不会带来信息的损失(因为信息冗余了)。如果肉眼不可视,或者没有冗余的特征,降维算法也能工作,不过这样会带来一些信息的损失。但是,降维算法可以从数学上证明,从高维压缩到的低维中最大程度地保留了数据的信息。因此,使用降维算法仍然有很多的好处。
降维算法的主要作用是压缩数据与提升机器学习其他算法的效率。通过降维算法,可以将具有几千个特征的数据压缩至若干个特征。另外,降维算法的另一个好处是数据的可视化,例如将5维的数据压缩至2维,然后可以用二维平面来可视。降维算法的主要代表是PCA算法(主成分分析算法)。
(6)推荐算法
推荐算法是目前业界非常火的一种算法,在电商界,如亚马逊,天猫,京东等得到了广泛的运用。推荐算法的主要特征就是可以自动向用户推荐他们最感兴趣的东西,从而增加购买率,提升效益。推荐算法有两个主要的类别:
一类是基于物品内容的推荐,是将与用户购买的内容近似的物品推荐给用户,这样的前提是每个物品都得有若干个标签,因此才可以找出与用户购买物品类似的物品,这样推荐的好处是关联程度较大,但是由于每个物品都需要贴标签,因此工作量较大。
另一类是基于用户相似度的推荐,则是将与目标用户兴趣相同的其他用户购买的东西推荐给目标用户,例如小A历史上买了物品B和C,经过算法分析,发现另一个与小A近似的用户小D购买了物品E,于是将物品E推荐给小A。
两类推荐都有各自的优缺点,在一般的电商应用中,一般是两类混合使用。推荐算法中最有名的算法就是协同过滤算法。
(7)其他
除了以上算法之外,机器学习界还有其他的如高斯判别,朴素贝叶斯,决策树等等算法。但是上面列的六个算法是使用最多,影响最广,种类最全的典型。机器学习界的一个特色就是算法众多,发展百花齐放。
4、势以立人
势是气场,是权威,是当下所处的时间和空间位置的运动方向,是“道、法、术”得以施行的保障,可以理解为一种执行力。老子在《道德经》中没有提到这个概念,可能他老人家没有预测到当今社会的风云变幻。老子的思想强调顺势、无为,是朴素的辨证法,但在如今的大环境中,强调的思想是“逆天”,没有机会就创造机会,因为我们要永远站在变革的最前沿,所以“势”就变得很重要,它可以让事情变得主动,成为前进的动力。
人工智能是机器学习的父类。深度学习则是机器学习的子类。如果把三者的关系用图来表明的话,则是下图:
毫无疑问,人工智能是人类所能想象的科技界最突破性的发明了,某种意义上来说,人工智能就像游戏最终幻想的名字一样,是人类对于科技界的最终梦想。从50年代提出人工智能的理念以后,科技界,产业界不断在探索,研究。这段时间各种小说、电影都在以各种方式展现对于人工智能的想象。人类可以发明类似于人类的机器,这是多么伟大的一种理念!但事实上,自从50年代以后,人工智能的发展就磕磕碰碰,未有见到足够震撼的科学技术的进步。
总结起来,人工智能的发展经历了如下若干阶段,从早期的逻辑推理,到中期的专家系统,这些科研进步确实使我们离机器的智能有点接近了,但还有一大段距离。直到机器学习诞生以后,人工智能界感觉终于找对了方向。基于机器学习的图像识别和语音识别在某些垂直领域达到了跟人相媲美的程度。机器学习使人类第一次如此接近人工智能的梦想。
事实上,如果我们把人工智能相关的技术以及其他业界的技术做一个类比,就可以发现机器学习在人工智能中的重要地位不是没有理由的。
而另一方面,机器学习近年来发展产生了一个新的方向,即“深度学习”。虽然深度学习这四字听起来颇为高大上,但其理念却非常简单,就是传统的神经网络发展到了多隐藏层的情况。
自从90年代以后,神经网络已经消寂了一段时间。但是BP算法的发明人Geoffrey Hinton一直没有放弃对神经网络的研究。由于神经网络在隐藏层扩大到两个以上,其训练速度就会非常慢,因此实用性一直低于支持向量机。2006年,Geoffrey Hinton在科学杂志《Science》上发表了一篇文章,论证了两个观点:
多隐层的神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;
深度神经网络在训练上的难度,可以通过“逐层初始化”来有效克服。
通过这样的发现,不仅解决了神经网络在计算上的难度,同时也说明了深层神经网络在学习上的优异性。从此,神经网络重新成为了机器学习界中的主流强大学习技术。同时,具有多个隐藏层的神经网络被称为深度神经网络,基于深度神经网络的学习研究称之为深度学习。
由于深度学习的重要性质,在各方面都取得极大的关注,按照时间轴排序,有以下四个标志性事件值得一说:
2012年6月,《纽约时报》披露了Google Brain项目,这个项目是由Andrew Ng和Map-Reduce发明人Jeff Dean共同主导,用16000个CPU Core的并行计算平台训练一种称为“深层神经网络”的机器学习模型,在语音识别和图像识别等领域获得了巨大的成功。Andrew Ng就是文章开始所介绍的机器学习的大牛。
2012年11月,微软在中国天津的一次活动上公开演示了一个全自动的同声传译系统,讲演者用英文演讲,后台的计算机一气呵成自动完成语音识别、英中机器翻译,以及中文语音合成,效果非常流畅,其中支撑的关键技术是深度学习;
2013年1月,在百度的年会上,创始人兼CEO李彦宏高调宣布要成立百度研究院,其中第一个重点方向就是深度学习,并为此而成立深度学习研究院(IDL)。
2013年4月,《麻省理工学院技术评论》杂志将深度学习列为2013年十大突破性技术(Breakthrough Technology)之首。
深度学习属于机器学习的子类。基于深度学习的发展极大的促进了机器学习的地位提高,更进一步地,推动了业界对机器学习父类人工智能梦想的再次重视。
5、器以成事
器是让工作变得简单的工具。工具的作用是提高效率,把复杂问题简单化。就像工业时代的各种机器,极大的提高了人们的生产效率。今天,随着人工智能的炙手可热,机器学习本身就已经被作为一个大杀器而获得了普遍的认识。
为什么要使用工具?因为机器学习工具使得应用机器学习更快,更简单,更有趣。
更快:好工具可以自动化应用机器学习过程中的每一步。这意味着,从提出创意到得到结果的时间大大缩短。如果你从头开始自己实现每一个功能,这花的时间要比选择现有工具要长的多。
更简单:你可以花时间来选择合适的工具,而不是研究、实现技术来完成任务。如果你自己实现,你必须对每一个过程都十分精通。这需要研究,资深经验来理解技术,以及高水平的工程技能来确保有效执行。
有趣:对于初学者得到良好结果的门槛低。你可以花费额外的时间来得到更好的结果,或者进行更多的项目实践。如果不使用这些工具,你将会花费大部分时间来构建你自己的工具,而没将时间集中在获取结果上。
机器学习工具有许多。谷歌搜索到的结果就足以让你头晕目眩了。
一种有用的机器学习工具分类方式是将它们分成平台和库。平台为你运行一个项目所需的全部功能,而库只为你完成一个项目提供部分功能。这么区分并不完美,因为有些机器学习平台同时也是库,有些库也提供了图形化用户界面。然而,这提供了很好的比较方式,从特定目的工具中区分具体使用情形。
(1)机器学习平台
机器学习平台提供了从头到尾完成一个机器学习项目的功能。也就是,数据分析,数据准备,建模和算法评估及选择。机器学习平台的特征有:
它们提供了机器学习项目中每一个过程所需要的功能。
界面可以是图形化的,也可以是命令行,平台将所有的或部分界面结合起来。
它们提供功能的松耦合,你可以在特定项目中将各个部件结合起来。
它们是为通用目的用途和探索而量身定制的,而不是为了速度,可扩展性和准确性。
以下是一些机器学习平台:
WEKA Machine Learning Workbench。
R Platform。
Python SciPy的子集(比如 Pandas和 scikit-learn)。
(2)机器学习库
机器学习库提供了完成一个机器学习项目部分模块的功能。比如,一个库可能提供了一系列建模算法。机器学习库的特征有:
它们为一个机器学习项目中一个或多个步骤提供了特定的功能。
它们的接口通常是需要编程的应用程序编程接口。
它们为特定用例,问题类型或环境量身定制。
以下是一些机器学习库:
Python中的 scikit-learn。
Java中的 JSAT。
.Net中的 Accord Framework。
另一种区分机器学习工具的方式是根据它们提供的界面。
(3)图形化用户界面
机器学习工具提供了图形用户界面,包括窗口,得分,点击,专注于可视化。图形化用户界面的好处有:
允许掌握较少技术的用户完成机器学习工作。
专注于处理过程,以及如何最大限度地利用机器学习技术。
用户可以使用界面进行结构化处理。
更注重于信息的图形化展示,比如可视化。
以下是一些有图形化界面的机器学习工具:
KNIME
RapidMiner
Orange
(4)命令行界面
机器学习工具提供了命令行界面,包括命令行程序,命令行参数,注重于输入和输出。命令行用户界面的好处有:
允许不是程序员的技术用户完成机器学习项目。
提供了许多专门的程序或机器学习项目特定子任务的编程模型。
根据需要的输入和将会得到的输出分解机器学习任务。
通过记录或脚本命令和命令行参数来促进有复验性的结果。
以下是一些提供命令行界面的机器学习工具:
Waffles
WEKA Machine Learning Workbench
(5)应用程序编程接口
机器学习工具提供了应用程序编程接口,可以让你自由决定在你的程序中使用什么元素以及如何使用。应用程序编程接口的好处有:
你可以将机器学习算法合并到自己的软件项目当中。
你可以创建自己的机器学习工具。
你可以在机器学习项目中灵活使用自己的处理流程和自动操作。
你可以将自己的方法与库提供的方法以及扩展提供的方法结合。
以下是一些带有应用程序编程接口的机器学习工具:
面向Python的 Pylearn 2
面向Java的Deeplearning4j
面向C的 LIBSVM
比较机器学习工具最后一个方法是这个工具是本地工具还是远程工具。本地工具是你下载并安装的,在本地使用,而远程工具运行在第三方服务器上。
(6)本地工具
本地工具是下载、安装并运行在本地环境的。包括如下特点:
专为内存中数据和算法设计。
由运行配置和参数控制。
集成到你自己的系统,以满足你的需求。
以下是一些本地工具:
面向C++的 ShogunLibrary
面向Go的 GoLearn
(7)远程工具
远程工具托管在服务器上,并且可以从本地环境调用。这些工具通常被称为将机器学习作为服务(MLaaS)。其特点包括:
专为运行更大规模数据设计。
在多系统,多核心和共享内存上运行。
为适应大规模系统,所以服务提供的算法更少。
更简单的接口,在运行配置和算法参数上提供较少的控制。
通过远程过程调用集成到你本地环境中。
以下是一些远程工具:
Google Prediction API
AWS Machine Learning
Microsoft Azure Machine Learning
当然,实际上还有很多很多非常著名以及不那么著名的例子,学无止境了。
6、总结
机器学习是目前业界最为火热的一项技术,从网上的每一次淘宝的购买东西,到自动驾驶汽车技术,以及网络攻击抵御系统等等,都有机器学习的因子在内,同时机器学习也是最有可能使人类完成AI dream的一项技术,各种人工智能目前的应用,从聊天机器人,到计算机视觉技术的进步,都有机器学习努力的成分。在大数据和数据科学这个大背景下,大家最好都应该了解一些机器学习的相关知识与概念,因为这可以帮你更好的理解为你带来莫大便利技术的背后原理,以及让你更好的理解当代科技的进程。
参考文献:
王威廉, 机器学习:现在与未来, 科技导报, 2016, 34(7): 78-79.
张志华, 机器学习的发展历程及启示, 中国计算机学会通讯, 2016, 12(11): 55-60.
zourui4271, 从机器学习谈起, 博客园, 2015.
Jason Brownlee, 机器学习工具综述, CSDN, 2016.
来源:Mr.Wang 嘉数汇
数据挖掘已经有20多年历史了,20年前,“尿布和啤酒的故事”像童话一样被许多应用领域的信息主管认为是不靠谱的幻想(很多地方称为营销神话)。如今,我们处处能够看到数据挖掘的影子,Target 百货分析16岁的少女买无香型沐浴露之后,判断她怀孕了;语言学家通过记录自己孩子出生到3岁每天每秒钟的状态数据,发现语言记忆和周遭环境相关性更大;调查局通过数据分析和挖掘发现改善公共环境有助于降低犯罪率。
这篇文章我们就从道、法、术、器这四个层面上看看究竟什么是数据挖掘。
1. 道以明向
道,是放在最上层的东西,不管是什么学问。对于数据挖掘来说,道就是数据挖掘的定义、特点和任务三者的结合。
1.1 数据挖掘的定义
关于数据挖掘有很多相近的术语,如:数据库中的知识发现(Knowledge Discovery inDatabase,KDD))、知识挖掘、知识提取、数据/模式分析、数据考古、数据融合等。其中,最常使用的是数据挖掘和知识发现,并且两者在使用中常常不加区分。就术语的使用情况看,在2012年大数据尚未被广泛关注之前,人工智能领域主要使用知识发现,而数据库领域和工业界主要使用数据挖掘,市场上的绝大部分产品也称为数据挖掘工具,而非知识发现工具。在大数据受到广泛关注之后,数据挖掘被更加广泛地使用,其他术语的使用越来越少。
1996年,Fayaad等人对数据挖掘定义进行了详细阐述,将数据挖掘看作是KDD的一个过程。定义数据挖掘是一个确定数据中有效的、新颖的、潜在可用的且最终可理解的模式的重要过程。随后,著名的数据挖掘研究学者Jiawei Han也给出了自己的定义:从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的但又是潜在有用信息和知识的过程。
综上,可以认为:数据挖掘是通过分析每个数据从大量数据中寻找其规律的技术。
相较于其他数据挖掘定义,该定义给出了数据挖掘的核心“大量”和“寻找”,而对挖掘到的“规律”没有做任何描述或限制,即没有要求“规律”是“有用的”。事实上,一个规律有用与否是由用户的需求决定的。挖掘算法本身很难保证挖掘结果的有用性,一般需要用户在挖掘过程中不断调整相关参数(如支持度、置信度等)来获得有用的结果。有时,一些被认为是“无用”的结果经过评价后可能是意外的好结果。
数据隐含价值,技术发现价值,应用实现价值。数据、技术和应用是大数据的三个内涵。大数据环境下,数据挖掘的对象(即数据)有了新的特征,这决定了大数据挖掘将被赋予新的含义,相应的,也产生了新的挖掘算法和模型。
因此,大数据挖掘可以定义为:从大数据集中寻找其规律的技术。将“大数据集”强调为大数据挖掘的对象。
需要注意的是,在大数据挖掘中,“寻找”变得更具挑战性,因为,大数据具有高价值、低密度的特性,即规律不是显而易见的,而是隐含在大数据之中,需要用新的方法和技术去寻找。同样的,对挖掘到的“规律”没有做任何描述或限制,大数据的价值是更加难以估量的,需要在大数据的应用中去实现。
1.2 数据挖掘的特点
“大量”、“多源、异质、复杂”、“动态”、“价值高但价值密度低”的数据特征决定了当前的数据挖掘技术具有如下技术特征:
高性能计算支持的分布式;
并行数据挖掘技术;
面向多源、不完整数据的不确定数据挖掘技术;
面向复杂数据组织形式的图数据挖掘技术;
面向非结构化稀疏性的超高维数据挖掘技术;
面向价值高但价值密度低特征的特异群组挖掘技术;
面向动态数据的实时、增量数据挖掘技术等。
(1)“大量的”与并行分布式数据挖掘算法研究
数据的“大”通常是指PB级以上的。这一特征需要更高性能的计算平台支持,考虑大规模数据的分布式、并行处理,对数据挖掘技术带来的挑战是I/O交换、数据移动的代价高,还需要在不同站点间分析数据挖掘模型间的关系。虽然以往已有并行分布式数据挖掘算法的相关研究,但是,大数据环境下,需要新的云计算基础架构支撑(例如,Hadoop、Spark等)。
(2)“多源的”与不确定数据挖掘算法研究
大数据时代,收集和获取各种数据倍受关注,更多方式、更多类型、更多领域的数据被收集。不同数据源的数据由于数据获取的方式不同、收集数据的设备不同,大数据下,挖掘的数据对象常常具有不确定、不完整的特点,这要求大数据挖掘技术能够处理不确定、不完整的数据集,并且考虑多源数据挖掘模型和决策融合。
数据挖掘一直以来重视数据质量。数据的质量决定数据挖掘结果的价值。然而,大数据环境下,数据获取能力逐渐高于数据分析能力。数据获取过程中数据缺失、含有噪音难以避免,更值得注意的是,数据获取的目标也与以前不同,并不是针对某个特定应用或特定任务收集的。数据填充、补全是困难的。因此,大数据挖掘技术要有更强地处理不确定、不完整数据集的能力。
(3)“复杂的”与非结构化、超高维、稀疏数据挖掘算法研究
大数据下,来自网络文本(用户评论文本数据)、图像、视频的数据挖掘应用更加广泛,非结构化数据给数据挖掘技术带来了新的要求,特征抽取是非结构化数据挖掘的重要步骤,大数据挖掘算法设计要考虑超高维特征和稀疏性。也需要新型非关系型数据库技术的支持,通常表现为关系型数据库和非关系型数据库互为补充。
超高维特征分析的需求使得深度学习技术成为热点。数据挖掘技术一直将统计学习、机器学习、人工智能等算法和技术与数据库技术结合应用,发现数据中的规律。大数据环境下,深度学习与大数据的结合,也将成为寻找大数据其中规律的重要支撑技术之一。
(4)“动态的、演变的”与实时、增量数据挖掘算法研究
时序数据挖掘是数据挖掘领域的一个研究主题。然而,大数据环境下,数据的获取更加高速,关键是处理数据的需求在实时性方面的要求更高。早期的数据挖掘总是能容忍分钟级别,甚至更长时延的响应。现在,许多领域已经使用数据挖掘技术分析本领域数据,各个领域对数据挖掘结果响应需求存在差异,不少领域需要有更到的响应度,例如实时在线精准广告投放、证券市场高频交易等。
(5)“高价值低密度”与聚类、不平衡分类、异常挖掘算法研究
大数据环境下,产生了新的数据挖掘任务。其中,特异群组是一类低密度高价值的数据,特异群组是指在众多行为对象中,少数对象群体具有一定数量的相同或相似的行为模式,表现出相异于大多数对象而形成异常的组群。特异群组挖掘问题既不是异常点挖掘(只发现孤立点)问题也不是聚类问题(将大部分数据分组),是一类全新的问题。
1.3 数据挖掘的任务
下面给出典型数据挖掘任务的简要描述。
(1)关联分析:寻找数据项之间的关联关系。例如:我们可以通过对交易数据的分析可能得出“86%买‘啤酒’的人同时也买‘尿布’”这样一条“啤酒”和“尿布”之间的关联规则。
(2)聚类分析:根据最大化簇内的相似性、最小化簇间的相似性的原则将数据对象集合划分成若干个簇的过程。例如:我们可以通过对电子商务网站用户的注册数据和购买行为数据的分析,划分消费者的消费层次为节约时间型消费等。
(3)分类分析:找出描述并区分数据类的模型(可以是显式或隐式),以便能够使用模型预测给定数据所属的数据类。例如:P2P网贷平台可以将贷款人的信用等级分类为:AA(信用水平最高级,代表极低的违约率)、A、B、C、D、E、HR(低信用水平,潜在的违约风险最高级)。分类分析通过对这些数据及其类标签的分析给出一个信用等级的显式模型,例如:“AA级贷款者是年收入在××元到×××元,年龄在×××至×××,居住面积达×××平方米以上的人”。这样,对于一个新提交信用审核申请的贷款人,就可以根据他的特征预测其信用等级。
(4)异常分析:一个数据集中往往包含一些特别的数据,其行为和模式与一般的数据不同,这些数据称为“异常”。对“异常”数据的分析称为“异常分析”。例如,在对银行客户信用卡刷卡记录数据进行监测的过程中,发现某一笔交易明显不同于以往的消费模式。
(5)演变分析:描述时间序列数据随时间变化的数据的规律或趋势,并对其建模。包括时间序列趋势分析、周期模式匹配等。例如:通过对交易数据的演变分析,可能会得到89%的情况下,股票X上涨一周左右后,股票Y会上涨”这样一条序列知识,或者通过对股票某一历史交易时间区间的价格变化情况,可以预测出下一交易日的价格。
(6)特异群组分析:发现数据对象集中明显不同于大部分数据对象(不具有相似性)的数据对象(称为特异对象)的过程。一个数据集中大部分数据对象不相似,而每个特异群组中的对象是相似的。这是一种大数据环境下的新型数据挖掘任务。
2. 法以立本
法就是数据挖掘的流程与标准化步骤。
数据挖掘不是一个从数据到模型、再到结果的简单过程,而是一个循环往复逐步求精的过程。该过程从大型数据库中挖掘先前未知的,有效的,可实用的信息,并使用这些信息做出决策或丰富知识。在实施数据挖掘之前,先决定采取什么样的步骤,每一步都做什么,确定目标和实施方案。一般地,数据挖掘在具体应用时,大体分为以下几个阶段:
数据选择。数据选择的目的是确定发现任务的操作对象,即目标数据,是根据用户的需求从数据库中提取与数据挖掘相关的数据。在此过程中,可以利用一些数据库操作对数据进行处理,形成真正有效的数据库。
数据预处理。主要是对前面阶段所产生的数据进行加工,检查数据的完整性及数据的一致性,对其中的噪声数据进行处理,对丢失的数据利用统计方法进行填补,形成有待挖掘的数据库。当数据挖掘的对象是数据仓库时,一般地,数据预处理在生成数据仓库时就已经完成了。
数据挖掘。根据用户需求,确定数据挖掘的目的是发现何种类型的知识,因为对数据挖掘的不同要求会在具体的知识发现过程中采用不同的数据挖掘算法。算法包括选取合适的模型和参数,并使得数据挖掘算法与整个KDD的评判标准相一致。然后,运用选定的知识发现算法,从数据库中提取出用户所需要的知识,这些知识可以用一种特定的方式表示或使用一些常用的表示方式,如产生式规则等。
知识评价。该过程主要用于对所获得的规则进行价值评定,以决定所得到的规则是否存入基础知识库,主要通过人机交互界面由专家依靠经验来评价。数据挖掘阶段发现出来的模式,经过评估,可能存在冗余或无关的模式,这时需要将其剔除;也有可能模式不满足用户要求,这时需要退回前面的步骤。该阶段还需要对挖掘出的模式进行解释,使得用户更容易理解和应用。
数据挖掘全过程的几个步骤可以进一步归纳为3个步骤:数据挖掘预处理、数据挖掘和数据挖掘后处理。数据挖掘质量的好坏有两个影响因素:一是所采用的数据挖掘技术的有效性;二是用于挖掘的数据的质量和数量。
整个挖掘过程是一个不断反馈的过程。比如,用户在挖掘途中发现选择的数据不太好,或使用的挖掘技术产生不了期望的结果,这时用户需要重复先前的过程,甚至从头开始。
以上的数据挖掘过程模型主要是从数据挖掘技术角度来阐述的,还可以从另外一个角度来叙述数据挖掘与具体业务之间紧密联系,即数据挖掘的建模标准──CRISP-DM。
CRISP-DM (Cross-Industry StandardProcess for Data Mining) 意为“跨行业数据挖掘的标准化过程”。在CRISP-DM规划中,数据挖掘过程中每个必要的步骤均被标准化,它主要倡导的理念是:提倡标准过程行业内共享;建立应用与背景无关的标准过程;建立与所用数据挖掘工具无关的标准过程;建立具有普遍指导意义的标准化过程;从方法学的角度强调实施数据挖掘项目的方法和步骤。具体的,CRISP-DM分为以下6个步骤:
业务理解。业务理解是从业务角度来理解数据挖掘的目标和要求,再转化为数据挖掘问题。
数据理解。数据理解的任务是对原始数据进行收集和熟悉,检查数据质量,对数据进行初步探索,并发现可能存在的、有分析价值的数据特征,以形成对隐藏信息的假设。
数据准备。数据准备阶段初步完成变量的选择和导出变量的生成,同时对一些存在数据质量问题的字段进行相应的处理。
建立模型。建立预测模型,如回归模型、决策树、神经网络等。
模型评估。选择最好的最终模型,需要快速简单地应用和比较不同方法,比较产生的结果,然后对得到的不同规则给予商业评价。从可用的统计和非统计模型中找到最好的分析模型,对于产生最终决策是必需的。
应用部署。应用部署的目标是将预测模型生成的结果以一定的形式展现给业务人员使用。因此,应当从业务的角度来关注模型发布的形式。
3. 术以立策
术就是数据挖掘的具体方法。
(1)关联分析
自然界中某种事情发生时其他时间也常常会发生,这样一种练习称为关联。这种反映事件之间互相关联的知识称为关联型知识。例如,在某超市的交易记录中,发现“86%购买啤酒的人同时也购买尿布”,这种规律成为指导超市销售决策和管理的有效辅助性知识。关联分析(Association analysis)技术就是在诸如商场交易这样的大规模数据中分析并找到有价值的关联型知识。最著名的应用是沃尔玛(Wal-Mart)公司通过收集消费者购买其产品的历史数据,形成消费者的消费档案,并对这些历史数据进行关联分析而了解消费者的购买模式。
关联分析的目的是找到用户感兴趣的关联规则,辅助用户管理决策。频繁模式挖掘是关联分析的关键步骤,比较经典的频繁模式挖掘算法包括:Apriori算法和FP-Growth算法。
(2)聚类分析
聚类分析是人类一向基本的认知活动(如区分动物和植物),通过适当的聚类分析,人们更容易掌握事物的内部规律。聚类分析已经被广泛应用于社会学、经济学、电子商务等多个领域,如在市场营销中,根据客户的购物积分卡记录中的购物次数、时间、性别、年龄、职业、购物种类、金额等信息,进行聚类分析,帮助市场分析人员从交易数据库中发现不同的客户群,针对不同群体制定营销策略,提高客户对商场商业活动的响应率。此外,聚类分析在生物学领域应用日益突出,如通过对基因的聚类分析,获得对种群的认识等。
聚类分析是根据最大化类内的相似性、最小化类间的相似性的原则将数据对象聚类或分组,所形成的每个簇可以看作一个数据对象类,用显示或隐式的方法描述它们。
相似度用于判断两个样本之间的差异程度,它是定义一个簇的基础,聚类分析过程的质量取决于对相似度度量标准的选择。通常使用“距离”来描述数据之间的相似程度。常用的距离度量标准有欧几里得距离、Minkowski距离等。常用的聚类算法包括:基于层次的最领近算法、BIRCH算法、k-medoids算法、基于密度的OPTICS算法等。
(3)分类分析
“啤酒尿布”的故事启发销售商采用关联分析了解客户的购买习惯,进而选择更优的营销方案,但仅由这种技术来制定营销方案任然是不够的,销售商还要考虑需要对哪些客户采用哪种营销方案,这需要分类技术,将诸如客户或营销方案等分门别类,为各类客户提供个性化方案。分类技术已经在各个行业得到了广泛应用。例如,在医疗诊断中,用分类预测申请者的信用等级等。
分类是根据已有的数据样本集的特点建立一个能够把数据集中的数据项映射到某一个给定类别的分类函数或构造一个分类模型(或分类器classifier)的技术,从而对未知类别的样本赋予类别,以更好的辅助决策。
分类器的构造分为模型训练阶段(分析输入数据,通过在训练数据集中的数据表现出来的特性,为每一个类找到一种准确的描述或模型)和测试阶段(使用模型分类的阶段,利用类别的描述或模型对测试数据进行分类)。
常见的分类模型的构造方法有决策树方法、统计方法、神经网络方法等。不同分类模型有不同特点,数据样本分类的结果也不同,评价分类模型的尺度主要包括:预测准确度、计算复杂度、模型描述的简洁度等。
(4)异常分析
前面讨论的关联、分类、聚类分析等数据挖掘技术研究的问题主要是针对数据集中的大部分对象,而数据集中小部分明显不同于其他数据的对象(异常对象)常常被人们忽略或作为噪音消除。事实上,一些应用中,这些异常对象可能包含比正常数据更优价值的信息,比如信用卡欺诈检测问题中,相对被窃前的使用模式而言,被窃后的使用模式很可能是个异常点,因此可通过识别这个异常点检测信用卡是否被窃。异常分析已经成为数据挖掘中的一个重要方面,它是在诸如信用卡使用模式这样的大量数据中发现明显不同于其他数据的异常对象的技术。
一个数据集中包含的一些特别的数据称为“异常”,它们的行为和模式与一般的数据不同,它们又不同于聚类算法中的“噪音”,不依赖于是否存在簇。异常分析算法主要包括基于统计的异常分析方法、基于偏差的异常分析方法、基于距离的异常分析方法以及基于密度的异常分析方法等。
(5)特异群组挖掘
特异群组挖掘在证券金融、医疗保险、智能交通、社会网络和生命科学等研究领域具有重要应用价值。特异群组挖掘与聚类、异常挖掘都属于根据数据对象的相似性来划分数据集的数据挖据任务,但是,特异群组挖掘在问题定义、算法设计和应用效果方面不同于聚类和异常等挖掘任务。
挖掘高价值、低密度的数据对象是大数据的一项重要工作,甚至高价值、低密度常常被用于描述大数据的特征。将大数据集中的少部分具有相似性的对象划分到若干个组中,而大部分数据对象不在任何组中,也不和其他对象相似,将这样的组群称为特异群组,实现这一挖掘需求的数据挖掘任务被称为特异群组挖掘。需要强调的是,特异群组是指由给定大数据集里面少数相似的数据对象组成的、表现出相异于大多数数据对象而形成异常的群组,是一种高价值、低密度的数据形态。
大数据的特异群组挖掘具有广泛的应用背景。例如,在证券市场中,特异群组常常表现为合谋操纵(多帐户联合操纵)、基金“老鼠仓”等。
(6)演变分析
描述发展规律和趋势是一种重要的预测形式,演变分析(Evolution analysis)是一种用于描述对象行为随时间变化的规律或趋势,并对其建模,以预测对象行为的未来形式的技术。例如,通过对股票交易数据的演变分析,可能会得到“89%情况下,股票X上涨一周左右后,股票Y会上涨”的一条知识。演变分析主要包括因果分析、时间序列分析等。
因果分析方法是研究当某个或某些因素发生变化时,对其他因素的影响。回归分析是一类重要的因果分析方法,它是从各变量的互相关系出发,通过分析与被预测变量有联系的现象的动态趋势,推算出被预测变量未来状态的一种预测法。回归分析预测法以来一个假设,即要预测的变量与其他一个或多个变量之间存在因果关系。
时间序列分析是通过分析调查收集的已知历史和现状方面的资料,研究其演变规律,据此预测对象的未来发展趋势。使用时间序列分析法基于一个假设,即事物在过去如何随时间变化,那么在今后也会同样的方式继续变化下去。
ICDM(国际数据挖掘大会)2006年从18种提名的数据挖掘算法中投票选出了十大算法。这18中提名数据挖掘算法分属10大数据挖掘主题,高亮部分即为最终选出的十大算法:
分类(Classification)
C4.5
CART
K Nearest Neighbours
Naive Bayes
统计学习(Statistical Learning)
SVM
EM
关联分析(Association Analysis)
Apriori
FP-Tree
链接挖掘(Link Mining)
PageRank
HITS
聚类(Clustering)
K-Means
BIRCH
Bagging and Boosting
AdaBoost
序列模式(Sequential Patterns)
GSP
Prefix Span
集成挖掘(Integrated Mining)
CBA
粗糙集(Rough Sets)
Finding Reduct
图挖掘(Graph Mining)
gSpan
4. 器以成事
器就是数据挖掘的具体工具。例如,传统商业分析工具有Matlab、SAS和SPSS,开源的数据挖掘工具有R、python、Weka等。
参考文献
Jiawei Han,Micheling Kamber, 数据挖掘 概念与技术(原书第3版) [Data Mining Concepts and Techniques Third Edition], 机械工业出版社, 2012.
贾双成, 王奇, 数据挖掘核心技术揭秘, 机械工业出版社, 2015.
熊赟, 朱扬勇, 陈志渊, 大数据挖掘, 上海科学技术出版社, 2016.
来源:Mr.Wang 嘉数汇
作为一直想入门数据分析的童鞋们来说,如何选定一门面向数据分析的编程语言或工具呢?注意是数据分析,而不是大数据哦,数据分析是基础了。
数据分析的工具千万种,综合起来万变不离其宗。无非是数据获取、数据存储、数据管理、数据计算、数据分析、数据展示等几个方面。而被提到频率最高的如Excel、R、Python、SPSS、SAS、SQL等。那么,这些工具本身到底有什么特点呢,应该如何合理的使用来解决数据分析的各种问题?
最简单的是EXCEL,它不仅是简单的而且是必备的。正所谓初级学图表,中级学函数透视表,高级学习VBA。EXCEL功能的强大只有那些正真学过它的人才能知道,我们反对任何关于EXCEL复杂,不实用的说法。在学完VBA之后,EXCEL几乎能解决你在日常工作中遇到的所有问题。EXCEL是你成为数据分析师的必备条件。
对于一个初级的数据分析师来说,刚开始如果能精通SQL与Excel再会点SPSS之类的就差不多了。SPSS对用户的要求是只要会点击菜单就可以了,有编程窗口但是一般没人用,用户多是受到过一些统计训练的,但不需要高深的分析能力,市场调研用的比较多,统计专业的学生一般要求掌握。
再往后,你可能就需要精通一门统计分析软件了,一般说来如果是互联网行业可能R语言是最为流行,因为R语言是开源的,不过上手还是需要长期的学习;SPSS界面友好型,不过一般是市场研究用的比较多,如果你会用SPSS编程,其实功能还是比较强大的,建议如果想先练手可以学这个,上手快;SAS一般是金融企业特别是银行业和医学统计,银行业人员有一些是用SAS做统计,一般是银行业内部人做的,另一种是给银行业做数据挖掘的公司,不过正版一年也要上百万,不是土豪也用不起,而且SAS学习没人指导很难学;所以看童鞋们的选择,想在传统或者咨询公司做的SPSS比较合适,想去金融特别是银行业SAS不错,想进互联网公司学R语言可能是比较明智。
再就是Python。Python在这些工具里面是综合功能最强大的,但是这些功能分散在第三方库里面,没有得到有机的整合,所以学习成本还是比较高的。Python与R不同,Python是一门多功能的语言。数据统计是更多是通过第三方包来实现的。具体来说,常用的Python在统计上面的Package有这样一些:
1、Numpy与Scipy。这两个包是Python之所以能在数据分析占有一席之地的重要原因。其中Numpy封装了基础的矩阵和向量的操作,而Scipy则在Numpy的基础上提供了更丰富的功能,比如各种统计常用的分布和算法都能迅速的在Scipy中找到。
2、Matplotlib。这个Package主要是用来提供数据可视化的,其功能强大,生成的图标可以达到印刷品质,在各种学术会议里面出镜率不低。依托于Python,可定制性相对于其他的图形库更高。还有一个优点是提供互动化的数据分析,可以动态的缩放图表,用做Adhoc analysis非常合适。
3、Scikit Learn。非常好用的MachineLearning库,适合于用于快速定制原型。封装几乎所有的经典算法,易用性极高。
4、Python标准库。这里主要是体现了Python处理字符串的优势,由于Python多功能的属性和对于正则表达式的良好支持,用于处理文本是再合适不过的了。
Python是一套比较平衡的语言,各方面都可以,而R是在统计方面比较突出。R的优势在于有包罗万象的统计函数可以调用,特别是在时间序列分析方面(主要用在金融分析与趋势预测)无论是经典还是前沿的方法都有相应的包直接使用;相比Python在这方面贫乏不少。Python的优势在于其胶水语言的特性,一些底层用C写的算法封装在Python包里后性能非常高效。
总之R和SAS是专业性比较强的统计软件,统计专业学生必备,SPSS是更大众化的统计软件,Python不是统计软件,而是一种可以用来做各种事情的语言。R和Python现在越来越受到各大公司的喜欢,也必定会成为将来的发展趋势。Python的功能可远远不止用来分析数据,它可以用来开发,建站,写个小APP什么的。我们所知道的果壳网,知乎,DROPBOX等可都是用Python写得哦。如果你能同时学会Python和R,在数据科学领域肯定就游刃有余了。
名称 |
特点 |
适用场景 |
出现频数 |
|
1 |
Excel |
一般非大量数据分析的人员可以满足大部分需求 |
财务、金融、产品经理等一般数据量处理需求 |
较高,作为普通技能 |
2 |
R语言 |
兼容性强,语言程序化也强,在编程语言方面需要投入的精力比Python大,但适用面较广 |
最常用数据分析工具之一,兼容性强 |
高频工具之一 |
3 |
Python |
Life is too short,I use Python 以语言简单,注重数据分析的高效著称,尤其是在文本处理等数据结构化方面有很好优势 |
编程类数据分析,如文本字符等非结构化数据的处理 |
高频工具之一 |
4 |
SQL |
数据库处理和分析的必备技能,属于数据库方面的基本工具 |
侧重数据库方面,如数据仓库等,作为Oracle等数据库方面的基础知识不可或缺 |
高频工具之一 |
5 |
SPSS |
统计分析功能强大,侧重于统计分析类模型 |
建模能力已经不局限于统计了,在预测、机器学习方面也有很多包 |
频率一般 |
6 |
SAS |
金融大数据分析 |
金融风控建模较多 |
金融投资数据建模常用工具之一 |
7 |
Matlab |
矩阵计算等数学专用建模工具 |
强大的各种工具包,以及仿真能力 |
侧重于数据本身的计算,院校科研用的较多 |
总的来说,不同工具各有擅场,最关键的当然还在于业务的掌握和数学方法的掌握(统计学和机器学习等核心方法)。但磨刀不误砍柴工,把基本工具掌握熟练了百利无一弊。而当你要做大数据分析的时候,还会用到Hadoop等工具(实际上这些工具都是可以结合Hadoop大数据平台联合起来用的,后面专题介绍)。而且,工具不是万能的,业务和数据建模方法才是万法之源。不要被工具迷花了眼哦!
人工智能赛博物理操作系统
AI-CPS OS
“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPS OS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。
AI-CPS OS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务和数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。
领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPS OS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:
重新行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?
重新构建企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?
重新打造自己:你需要成为怎样的人?要重塑自己并在数字化+智能化时代保有领先地位,你必须如何去做?
AI-CPS OS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPS OS形成的数字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:
精细:这种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品个性化控制、微观业务场景事件和结果控制。
智能:模型随着时间(数据)的变化而变化,整个系统就具备了智能(自学习)的能力。
高效:企业需要建立实时或者准实时的数据采集传输、模型预测和响应决策能力,这样智能就从批量性、阶段性的行为变成一个可以实时触达的行为。
不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。
边界模糊:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。
AI-CPS OS形成的数字化+智能化力量通过三个方式激发经济增长:
创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;
对现有劳动力和实物资产进行有利的补充和提升,提高资本效率;
人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间。
给决策制定者和商业领袖的建议:
超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;
迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新
评估未来的知识和技能类型;
制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开
发过程中确定更加明晰的标准和最佳实践;
重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临
较高失业风险的人群;
开发数字化+智能化企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。
子曰:“君子和而不同,小人同而不和。” 《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。
如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!
新一代技术+商业的人工智能赛博物理操作系统AI-CPS OS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。
产业智能官 AI-CPS
用“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能),在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。
长按上方二维码关注微信公众号: AI-CPS,更多信息回复:
新技术:“云计算”、“大数据”、“物联网”、“区块链”、“人工智能”;新产业:“智能制造”、“智能驾驶”、“智能金融”、“智能城市”、“智能零售”;新模式:“案例分析”、“研究报告”、“商业模式”、“供应链金融”、“财富空间”。
点击“阅读原文”,访问AI-CPS OS官网
本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!
版权声明:由产业智能官(公众号ID:AI-CPS)推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com