选自freecodecamp
机器之心编译
随着行业内机器学习的崛起,能够帮用户快速迭代整个过程的工具变得至关重要。Python,机器学习技术领域冉冉升起的一颗新星,往往是带你走向成功的首选。因此,用 Python 实现机器学习的指南是非常必要的。
用 Python 实现机器学习的介绍
那么为什么是 Python 呢据我的经验,Python 是最容易学习的编程语言之一。现在需要快速迭代整个过程,与此同时,数据科学家不需要深入了解这种语言,因为他们可以快速掌握它。
有多容易呢/p>
就这么容易。Python 的语法和英语(或人类语言,而不是机器语言)语法关系密切。在 Python 的语法中没有愚蠢的大括 造成的困扰。我有一个从事质量保证(Quality Assurance)工作的同事,虽然不是软件工程师,但她可以在一天内写出产品级的 Python 代码。(真的!)
我将在下文中介绍几个基于 Python 的库。作为数据分析师和数据科学家,我们可以利用他们的杰作来帮助我们完成任务。这些不可思议的库是用 Python 实现机器学习的必备工具。
NumPy
这是一个非常有名的数据分析库。从计算数据分布的中位数,到处理多维数组,NumPy 都可以帮你完成。
Pandas
这是用来处理 CSV 文件的。当然了,你还需要处理一些表格、查看统计数据等,那 Pandas 就是可以满足你的需求的工具。
Matplotlib
把数据存储在 Pandas 的数据框后,你可能需要做一些可视化来理解数据的更多信息。毕竟一图抵千言。
Seaborn
这是另一个可视化工具,但这个工具更侧重于统计结果的可视化,比如直方图、饼图、曲线图或相关性表等。
Scikit-Learn
这是用 Python 实现机器学习的终极工具。所谓用 Python 实现机器学习指的就是这个——Scikit-Learn。所有你需要的从算法到提升的内容都能在这里找到。
Tensorflow 和 Pytorch
针对这两个工具我不会说太多。但如果你对深度学习感兴趣的话,可以详细了解一下,它们值得你花时间去学习。(我下次会再写一篇关于深度学习的教程,敬请期待!)
Kaggle 是一个可以直接研究数据的平台。你可以在这个平台中解决一些项目,并达到真的擅长机器学习的地步。你可能更感兴趣另外一些东西——Kaggle 举办的机器学习竞赛,奖金高达 100,000 美元。你可能会想着碰碰运气,哈哈。
Kaggle:https://www.kaggle.com/
但最重要的并不是钱——你真的可以在这里找到用 Python 实现的机器学习项目。你可以试着完成很多项目。但如果你是个新手,你可能会想参加这项竞赛。
我们将在后面的教程中用到一个示例项目:
泰坦尼克:从灾难中进行机器学习(https://www.kaggle.com/c/titanic)
这就是众所周知的泰坦尼克 。这是一场发生在 1912 年的灾难,这场灾难波及到的乘客和机组成员共 2224 人,其中 1502 人遇难死亡。这项 Kaggle 竞赛(或者说是教程)提供了灾难中的真实数据。你的任务是解释这些数据,并预测出灾难中哪些人会活下来,哪些人不会。
用 Python 实现机器学习的教程
在深入了解泰坦尼克 的数据之前,我们要先安装一些必需的工具。
首先当然是 Python。第一次安装 Python 需要从官 上安装。你要安装 3.6 以上的版本,这样才能跟最新版本的库保持同步。
Python 官方 站:https://www.python.org/downloads/
然后可以用 Python 的 pip 安装所有的库。你刚刚下载的 Python 发行版会自动安装 pip。
需要的其他工具都可以用 pip 安装。打开终端、命令行或 PowerShell,命令如下:
看起来一切都运行良好。但是等一下,什么叫 jupyterupyter 表示 Julia、Python 和 R,因此它实际上是 Jupytr。但这个单词看起来太奇怪了,所以他们把它变成了 Jupyter。这是一个很有名的笔记本,你可以在这个笔记本上写交互式的 Python 代码。
只要在终端中输入 jupyter notebook,就可以打开如下图所示的浏览器页面:
这就是我们的数据。它有下面几列:
-
PassengerId,乘客的标识符;
-
Survived,他(她)是否存活了下来;
-
Pclass,舱室类别,也许 1 表示经济舱,2 表示商务舱,3 表示头等舱;
-
Name,乘客的名字;
-
Sex,性别;
-
Age,年龄;
-
SibSp,即兄弟姐妹(siblings)或配偶(spouses),表示在船上的兄弟姐妹以及配偶的数目;
-
Parch,即父母(Parents)或子女(Children),表示在船上的父母和子女的数目;
-
Ticket,船票详情;
-
Cabin,舱 ,NaN 表示未知;
-
Embarked,登船的起始地,S 表示南安普顿(Southampton),Q 表示皇后镇(Queenstown),C 表示瑟堡(Cherbourg)
在探索数据时,常常会遇到数据缺失的问题。我们来看一下
我们会看到这样的结果:
完美!没有任何缺失数据了!这表示数据已经清理干净了。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!