机器学习相关Python库
- Tensorflow
- Keras
- Theano
- PyTorch
- LightGBM
- Numpy
- Pandas
- SciPy
- Scikits_Learn
- Eli5
Tensorflow
Tensorflow 框架主要由 Google 大脑团队开发,主要用于深度学习计算。几乎所有的 Google 机器学习应用都使用了它。比如在使用 Google 语音搜索或者 Google 相册时,你其实都是在间接地在使用 Tensorflow 所构建的模型。
Tensorflow 把神经网络运算抽象成运算图(Graph),一个运算图中包含了大量的张量(Tensor)运算。而张量实际上就是 N 维数据的集合。神经网络运算的本质是通过张量运算来拟合输入张量与输出张量之间的映射关系。
并行运算是 Tensorflow 的主要优势之一。也就是说你可以通过代码设置来分配你的 CPU、GPU 计算资源来实现并行化的图运算。
Tensorflow 框架中所有的工具库都是用 C 或者 C++ 来编写,但它提供了用 Python 来编写的接口封装。事实上,你用 Python 编写的神经网络模型最终会调用基于 C 和 C++ 编写的 Tensorflow 内核来执行运算。
Tensorflow 使用了类似 XLA(Accelerated Linear Algebra / 加速线性代数)等技术对运算过程进行过优化,以保证其能够灵活地调用计算资源的同时保持高效的运算速度。
Keras
Keras 被认为是最酷的 Python 深度学习库之一。如果你是深度学习开发方面的新手,那么非常建议你使用它。它提供了非常简明的机制来表达神经网络结构。它也提供了许多非常棒的工具用于神经网络模型的编译、数据的处理、以及网络结构的可视化等等。
Theano
Theano 是一个用于多维数组计算的 Python 运算框架。Theano 的工作原理与 Tensorflow 相似,但要比 Tensorflow 低效。因此它不适用于生产环境。
PyTorch
PyTorch 是最大的深度学习库,允许开发人员通过加速 GPU 执行张量计算,创建动态计算图,并自动计算梯度。 除此之外,PyTorch 还提供丰富的 API,用于解决与神经网络相关的应用问题。
这个深度学习库基于 Torch,这是一个用 C 语言实现的开源机器库,以 Lua 语言作了封装。与 Tensorflow 的区别在于 Tensorflow 用的是 “静态计算图” 的概念,而 PyTorch 用的是 “动态计算图” 的概念。最直观的感受是,用 PyTorch 来编写的神经网络模型代码更像常见的 Python 代码。PyTorch 是在 2017 年推出的,自成立以来,该库越来越受欢迎并吸引了越来越多的机器学习开发人员。
LightGBM
Gradient Boosting 是最好和最受欢迎的机器学习库之一,它通过使用重新定义的基本模型和决策树来帮助开发人员构建新算法。 因此,有专门的库被设计用于快速有效地实现该方法。这些库包括 LightGBM, XGBoost, 和 CatBoost。这些库互为竞争对手,同样使用了几乎相同的思路来解决一个共同问题。这些库都提供了高度可扩展,优化和快速的梯度增强实现,使其在机器学习开发人员中很受欢迎。 因为大多数机器学习开发人员通过使用这些算法赢得了机器学习竞赛。
Numpy
Numpy 是公认的最受欢迎的 Python 机器学习库之一。Tensorflow 以及其他的一些框架内部都使用了 Numpy 来对张量进行多种操作。数组接口是 Numpy 最佳及最重要的功能。这个接口可以用于把图像、音频、以及其他二进制流数据表示为多维实数数组。为了把这个库应用到机器学习中,掌握 Numpy 的操作对于开发者而言意义重大。
Pandas
Pandas 是一个 Python 机器学习库,它提供了各种高级的工具用于进行数据分析。其中一项了不起的功能便是它可以用一两行代码就能实现复杂的数据操作。Pandas 有许多内置的方法用于分组统计、合并数据、数据筛选、以及时间序列操作。所有的这些操作都有出色的性能表现。因此,使用 Pandas 通常用于数据挖掘任务。
SciPy
SciPy 是一个应用开发者与工程师们使用的机器学习库。然而,你需要知道的是 SciPy 库与 SciPy-Stack 的区别。SciPy 库是 SciPy-Stack 的一个子集。SciPy 库包含了优化器、线性代数、积分、插值、快速傅立叶变换、信号和图像处理、统计等子模块。所有子模块中的函数都有完整的文档说明,使用方便。
Scikits_Learn
Scikits-learn,又称为 sk-learn,是一个基于 Numpy 与 SciPy 的 Python 库。Sk-learn 被认为是用于处理复杂数据的最优秀的机器学习库之一。它包含了大量用于实现传统机器学习和数据挖掘任务的算法,比如数据降维、分类、回归、聚类、以及模型选择等。
随着时间的发展,sk-learn 不断演进。其中包括它加入了交叉验证功能,提供了使用多个衡量指标的能力。许多的训练方法都得到了一定的改进,如逻辑回归、近邻算法(KNN)等。
Eli5
通常,在机器学习任务中遇到的难题是模型的预测结果不准确。而用 Python 构建的 Eli5 机器学习库可以帮助攻克这个难题。它为现有的机器学习框架提供了若干内置的支持,比如模型数据可视化、模型调试、算法跟踪等,使得机器学习模型对于开发者而言不再是一个黑盒子。
来源:微信公众号--新智元
原文:https://hackernoon.com/top-10-libraries-in-python-to-implement-machine-learning-12602cf5dc61
机器学习网站资源
新闻资讯
- Analytics Vidhya: 为数据科学专业人员提供基于社区的知识门户
- Google News: Google News Machine learning
- MIT News: Machine learning | MIT News
- 17bigdata: 专注数据分析、挖掘、大数据相关领域的技术分享、交流
- 机器之心: 机器之心 | 全球人工智能信息服务
- 雷锋网: 雷锋网 | 读懂智能,未来
- 数据分析网: 数据分析网 - 大数据学习交流第一平台
- 知乎主题: 知乎机器学习热门主题
社区交流
- AIQ: 机器学习大数据技术社区
- DataTau: 人工智能领域的Hacker News
- MathOverflow: 数学知识问答社区
- Medium: 一个涵盖人工智能、机器学习和深度学习相关领域的自由、开放平台
- PaperWeekly: 一个推荐、解读、讨论和报道人工智能前沿论文成果的学术平台
- Quora: Quora | 机器学习主题
- Reddit: Reddit | 机器学习板块
- ShortScience: 用最简单的篇幅去概况科学著作
- Twitter: Twitter | 机器学习论文版块
- 极智能: 人工智能技术社区
优质博文
- handong1587: 深度学习各个方向资源汇总,及各大顶级会议/期刊资源
- Machine Learning Mastery: 帮助开发人员使用机器学习的知识解决复杂的问题
- Stats and Bots - Medium: 机器学习应用程序和代码的实用指南
- tornadomeet的博客: 很详细的ML&DL学习博客
- 爱可可-爱生活: 知名互联网资讯博主
- 超智能体: 分享最通俗易懂的深度学习教程
- 人工智能笔记: 人工智能从入门到AI统治世界
论文检索
- arXiv: 康奈尔大学运营的学术预印本发布的平台
- Arxiv Sanity: 论文查询推荐
- GitXiv: arXiv的成果开源实现平台
- Papers with Code: 将论文与开源代码实现结合
- Sci-hub: 找论文必备
- 猫咪论文: 简单自由的论文下载平台
比赛实践
- DataCastle: 中国领先的数据科学竞赛平台
- DataFountain: DF,CCF指定专业大数据竞赛平台
- Kaggle: 为数据科学家提供举办机器学习竞赛
- KDD-CUP: 国际知识发现和数据挖掘竞赛
- 滴滴新锐: 滴滴面向全球高校博士、硕士、优秀本科生的精英人才计划
- 赛氪网: 汇集以高校竞赛为主,活动、社区为辅的大学生竞赛活动平台
- 天池大数据: 大数据竞赛、大数据解决方案、数据科学家社区、人工智能、机器学习
课程学习
- fast.ai: Making neural nets uncool again
- liuyubobobo: Python3 入门机器学习
- Metacademy: 知识点检索并画出通向这个知识点的知识图谱
- Two Minute Papers: YouTube | 最简短的语言概况最新的热点论文
- 3Blue1Brown: YouTube | 数学基础频道
- 机器学习速成课程: Google制作的节奏紧凑、内容实用的机器学习简介课程
- 林轩田: 机器学习基石
- 林轩田: 机器学习技法
- 吴恩达: 机器学习课程
- 吴恩达: 深度学习课程
开源资源
- awesome-machine-learning-cn: 机器学习资源大全中文版,包括机器学习领域的框架、库以及软件
- Coursera-ML-AndrewNg-Notes: 吴恩达老师的机器学习课程个人笔记
- daily-paper-computer-vision: 记录每天整理的计算机视觉/深度学习/机器学习相关方向的论文
- deeplearning_ai_books: 吴恩达老师的深度学习课程笔记及资源
- Machine Learning、Deep Learning: ML&DL资料
- MachineLearning_Python: 机器学习算法python实现
- ml_tutorials: 机器学习相关教程
- 周志华 - 机器学习: 周志华《机器学习》笔记
开源书籍
- deeplearningbook-chinese: 深度学习中文版
- hands_on_Ml_with_Sklearn_and_TF: Sklearn与TensorFlow机器学习实用指南
- Neural Networks and Deep Learning: 深度学习开源书籍
- Neural Networks and Deep Learning: 深度学习开源书籍 - 中文
- 机器学习实战: Machine Learning in Action(机器学习实战)
- 简单粗暴TensorFlow: 本手册是一篇精简的TensorFlow入门指导
名库文档
- Caffe: 一个基于表达式,速度和模块化原则创建的深度学习框架
- Caffe2: Caffe2官方文档
- Chainer: 基于Python的独立的深度学习模型开源框架
- CNTK: CNTK官方文档
- DeepLearning4j: 基于JAVA和Scala的商业级开源分布式深度学习框架
- Gensim: 包含可扩展的统计语义,分析纯文本文档的语义结构,以及检索相似语义的文档等功能
- Keras: Keras官方文档
- Matplotlib: Matplotlib官方文档
- MXNet: MXNet官方文档
- Neon: Nervana公司一个基于Python的深度学习库
- NumPy: NumPy官方文档
- pandas: pandas官方文档
- PyBrain: 一个模块化的Python机器学习库
- Pylearn2: 构建于Theano之上的机器学习库
- PyTorch: PyTorch官方文档
- Seaborn: Seaborn官方文档
- scikit-learn: scikit-learn官方文档
- Statsmodels: 用来探索数据,估计统计模型,进行统计测试
- TensorFlow: TF官方文档
- Theano: 允许高效地定义、优化以及评估涉及多维数组的数学表达式
来源:微信公众号--CVer & 量子位
原文:Github开源项目--mlhub123