原文地址: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(图像处理与毕业论文大杀器)
OpenCV具有C ++,C,Python和Java接口,并支持Windows,Linux,Mac OS,iOS和Android。
opencv专为计算效率而设计,并强调实时应用。
以优化的C / C ++编写,库可以利用多核处理。
通过OpenCL启用,可以利用底层异构计算平台的硬件加速。
OpenCV已经通过世界各地的用户社区超过4.7万人,估计下载量超过1400万。
使用范围从互动艺术,到矿山检查,在网上缝合地图或通过先进的机器人。
http://blog.csdn.net/sileixinhua/article/details/72810858
使用OpenCV,40行代码检测人脸图像。
tensorflow
TensorFlow™是使用数据流图进行数值计算的开源软件库。
图中的节点表示数学运算,而图形边缘表示在它们之间传递的多维数据阵列(张量)。
灵活的架构允许您使用单个API将计算部署到桌面,服务器或移动设备中的一个或多个CPU或GPU。
TensorFlow用于进行机器学习和深层神经网络研究,但该系统普遍足以适用于各种其他领域。
caffe
http://caffe.berkeleyvision.org/
Caffe是一个深度学习框架,特点为速度和模块化。
http://demo.caffe.berkeleyvision.org/
cffe官方一个分类器的demo,可以上传照片然后查看分类结果
pyTouch
PyTorch是一个深度学习框架,将Python放在首位。
近年来PyTorch热度上升,值得学习。
Java-ML
http://java-ml.sourceforge.net/
Java-ML简而言之,机器学习算法的集合,有每种算法的公共接口和类型,主要针对软件工程师和程序员,所以没有GUI,但界面清晰,良好的源代码。,大量的代码示例和教程。
如果你实际开发环境是java的话比较推荐。
Spark
Apache Spark是用于大规模数据处理的快速和通用引擎。
运行程序比Hadoop MapReduce在内存中快100倍,或者在磁盘上运行速度要快10倍。
在Java,Scala,Python,R中快速编写应用程序。
结合SQL,流式传输和复杂分析。
Spark在hadoop,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
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
NLTK是构建Python程序以处理人类语言数据的领先平台。
它为超过50种语料库和词汇资源(如WordNet)提供易于使用的界面,
以及一套用于分类,标记化,词根,标记,解析和语义推理的文本处理库,可用于工业级应用。
jieba
https://pypi.python.org/pypi/jieba/
“结巴”中文分词:做最好的 Python 中文分词组件。
Storm
最火的流式处理框架。
Storm可以轻松地可靠地处理无限流数据,实时处理Hadoop对批处理的处理。
可用于实时分析,在线机器学习,连续计算,分布式RPC,ETL等。
Julia/R
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包含用于数据预处理,分类,回归,聚类,关联规则和可视化的工具。