在过去,神谕和魔法师被认为拥有发现奥秘的力量,国王和统治者们会借助他们预测未来,或者至少是听取一些建议。如今我们生活在一个痴迷于将一切事情量化的社会里,这份工作就交给数据科学家了。
数据科学家通过使用统计模型、数值分析,以及统计学之外的高级算法,结合数据库里已经存在的数据,去发掘、推断和预测尚不存在的数据(有时是关于未来的数据)。这就是为什么我们要做这么多的预测分析和规划分析。
下面是一些可以借助数据科学家回答的问题:
哪些学生有旷课倾向?每个人旷课的原因分别是什么?
哪栋房子的售价比合理价格要高或者低?一栋房子的合理价格是多少?
如何将我们的客户按照潜在的特质进行分组?
这个孩子的早熟可能会在未来引发什么问题?
我们的呼叫中心在明天早上 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'