在 Fedora 上搭建 Jupyter 和数据科学环境

在过去,神谕和魔法师被认为拥有发现奥秘的力量,国王和统治者们会借助他们预测未来,或者至少是听取一些建议。如今我们生活在一个痴迷于将一切事情量化的社会里,这份工作就交给数据科学家了。

数据科学家通过使用统计模型、数值分析,以及统计学之外的高级算法,结合数据库里已经存在的数据,去发掘、推断和预测尚不存在的数据(有时是关于未来的数据)。这就是为什么我们要做这么多的预测分析和规划分析。

下面是一些可以借助数据科学家回答的问题:

哪些学生有旷课倾向?每个人旷课的原因分别是什么?

哪栋房子的售价比合理价格要高或者低?一栋房子的合理价格是多少?

如何将我们的客户按照潜在的特质进行分组?

这个孩子的早熟可能会在未来引发什么问题?

我们的呼叫中心在明天早上 11 点 43 分会接收到多少次呼叫?

我们的银行是否应该向这位客户发放贷款?

请注意,这些问题的答案是在任何数据库里都查询不到的,因为它们尚不存在,需要被计算出来才行。这就是我们数据科学家从事的工作。

在这篇文章中你会学习如何将 Fedora 系统打造成数据科学家的开发环境和生产系统。其中大多数基本软件都有 RPM 软件包,但是最先进的组件目前只能通过 Python 的 pip 工具安装。

Jupyter IDE

大多数现代数据科学家使用 Python 工作。他们工作中很重要的一部分是 探索性数据分析Exploratory Data Analysis(EDA)。EDA 是一种手动进行的、交互性的过程,包括提取数据、探索数据特征、寻找相关性、通过绘制图形进行数据可视化并理解数据的分布特征,以及实现原型预测模型。

Jupyter 是能够完美胜任该工作的一个 web 应用。Jupyter 使用的 Notebook 文件支持富文本,包括渲染精美的数学公式(得益于 mathjax)、代码块和代码输出(包括图形输出)。

Notebook 文件的后缀是 .ipynb,意思是“交互式 Python Notebook”。

搭建并运行 Jupyter

首先,使用 sudo 安装 Jupyter 核心软件包:

$ sudo dnf install python3-notebook mathjax sscg

你或许需要安装数据科学家常用的一些附加可选模块:

$ sudo dnf install python3-seaborn python3-lxml python3-basemap python3-scikit-image python3-scikit-learn python3-sympy python3-dask+dataframe python3-nltk

设置一个用来登录 Notebook 的 web 界面的密码,从而避免使用冗长的令牌。你可以在终端里任何一个位置运行下面的命令:

$ mkdir-p $HOME/.jupyter

$ jupyter notebook password

然后输入你的密码,这时会自动创建 $HOME/.jupyter/jupyter_notebook_config.json 这个文件,包含了你的密码的加密后版本。

接下来,通过使用 SSLby 为 Jupyter 的 web 服务器生成一个自签名的 HTTPS 证书:

$ cd $HOME/.jupyter; sscg

配置 Jupyter 的最后一步是编辑 $HOME/.jupyter/jupyter_notebook_config.json 这个文件。按照下面的模版编辑该文件:

{

"NotebookApp":{

"password":"sha1:abf58...87b",

"ip":"*",

"allow_origin":"*",

"allow_remote_access":true,

"open_browser":false,

"websocket_compression_options":{},

"certfile":"/home/aviram/.jupyter/service.pem",

"keyfile":"/home/aviram/.jupyter/service-key.pem",

"notebook_dir":"/home/aviram/Notebooks"

}

}

/home/aviram/ 应该替换为你的文件夹。sha1:abf58...87b 这个部分在你创建完密码之后就已经自动生成了。service.pem 和 service-key.pem 是 sscg 生成的和加密相关的文件。

接下来创建一个用来存放 Notebook 文件的文件夹,应该和上面配置里 notebook_dir 一致:

$ mkdir $HOME/Notebooks

你已经完成了配置。现在可以在系统里的任何一个地方通过以下命令启动 Jupyter Notebook:

$ jupyter notebook

或者是将下面这行代码添加到 $HOME/.bashrc 文件,创建一个叫做 jn 的快捷命令:

alias jn='jupyter notebook'

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/11941.html