尝试使用 Python 掌握机器学习、人工智能和深度学习。
想要入门机器学习并不难。除了 大规模网络公开课 Massive Open Online Courses (MOOC)之外,还有很多其它优秀的免费资源。下面我分享一些我觉得比较有用的方法。
Python 是机器学习和人工智能方面的最佳语言吗?
除非你是一名专业的研究一些复杂算法纯理论证明的研究人员,否则,对于一个机器学习的入门者来说,需要熟悉至少一种高级编程语言。因为大多数情况下都是需要考虑如何将现有的机器学习算法应用于解决实际问题,而这需要有一定的编程能力作为基础。
哪一种语言是数据科学的最佳语言?这个讨论一直没有停息过。对于这方面,你可以提起精神来看一下 FreeCodeCamp 上这一篇关于数据科学语言的文章,又或者是 KDnuggets 关于 Python 和 R 之争的深入探讨。
目前人们普遍认为 Python 在开发、部署、维护各方面的效率都是比较高的。与 Java、C 和 C++ 这些较为传统的语言相比,Python 的语法更为简单和高级。而且 Python 拥有活跃的社区群体、广泛的开源文化、数百个专用于机器学习的优质代码库,以及来自业界巨头(包括 Google、Dropbox、Airbnb 等)的强大技术支持。
基础 Python 库
如果你打算使用 Python 实施机器学习,你必须掌握一些 Python 包和库的使用方法。
NumPy
NumPy 的完整名称是 Numerical Python,它是 Python 生态里高性能科学计算和数据分析都需要用到的基础包,几乎所有高级工具(例如 Pandas 和 scikit-learn)都依赖于它。TensorFlow 使用了 NumPy 数组作为基础构建块以支持 Tensor 对象和深度学习的图形流。很多 NumPy 操作的速度都非常快,因为它们都是通过 C 实现的。高性能对于数据科学和现代机器学习来说是一个非常宝贵的优势。
Pandas
Pandas 是 Python 生态中用于进行通用数据分析的最受欢迎的库。Pandas 基于 NumPy 数组构建,在保证了可观的执行速度的同时,还提供了许多数据工程方面的功能,包括:
- 对多种不同数据格式的读写操作
- 选择数据子集
- 跨行列计算
- 查找并补充缺失的数据
- 将操作应用于数据中的独立分组
- 按照多种格式转换数据
- 组合多个数据集
- 高级时间序列功能
- 通过 Matplotlib 和 Seaborn 进行可视化
Matplotlib 和 Seaborn
数据可视化和数据分析是数据科学家的必备技能,毕竟仅凭一堆枯燥的数据是无法有效地将背后蕴含的信息向受众传达的。这两项技能对于机器学习来说同样重要,因为首先要对数据集进行一个探索性分析,才能更准确地选择合适的机器学习算法。
Matplotlib 是应用最广泛的 2D Python 可视化库。它包含海量的命令和接口,可以让你根据数据生成高质量的图表。要学习使用 Matplotlib,可以参考这篇详尽的文章。
Seaborn 也是一个强大的用于统计和绘图的可视化库。它在 Matplotlib 的基础上提供样式灵活的 API、用于统计和绘图的常见高级函数,还可以和 Pandas 提供的功能相结合。要学习使用 Seaborn,可以参考这篇优秀的教程。
Scikit-learn
Scikit-learn 是机器学习方面通用的重要 Python 包。它实现了多种分类、回归和聚类算法,包括支持向量机、随机森林、梯度增强、k-means 算法和 DBSCAN 算法,可以与 Python 的数值库 NumPy 和科学计算库 SciPy 结合使用。它通过兼容的接口提供了有监督和无监督的学习算法。Scikit-learn 的强壮性让它可以稳定运行在生产环境中,同时它在易用性、代码质量、团队协作、文档和性能等各个方面都有良好的表现。可以参考这篇基于 Scikit-learn 的机器学习入门,或者这篇基于 Scikit-learn 的简单机器学习用例演示。
本文使用 CC BY-SA 4.0 许可,在 Heartbeat 上首发。
via: https://opensource.com/article/18/10/machine-learning-python-essential-hacks-and-tricks
作者:Tirthajyoti Sarkar 选题:lujun9972 译者:HankChow 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出