参考:Ubuntu (Linux) Data Science Virtual Machine
本文档提供了 Ubuntu Data Science Virtual Machine (DSVM) 上可用工具的列表。
深度学习库
PyTorch
PyTorch 是一个常用的科学计算框架,广泛支持各种机器学习算法。 如果你的计算机具有内置 GPU,则它可以利用该 GPU 来加速深度学习。py38_pytorch
环境中提供了 PyTorch。
H2O
H2O 是一种快速的内存中分布式机器学习和预测分析平台。 根环境和 py35 Anaconda 环境中都安装有 Python 包。 同时也会安装 R 包。
若要从命令行打开 H2O,请运行 java -jar /dsvm/tools/h2o/current/h2o.jar
。 可以配置各种可用的命令行选项。 浏览到 Flow Web UI (http://localhost:54321
) 以开始使用。 JupyterHub 提供了示例笔记本。
TensorFlow
TensorFlow 是 Google 深度学习库。 它是使用数据流图进行数值计算的开源软件库。 如果你的计算机内置了 GPU,则它可以使用该 GPU 来加速深度学习。 TensorFlow 在 py38_tensorflow
conda 环境中可用。
Python
Data Science Virtual Machine (DSVM) 具有多个预安装的 Python 环境,其中 Python 版本为 3.8 或 Python 版本 3.6。 在终端窗口中运行 conda env list
,以查看已安装环境的完整列表。
Jupyter
DSVM 还附带了 Jupyter,后者是一种代码共享和代码分析环境。 Jupyter 通过以下方式安装在 DSVM 上:
- Jupyter Lab
- Jupyter 笔记本
- Jupyter 中心
若要启动 Jupyter Lab,请从应用程序菜单中打开 Jupyter,或选择桌面图标。 还可以从命令行运行 jupyter lab
以打开 Jupyter Lab。
若要打开 Jupyter 笔记本,请打开命令行并运行 jupyter notebook
。
若要打开 Jupyter Hub,请在浏览器中打开 https://<VM DNS 名称或 IP 地址>:8000/。 必须提供本地 Linux 用户名和密码。
注意
可以忽略任何证书警告。
注意
对于 Ubuntu 映像,默认情况下,在预配 VM 时会打开防火墙端口 8000。
Apache Spark 独立版
一个 Apache Spark 独立版实例已预装在 Linux DSVM 上,以帮助你在本地开发 Spark 应用程序,然后在大型群集上测试和部署这些应用程序。
可以通过 Jupyter 内核运行 PySpark 程序。 Jupyter 启动后,选择“新建”。 此时你应该可以看到可用内核的列表。 如果选择“Spark - Python”内核,则可以使用 Python 语言生成 Spark 应用程序。 还可以使用 Python IDE(例如 VS.Code 或 PyCharm)来生成 Spark 程序。
在此独立实例中,Spark 堆栈会在调用方客户端程序中运行。 与在 Spark 群集上进行开发相比,使用此功能可以更快、更轻松地排查问题。
IDE 和编辑器
有多个代码编辑器可供选择,其中包括 VS.Code、PyCharm、IntelliJ、vi/Vim 或 Emacs。
VS.Code、PyCharm 和 IntelliJ 是图形编辑器。 若要使用它们,需要登录到图形桌面。 可以使用桌面和应用程序菜单中的快捷方式打开它们。
Vim 和 Emacs 是基于文本的编辑器。 在 Emacs 上,ESS 附加包使用户在 Emacs 编辑器中使用 R 变得更容易。 有关详细信息,请访问 ESS 网站。
数据库
图形化 SQL 客户端
SQuirrel SQL 是一个图形化 SQL 客户端,可连接到各种数据库(如 Microsoft SQL Server 或 MySQL)和运行 SQL 查询。 打开 SQuirrel SQL 的最快方式是从图形桌面会话中使用应用程序菜单(例如通过 X2Go 客户端来这样做)
首次使用前,需要设置驱动程序和数据库别名。 可以在 /usr/share/java/jdbcdrivers 上找到 JDBC 驱动程序。
有关详细信息,请访问 SQuirrel SQL 资源。
用于访问 Microsoft SQL Server 的命令行工具
SQL Server 的 ODBC 驱动程序包还包含两个命令行工具:
- bcp:bcp 工具在 Microsoft SQL Server 实例与用户指定格式的数据文件之间批量复制数据。 可以使用 bcp 工具将大量新行导入 SQL Server 表,或者将表中的数据导出到数据文件。 要将数据导入表中,必须使用为该表创建的格式文件。 必须了解表的结构,以及对其列有效的数据类型。
有关详细信息,请访问使用 bcp 连接。
sqlcmd:可以使用 sqlcmd 工具输入 Transact-SQL 语句。 还可以在命令提示符下输入系统过程和脚本文件。 此工具使用 ODBC 运行 Transact-SQL 批处理。
有关详细信息,请访问使用 sqlcmd 连接。
注意
此工具在 Linux 和 Windows 平台版本之间存在差异。 有关详细信息,请查看文档。
数据库访问库
R 和 Python 库可用于数据库访问:
- 在 R 中,可以使用 RODBC dplyr 包在数据库服务器上查询或运行 SQL 语句
- 在 Python 中,pyodbc 库提供使用 ODBC 作为基础层的数据库访问
Azure 工具
这些 Azure 工具安装在 VM 上:
Azure CLI:可以使用 Azure 中的命令行接口通过 shell 命令创建和管理 Azure 资源。 若要打开 Azure 工具,请输入 azure help。 有关详细信息,请访问 Azure CLI 文档页。
Azure 存储资源管理器:Azure 存储资源管理器是一个图形工具,用于浏览在 Azure 存储帐户中存储的对象,以及将数据上传到 Azure Blob 和从中下载数据。 可通过桌面快捷方式图标访问存储资源管理器。 如果输入 StorageExplorer,则还可以从 shell 提示符打开此工具。 必须从 X2Go 客户端登录,或设置 X11 转发。
Azure 库:以下是一些预安装的库:
- Python:Python 提供 azure、azureml、pydocumentdb 和 pyodbc Azure 相关库。 使用前三个库,可以访问 Azure 存储服务、Azure 机器学习和 Azure Cosmos DB(Azure 上的 NoSQL 数据库)。 使用第 4 个库 pyodbc(以及 SQL Server 的 Microsoft ODBC 驱动程序),可通过 ODBC 接口从 Python 访问 SQL Server、Azure SQL 数据库和 Azure Synapse Analytics。 输入 pip list 可查看所有列出的库。 请确保在 Python 2.7 和 3.5 环境中运行此命令。
- R:Azure 机器学习和 RODBC 是 R 中的 Azure 相关库。
- Java:目录 /dsvm/sdk/AzureSDKJava 包含 Azure Java 库列表,可以在 VM 上的 /dsvm/sdk/AzureSDKJava 目录中找到。 密钥库是 Azure 存储和用于 SQL Server 的管理 API、Azure Cosmos DB 和 JDBC 驱动程序。
Azure 机器学习
完全托管的 Azure 机器学习云服务可让你构建、部署和共享预测分析解决方案。 可以在 Azure 机器学习工作室中构建试验和模型。 请访问 Azure 机器学习,以从 Data Science Virtual Machine 上的 Web 浏览器访问它。
登录到 Azure 机器学习工作室后,可以使用试验画布来生成机器学习算法的逻辑流。 还可以访问 Azure 机器学习上托管的 Jupyter Notebook。 此笔记本可与 Azure 机器学习工作室中的试验无缝配合使用。
若要操作生成的机器学习模型,请将它们包装在 Web 服务接口中。 机器学习模型操作化使得以任何语言编写的客户端都能从这些模型中调用预测。 有关详细信息,请参阅机器学习文档。
还可以在 VM 上的 R 或 Python 中生成模型,然后在 Azure 机器学习中将其部署到生产环境。 我们在 R (AzureML) 和 Python (azureml) 中安装了库以启用此功能。
注意
我们为 Data Science Virtual Machine Windows 版本编写了这些说明。 但是,这些说明涵盖了将 Azure 机器学习模型部署到 Linux VM。
机器学习工具
VM 附带预编译的机器学习工具和算法,所有这些都已在本地预装。 这些设置包括:
Vowpal Wabbit:一种快速在线学习算法
xgboost:此工具提供经过优化的提升树算法
Rattle:基于 R 的图形工具,可用于简单的数据浏览和建模
Python:Anaconda Python 附带机器学习算法,这些算法含有库(如 Scikit-learn)。 可以使用
pip install
命令安装其他库LightGBM:快速、分布式、高性能的梯度提升框架,基于决策树算法
R:有丰富的机器学习函数库可供 R 使用。预装的库包括 lm、glm、randomForest 和 rpart。 可以使用以下命令安装其他库:
install.packages(<lib name>)
以下是关于列表中前三个机器学习工具的详细信息。
Vowpal Wabbit
Vowpal Wabbit 使一种机器学习系统,它使用
- active
- allreduce
- 哈希
- 交互式学习
- learning2search
- online
- 缩减
技术。
使用以下命令在基本示例上运行该工具:
cp -r /dsvm/tools/VowpalWabbit/demo vwdemo
cd vwdemo
vw house_dataset
该目录提供其他更大的演示。 有关 Vowpal Wabbit 的详细信息,请参阅 GitHub 的此部分和 Vowpal Wabbit wiki。
xgboost
xgboost 库是为提升(树)算法设计和优化的库。 xgboost 库将计算机的计算极限推向极致,可满足对精确、可移植且可缩放的大规模树提升的需求。
xgboost 库作为命令行资源和 R 库提供。 若要在 R 中使用此库,可以在 shell 中输入 R 以启动交互式 R 会话,然后加载该库。
此简单示例演示如何在 R 提示符中运行 xgboost:
library(xgboost)
data(agaricus.train, package='xgboost')
data(agaricus.test, package='xgboost')
train <- agaricus.train
test <- agaricus.test
bst <- xgboost(data = train$data, label = train$label, max.depth = 2,
eta = 1, nthread = 2, nround = 2, objective = "binary:logistic")
pred <- predict(bst, test$data)
若要运行 xgboost 命令行,请在 shell 中运行以下命令:
cp -r /dsvm/tools/xgboost/demo/binary_classification/ xgboostdemo
cd xgboostdemo
xgboost mushroom.conf
有关 xgboost 的详细信息,请访问 xgboost 文档页及其 GitHub 存储库。
Rattle
Rattle (R Analytical Tool To Learn Easily) 使用基于 GUI 的数据浏览和建模。 它
- 呈现数据的统计和可视化摘要
- 转换可随时建模的数据
- 基于数据生成非监督式和监督式模型
- 以图形方式呈现模型性能
- 对新数据集评分
它还可生成 R 代码,用于在 UI 中复制 Rattle 操作。 可以直接在 R 中运行该代码,也可以将其用作进一步分析的起点。
若要运行 Rattle,需要在图形桌面登录会话中进行操作。 在终端中输入 R 打开 R 环境。 在 R 提示符下,输入以下命令:
library(rattle)
rattle()
此时会打开包含一组选项卡的图形界面。 在 Rattle 中执行这些快速入门步骤,使用示例天气数据集来生成模型。 在某些步骤中,系统会提示自动安装并加载尚未安装在系统上的所必需的专用 R 包。
注意
如果你无权在系统目录(默认目录)中安装包,则你可能会在 R 控制台窗口中看到一个提示,指出包将安装到个人库中。 如果遇到这些提示,请回复 y。
- 选择“执行”
- 此时会显示一个对话框,询问是否要使用示例气象数据集。 选择“是”以加载示例
- 选择“模型”选项卡
- 选择“执行”以生成决策树
- 选择“绘制”以显示决策树
- 选择“林”选项,然后选择“执行”以生成随机林
- 选择“评估”选项卡
- 选择“风险”选项,然后选择“执行”以显示两个“风险(累积)”性能绘图
- 选择“日志”选项卡以显示为上述操作生成的 R 代码
- 由于当前 Rattle 版本中的 bug,必须在日志文本中的“导出此日志”前面插入 # 字符
- 选择“导出”按钮,将名为 weather_script.R 的 R 脚本文件保存到主文件夹
可以退出 Rattle 和 R。现在,可以修改生成的 R 脚本。 也可以按原样使用该脚本,并随时运行它来重复 Rattle UI 中的所有操作。 尤其是对于 R 初学者而言,这有助于在简单的图形界面中快速执行分析和机器学习,同时在 R 中自动生成代码进行修改或学习。
后续步骤
还有其他问题吗? 请考虑创建支持票证。