AYE89

coding & learning

导航

机器学习常用开发工具【转】

Posted on 2017-08-17 17:18  AYE89  阅读(625)  评论(0编辑  收藏  举报

原文地址:http://blog.csdn.net/sileixinhua/article/details/73611056

机器学习常用开发工具

scikit-learn

http://scikit-learn.org/stable/

建立在NumPy,SciPy和matplotlib上,Python中的机器学习库,简单高效的数据挖掘和数据分析工具。

功能有分类(SVM,nearest neighbors,random forest等),回归(SVR, ridge regression, Lasso等),聚类(k-Means, spectral clustering, mean-shift等),降维(PCA, feature selection, non-negative matrix factorization等),选择模型(grid search, cross validation, metrics等),预处理(preprocessing, feature extraction等)。

OpenCV(图像处理与毕业论文大杀器)

http://opencv.org/

OpenCV具有C ++,C,Python和Java接口,并支持Windows,Linux,Mac OS,iOSAndroid。 
opencv专为计算效率而设计,并强调实时应用。 
以优化的C / C ++编写,库可以利用多核处理。 
通过OpenCL启用,可以利用底层异构计算平台的硬件加速。 
OpenCV已经通过世界各地的用户社区超过4.7万人,估计下载量超过1400万。 
使用范围从互动艺术,到矿山检查,在网上缝合地图或通过先进的机器人。

http://blog.csdn.net/sileixinhua/article/details/72810858 
使用OpenCV,40行代码检测人脸图像。

tensorflow

https://www.tensorflow.org/

TensorFlow™是使用数据流图进行数值计算的开源软件库。 
图中的节点表示数学运算,而图形边缘表示在它们之间传递的多维数据阵列(张量)。 
灵活的架构允许您使用单个API将计算部署到桌面,服务器或移动设备中的一个或多个CPU或GPU。 
TensorFlow用于进行机器学习和深层神经网络研究,但该系统普遍足以适用于各种其他领域。

caffe

http://caffe.berkeleyvision.org/

Caffe是一个深度学习框架,特点为速度和模块化。

http://demo.caffe.berkeleyvision.org/ 
cffe官方一个分类器的demo,可以上传照片然后查看分类结果

pyTouch

http://pytorch.org/

PyTorch是一个深度学习框架,将Python放在首位。

近年来PyTorch热度上升,值得学习。

Java-ML

http://java-ml.sourceforge.net/

Java-ML简而言之,机器学习算法的集合,有每种算法的公共接口和类型,主要针对软件工程师和程序员,所以没有GUI,但界面清晰,良好的源代码。,大量的代码示例和教程。

如果你实际开发环境是java的话比较推荐。

Spark

http://spark.apache.org/

Apache Spark是用于大规模数据处理的快速和通用引擎。 
运行程序比Hadoop MapReduce在内存中快100倍,或者在磁盘上运行速度要快10倍。 
在Java,Scala,Python,R中快速编写应用程序。 
结合SQL,流式传输和复杂分析。 
Sparkhadoop,Mesos,独立或云端运行。 它可以访问不同的数据源,包括HDFS,Cassandra,Hbase和S3。

NumPy,pandas,matplotlib

NumPy是使用Python进行科学计算的基础软件包。 
强大的N维数组对象,复杂(广播)功能,用于集成C / C ++和Fortran代码的工具,有用的线性代数,傅里叶变换和随机数能力。

pandas为Python编程语言提供高性能,易于使用的数据结构和数据分析工具。

Matplotlib是一个Python 2D绘图库,可以跨平台生成各种硬拷贝格式和交互式环境的出版品质量图。 Matplotlib可用于Python脚本,Python和IPython shell,jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。

keras

https://keras.io/

Keras是一种高级神经网络API,用Python编写,能够运行在TensorFlow,CNTK或Theano之上。 
开发重点是实现快速实验。能够从想法到结果尽可能快速的实现。 
允许简单快速的原型(通过用户友好,模块化和可扩展性)。 
支持卷积网络和递归网络,以及两者的组合。 
在CPU和GPU上无缝运行。

theano

http://deeplearning.net/software/theano/

Theano是一个Python库,定义,优化和评估涉及多维数组的数学表达式。 
与NumPy紧密集成 - 在Theano编译的函数中使用numpy.ndarray。 
透明使用GPU - 执行数据密集型计算比在CPU上快得多。 
有效的象征性差异 - Theano用一个或多个投入为衍生工具做功能。 
速度和稳定性优化 - 即使x很小,也能为日志(1 + x)找到正确的答案。 
动态C代码生成 - 更快地评估表达式。 
广泛的单元测试和自我验证 - 检测和诊断许多类型的错误。

NLTK

http://www.nltk.org/

NLTK是构建Python程序以处理人类语言数据的领先平台。 
它为超过50种语料库和词汇资源(如WordNet)提供易于使用的界面, 
以及一套用于分类,标记化,词根,标记,解析和语义推理的文本处理库,可用于工业级应用。

jieba

https://pypi.python.org/pypi/jieba/

“结巴”中文分词:做最好的 Python 中文分词组件。

Storm

http://storm.apache.org/

最火的流式处理框架。 
Storm可以轻松地可靠地处理无限流数据,实时处理Hadoop对批处理的处理。 
可用于实时分析,在线机器学习,连续计算,分布式RPC,ETL等。

Julia/R

https://julialang.org/

https://www.r-project.org/

Julia是数字计算中高性能动态编程语言。 
它提供了一个复杂的编译器,可以分布式并行执行,高精度数字和广泛的数学函数库。 
Julia的基础库主要用于Julia本身,还集成了成熟的,最好的开源C和Fortran库,用于线性代数,随机数生成,信号处理和字符串处理。 
此外,Julia开发人员社区正在通过Julia的内置软件包管理器快速提供一些外部软件包。 
Jupyter和Julia社区合作的IJulia为Julia提供了强大的基于浏览器的图形笔记本界面。

R是用于统计计算和图形的免费软件环境。 它可以在各种UNIX平台(Windows和MacOS)上编译和运行。

Weka

http://www.cs.waikato.ac.nz/ml/weka/

Weka是数据挖掘任务的机器学习算法的集合。 
这些算法可以直接应用于数据集,也可以从您自己的Java代码中调用。 
Weka包含用于数据预处理,分类,回归,聚类,关联规则和可视化的工具。