机器学习------平台和语言选择

机器学习语言

一、机器学习常用的编程语言有哪些?
机器学习(Machine
Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、
凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以 获取新的知识或技能,
重新组织已有的知识结构使之不断改善自身的性能。 它是人工智能的 核心, 是使计算机具有智能的根本途径, 其应用遍及人工智能的各个领域,
它主要使用归纳、 综合而不是演绎。 目前机器学习语言主要有:R 语言,Python,MATLAB、JAVA、WEKA、GO、JavaScript
等。

二、各个语言在机器学习方面的优缺点:
1、R 语言
R 语言是一个开发环境,采用一种近似于 Lisp
的脚本语言。在这个库中,所有与统计相 关的功能都通过 R 语言提供, 包括一些复杂的图标。 CRAN(可以认为是机器学习的第三方包)
中的机器学习目录下的代码, 是由统计技术方法和其他相关领域中的领军人物编写的。 如果 做实验,或是快速拓展知识,R 语言都是必须学习的。R
的优势在于有包罗万象的统计函数 可以调用,特别是在时间序列分析方面(主要用在金融分析与趋势预测)无论是经典还是前
沿的方法都有相应的包直接使用;相比 python 在这方面贫乏不少。缺点是在处理大数据方 面,性能和速度低下。

2、Python
Python
是一门多功能的语言。数据统计是更多是通过第三方包来实现的。在数据分析、
海量的数据统计、以及提供互动化的数据分析,动态的缩放图表等综合功能最强大的。但是
这些功能分散在第三方库里面,没有得到有机的整合,相应的学习成本会较高。python 与 R 相比速度要快。python 可以直接处理上 G
的数据;R 不行,R 分析数据时需要先通过数据库 把大数据转化为小数据(通过 groupby)才能交给 R 做分析,因此 R
不可能直接分析行为详 单,只能分析统计结果。Python 的优势在于其胶水语言的特性,一些底层用 C 写的算法封 装在 python
包里后性能非常高效(Python 的数据挖掘包 Orange canve 中的决策树分析 50 万 用户 10 秒出结果,用 R
几个小时也出不来,8G 内存全部占满)。

3、MATLAB
作为机器学习、模式识别等方面经常使用的工具,MATLAB
在实现机器学习算法时要比 Python 或者 NumPy 更加自然。很多高校也在计算机科学相关的课程中教授 MATLAB 语言,
易学易用。然而,MATLAB 也存在很多的缺点:价格昂贵、非开源、性能表现平平、语法不 符合程序员的习惯等。 例如, MATLAB
中矩阵乘积运算操作为 X.dot(Y) , 而 Python 为 [email protected] , 更加简洁、明了。MATLAB 的性能比
Python、Go、Java 等语言要差很多。

4、JAVA
在大数据框架中,Mahout(在印地语中意思是“大象骑士”)包
含几种常见的机器学 习方法。这款软件包是围绕算法而非方法,所以需要有一定的算法基础,其各部分功能是整 合在一起的,比如基于用户的推荐系统。
另一个基于 Hadoop 的机器学习项目是 Cloudera 公司推行的 Oryx, 其特性在于通过交付 实时流结果而非处理批量作业来对
Mahout 处理结果进行进一步分析。 该该项目现在还处于 初始阶段,这只是个项目而非实际产品,但它在不断改善,所以很值得关注。

除了上述主要针对 Hadoop 的 Mahout, 其他一些面向 Java 的机器学习库也在广泛使用。 Weka
由新西兰怀卡托大学开发的工作台式的应用,它在常见的算法集合中增加了可视化和 数据挖掘功能。对于那些想要为他们的工作打造一个前端或者计划将
Java 作为初始开发的 用户来说,Weka 可能是最好的选择。Java-ML 也不错,但它更适合那些已经习惯将 Java 和
机器学习配合使用的开发者。

5、WEKA
WEKA 是一个数据挖掘工作平台,为用户提供数一系列据挖掘全过程的 API、命令行和 图形化用户接口。可以准备数据、可视化、建立分类、进行回归分析、建立聚类模型,同时 可以通过第三方插件执行其他算法。

6、Go

歌的系统语言,由于其并行设计,使其似乎是一个编写机器学习库理想的环境。虽然 目前与之相关的库项目规模尚小,但也有一些值得关注,
GoLearn,它的开发者将其描述为 一个“内置电池”的机器学习库。它提供过滤、分类以及回归分析等多种工具。另一套较小 且更为基础的库是
mlgo,虽然目前它能提供的算法数量还非常少,但计划在未来推出更多。

7、JavaScript
关于 JavaScript,
原意是这样的, 任何能够由 JavaScript 编写的内容最终都会由 JavaScript 编写,这对机器学习库同样适用。目前由
JavaScript 编写的方案在这一领域数量仍然相对较 少,大多数选项仅仅是单一算法而非完整的库,但已经有部分有用工具渐渐脱颖而出。
ConvNetJS 允许大家直接在浏览器当中进行深度学习神经网络培训,而名为 brain 则将神经 网络作为可安装的 NPM
模块提供给大家。此外,Encog 库同样值得关注,而且它适用于多 种平台:Java、C#、C/C++以及 JavaScript。

三:相关回答:

1. 机器学习,无非就是提取特征,然后分类,而这其中的大部分在opencv里已经集成了,所以你有必要先学习一下opencv这一开源库,强大而简洁。关于入门的资料,你可以看一下csdn的浅墨的文章。他的博客地址http://blog.csdn.net/poem_qianmo?viewmode=contents,这也是我oepncv入门的资料,共十八课,踏踏实实的跟着坐下来,应该是能入门了,如果不够,可以买他写的书,及我大爱的一本《深入理解opencv》。

2. 关于机器学习,有那么一本书《机器学习实战》,是用python写的,个人觉得很好,不仅简单的写了下常用机器学习算法的原理,而且有代码。python要是不熟悉的话,可以现学现卖,如果你之前学过任何一门语言,那么python学习就会比较简单,现在在搞深度学习框架,很多框架的都提供了python的接口,python是一门愈来愈热的语言,有必要学习。

3. 关于视频分析,我从我从事的智能监控方面来讲一下,其实就是图像的处理,首先要提取视频中的运动物体,常用算法有:帧差法,GMM,vibe等;提取前景(运动物体)后对其进行跟踪,跟踪的主要算法有:camshift,粒子滤波,TLD,压缩感知等;以及之后对监控视频的去模糊,去雾,夜视增强,行人检测,车牌检测,上下身颜色识别,人车分类、视频浓缩,不过这些,都可基于opencv来实现。

4. 机器学习的分支,深度学习,也就是深度神经网络是近来比较火热的领域,很多机器学习实现的功能很难用到商用中,比如人脸识别,传统的机器学习方法受光照,角度干扰太大,很难达到较好的识别率,深度学习在图像中的应用已经有很多了。这里介绍几个框架,也是目前我在用的,伯克利的caffe,以及谷歌的tensorflow,当然这应该是你完成上述前三部门的内容后,才该做的。

时间: 2024-08-04 15:53:03

机器学习------平台和语言选择的相关文章

Mahout机器学习平台之聚类算法详细剖析(含实例分析)

第一部分: 学习Mahout必须要知道的资料查找技能: 学会查官方帮助文档: 解压用于安装文件(mahout-distribution-0.6.tar.gz),找到如下位置,我将该文件解压到win7的G盘mahout文件夹下,路径如下所示: G:\mahout\mahout-distribution-0.6\docs 学会查源代码的注释文档: 方案一:用maven创建一个mahout的开发环境(我用的是win7,eclipse作为集成开发环境,之后在Maven Dependencies中找到相应

Google发布机器学习平台Tensorflow游乐场~带你玩神经网络(转载)

Google发布机器学习平台Tensorflow游乐场-带你玩神经网络 原文地址:http://f.dataguru.cn/article-9324-1.html> 摘要: 昨天,Google发布了Tensorflow游乐场.Tensorflow是Google今年推出的机器学习开源平台.而有了Tensorflow游乐场,我们在浏览器中就可以训练自己的神经网络,还有酷酷的图像让我们更直观地了解神经网络的工作原理.今 ... 网络 工具 机器学习 神经网络 Tensorflow 昨天,Google发

阿里云机器学习平台——PAI平台

在云栖TechDay第十五期活动上,阿里云iDST资深技术专家褚崴给大家带来了<阿里云机器学习平台>的分享,他以机器学习的概念入手展开了此次分享,演讲中他重点介绍了阿里云机器学习平台的基础架构和产品特点,并结合阿里内部的芝麻信用分.推荐系统等场景讲解了PAI平台的具体应用方案. 下文根据褚崴的演讲内容整理. 机器学习 图一 机器学习分类 机器学习简单来说就是,人教机器在我们积累的数据当中发现规律,然后能够辅助我们来做一些预测和决策. 机器学习笼统地讲可以分为三类: 1)有监督学习(superv

郭律: 论机器学习平台与人工智能的关系

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云AI中心发表于云+社区专栏 郭律,腾讯高级产品经理,腾讯云AI基础产品中心高级产品经理.解决方案架构师.主导腾讯智能钛TI-ONE(可视化机器学习平台)和TI-S(自动机器学习平台)两个产品的设计工作.从上海交通大学模式识别与智能系统专业博士毕业后,先后就职于IBM.普华永道从事IT架构.咨询方面的工作,对机器学习与金融.零售等业务场景的结合具有深刻理解,帮助学员掌握如何利用工具解决实际业务中面临的机器学习问题. 众所周知,

c语言 选择排序

选择排序 //    int array[] = {3, 2, 6, 9, 8, 5, 7, 1, 4}; //    int count = sizeof(array) / sizeof(array[0]); // //    for (int i = 0; i < count - 1; i++) { //        int minIndex = i; //        for (int j = minIndex + 1; j < count; j++) { //           

windows平台多语言显示

为了实现windows平台的多语言显示,即在不同系统语言(中英繁)环境下,正确显示不同配置语言(中英繁)的内容,做了一个测试工程.得出的结论是配置文件使用ucs2小端编码,工程使用unicode编码,涉及的类型使用TCHAR*相关类型,即可实现此需求. 配置文件的编码可以通过notepad++查看. 代码工程链接 windows平台多语言显示,布布扣,bubuko.com

方法与思想高于平台与语言

好久没写博客,最近经常看到关于.NET与java讨论的文章,有的文章被许多人认可,有的貌似引起了较大争议. 论Java,C# 二类开发的细节与思维 微软程序员最好的时代来了 .net 估计要死在你手里了 做为从事.NET.java等软件开发多年的开发人员,趁着新年元旦,在此也说说我个人的看法. 一.对.NET与java的一些个人肤浅体会 1. .NET与java比最大劣势,目前.NET大部分项目主要还是运行在windows系统上,windows收费,待公司走上正规.系统上规模之后就会自然弃用.N

安装RHEV平台KVM虚拟化选择——REHL还是RHEV?

现在,越来越多的用户考虑在IT环境中实施多种虚拟化hypervisor,开源成为不错的选择.基于内核的虚拟机KVM技术逐渐流行,它有世界最大的Linux提供商红帽支持并推广,还有IBM提供管理技术. 多数主流Linux版本现在都内置KVM,比如Red Hat Enterprise Linux(RHEL),或者将KVM作为独立hypervisor获取,例如Red Hat Enterprise Virtualization(RHEV).红帽的这两个方案都提供KVM虚拟化,但在管理.功能与实施中有重大

机器学习与R语言

此书网上有英文电子版:Machine Learning with R - Second Edition [eBook].pdf(附带源码) 评价本书:入门级的好书,介绍了多种机器学习方法,全部用R相关的包实现,案例十分详实,理论与实例结合. 目录 第一章 机器学习简介 第二章 数据的管理和理解 第三章 懒惰学习--使用近邻分类 第四章 概率学习--朴素贝叶斯分类 第五章 分而治之--应用决策树和规则进行分类 第六章 预测数值型数据--回归方法 第七章 黑箱方法--神经网络和支持向量机 第八章 探