机器学习语言姓名:石艳艳学号:15207022一、机器学习常用的编程语言有哪些?机器学习(MachineLearning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。目前机器学习语言主要有:R语言,Python,MATLAB、JAVA、WEKA、GO、JavaScript等。二、各个语言在机器学习方面的优缺点:1、R语言R语言是一个开发环境,采用一种近似于Lisp的脚本语言。在这个库中,所有与统计相关的功能都通过R语言提供,包括一些复杂的图标。CRAN(可以认为是机器学习的第三方包)中的机器学习目录下的代码,是由统计技术方法和其他相关领域中的领军人物编写的。如果做实验,或是快速拓展知识,R语言都是必须学习的。R的优势在于有包罗万象的统计函数可以调用,特别是在时间序列分析方面(主要用在金融分析与趋势预测)无论是经典还是前沿的方法都有相应的包直接使用;相比python在这方面贫乏不少。缺点是在处理大数据方面,性能和速度低下。2、PythonPython是一门多功能的语言。数据统计是更多是通过第三方包来实现的。在数据分析、海量的数据统计、以及提供互动化的数据分析,动态的缩放图表等综合功能最强大的。但是这些功能分散在第三方库里面,没有得到有机的整合,相应的学习成本会较高。python与R相比速度要快。python可以直接处理上G的数据;R不行,R分析数据时需要先通过数据库把大数据转化为小数据(通过groupby)才能交给R做分析,因此R不可能直接分析行为详单,只能分析统计结果。Python的优势在于其胶水语言的特性,一些底层用C写的算法封装在python包里后性能非常高效(Python的数据挖掘包Orangecanve中的决策树分析50万用户10秒出结果,用R几个小时也出不来,8G内存全部占满)。3、MATLAB作为机器学习、模式识别等方面经常使用的工具,MATLAB在实现机器学习算法时要比Python或者NumPy更加自然。很多高校也在计算机科学相关的课程中教授MATLAB语言,易学易用。然而,MATLAB也存在很多的缺点:价格昂贵、非开源、性能表现平平、语法不符合程序员的习惯等。例如,MATLAB中矩阵乘积运算操作为X.dot(Y),而Python为X@W,更加简洁、明了。MATLAB的性能比Python、Go、Java等语言要差很多。4、JAVA在大数据框架中,Mahout(在印地语中意思是“大象骑士”)包含几种常见的机器学习方法。这款软件包是围绕算法而非方法,所以需要有一定的算法基础,其各部分功能是整合在一起的,比如基于用户的推荐系统。另一个基于Hadoop的机器学习项目是Cloudera公司推行的Oryx,其特性在于通过交付实时流结果而非处理批量作业来对Mahout处理结果进行进一步分析。该该项目现在还处于初始阶段,这只是个项目而非实际产品,但它在不断改善,所以很值得关注。除了上述主要针对Hadoop的Mahout,其他一些面向Java的机器学习库也在广泛使用。Weka由新西兰怀卡托大学开发的工作台式的应用,它在常见的算法集合中增加了可视化和数据挖掘功能。对于那些想要为他们的工作打造一个前端或者计划将Java作为初始开发的用户来说,Weka可能是最好的选择。Java-ML也不错,但它更适合那些已经习惯将Java和机器学习配合使用的开发者。5、WEKAWEKA是一个数据挖掘工作平台,为用户提供数一系列据挖掘全过程的API、命令行和图形化用户接口。可以准备数据、可视化、建立分类、进行回归分析、建立聚类模型,同时可以通过第三方插件执行其他算法。6、Go谷歌的系统语言,由于其并行设计,使其似乎是一个编写机器学习库理想的环境。虽然目前与之相关的库项目规模尚小,但也有一些值得关注,GoLearn,它的开发者将其描述为一个“内置电池”的机器学习库。它提供过滤、分类以及回归分析等多种工具。另一套较小且更为基础的库是mlgo,虽然目前它能提供的算法数量还非常少,但计划在未来推出更多。7、JavaScript关于JavaScript,原意是这样的,任何能够由JavaScript编写的内容最终都会由JavaScript编写,这对机器学习库同样适用。目前由JavaScript编写的方案在这一领域数量仍然相对较少,大多数选项仅仅是单一算法而非完整的库,但已经有部分有用工具渐渐脱颖而出。ConvNetJS允许大家直接在浏览器当中进行深度学习神经网络培训,而名为brain则将神经网络作为可安装的NPM模块提供给大家。此外,Encog库同样值得关注,而且它适用于多种平台:Java、C#、C/C++以及JavaScript。