用GitHub工具为您的数据科学项目提供超级能量

利用GitHub工具为您的数据科学项目注入无限能量

科技正在以飞快的速度发展,带来了许多创新,正在改变我们的工作场所。其中一个受到这些进步特别打击的角色就是数据科学家。数据科学已经是一个令人兴奋的领域,但是新的工具正将其提升到另一个水平,提高了生产力和能力。在这篇文章中,我们将展示这些进步的实际应用。

使用Python、VS Code和GitHub工具的数据科学项目

让我们深入研究一些创新的GitHub工具和功能,可以提高数据科学工作流的生产力。为了探索它们,让我们假设我们被要求根据季节性和天气条件创建一个预测模型,预测自行车租赁业务的租赁数量。

为了构建这样一个模型,我们将从历史租赁数据集开始,在VS Code上的Python Jupyter笔记本中进行一些数据分析和实验。提高我们项目生产力的秘密武器由两个主要因素组成:

创建我们的工作空间

在我们开始编写第一行Python代码,甚至开始创建新的Jupyter笔记本之前,我们需要在本地机器上安装最新版本的Python和在VS Code中安装Python扩展。然后,我们将需要安装用于探索、清洁和可视化数据的Python库,以及用于训练和评估机器学习模型的Python库。这些先决条件可能因项目而异,并且其中一些可能存在冲突和依赖关系,需要对我们的工作流程进行额外努力。此外,如果我们与一个团队的同事在同一个项目上合作,他们应该复制相同的安装过程,以便能够贡献我们的代码。

这就是GitHub Codespaces非常有帮助的情况,它使我们能够为项目创建可重复和预配置的工作空间,并且我们可以将其托管和共享在云端。但是如何开始?

一旦我们在IDE(VS Code)中启用了GitHub Copilot Chat,我们可以通过聊天界面与这个内置虚拟助手进行交互,通过使用自然语言提问或使用预定义的斜杠命令来定义我们期望的答案范围。

Supercharging Your Data Science Projects with GitHub Tools

例如,提示“/createWorkspace for a Jupyter Python notebook with a GitHub Codespaces configuration installing pPandas, numpy and scikit-learn”将输出我们项目的建议目录结构:

  • `.devcontainer/devcontainer.json` – GitHub Codespaces开发容器的配置文件,指定要使用的Docker镜像和要在容器中安装的扩展。
  • `.devcontainer/requirements.txt` – 配置文件,列出要在开发容器中安装的Python软件包。
  • `data/my_data.csv`- 用于在Jupyter笔记本中使用的数据文件的占位符。
  • `notebooks/my_notebook.ipynb`- 模板Jupyter笔记本文件,导入pPandas、numpy和scikit-learn。
  • `README.md`- 包含项目文档的占位符文件。

此外,点击底部的“创建工作空间”后,目录结构将在本地创建,并且文件将以一些基本内容初始化,我们可以根据情况进行自定义。

现在,要从这里创建GitHub Codespaces,我们首先应该通过Visual Studio Code的侧边栏菜单中的‘源代码’面板将我们的代码发布到GitHub。

然后,我们可以自定义将用于构建容器的配置文件。例如,我们可以在devcontainer.json文件中添加以下代码行来添加GitHub Copilot和GitHub Copilot chat扩展:

"customizations": {        "vscode": {            "extensions": [                "github.copilot",      "github.copilot-chat"            ]        }

注意,‘customizations’字段应与容器‘name’在JSON结构中处于相同级别。如果由GitHub Copilot创建的JSON文件已经有一个extensions数组,我们只需在队列中添加这两个扩展即可。

通过这种方式,我们将能够在远程环境中使用GitHub Copilot功能。

之后,我们可以再次向GitHub Copilot chat请求支持,通过询问:“我如何使用此文件夹结构中的devcontainer配置文件创建一个基于此的远程GitHub Codespaces?”来创建一个基于我们的存储库的远程GitHub Codespaces。

根据回复中提供的说明,我们将能够构建和打开一个预定义要求的GitHub Codespaces。

编写、调试和记录我们的Python代码

 一旦我们在Visual Studio Code中打开我们的GitHub Codespaces,我们可以开始进行实验。我们项目的第一步是将用于训练模型的数据导入到Pandas dataframe中。在编写我们的Python代码时,我们会注意到GitHub Copilot提供了行内建议(截图中的灰色线),我们可以完全接受、只接受一部分或忽略。

此外,由于Pandas库被列在用于构建GitHub Codespaces的要求文件中,执行我们的第一个代码单元之前不需要额外的步骤。

现在让我们进一步进行一些数据可视化。假设我们想要创建一个使用matplotlib表示数据集中自行车租赁分布的直方图。

在上面的示例中,我们忘记了定义轴对象,所以我们得到了一个NameError异常。在这种情况下,GitHub Copilot可以帮助我们进行故障排除。我们只需要点击“使用Copilot修复”按钮,就会得到错误的分析以及建议的代码更改来修复它。

在一些数据探索和清理之后(超出了本文的范围),假设我们准备训练我们的回归模型。由于这是我们解决方案的核心部分,我们希望有一些清晰的文档来补充代码。我们可以使用GitHub copilot /doc命令来加速繁琐但重要的任务,即文档化我们的代码。

通过选择感兴趣的代码片段,然后在聊天窗口中输入命令,我们可以轻松地获得所需的输出,例如作为笔记本中的Markdown单元格的内容。

总结

在本文中,我们提供了一些数据科学家提高生产力和增强合作能力的技巧和窍门,通过利用GitHub工具、Python和VS Code。我们介绍了如何使用GitHub Codespaces创建可重现的工作空间,并通过聊天界面与GitHub Copilot进行交互,以简化项目设置。我们还演示了GitHub Copilot如何提供行内建议、帮助调试和自动化文档任务,最终提高数据科学项目的效率和效果。

如果您打算在您的环境中尝试我们在演示中使用的提示,请注意您可能会得到不同的结果。这是因为GitHub Copilot由OpenAI GPT-4模型驱动,与所有大型语言模型一样,是非确定性的,这意味着对于相同的输入,我们可以得到不同的输出。

想了解更多关于如何使用GitHub和VS Code提高您的工作效率的内容吗?观看 VS Code Explains 系列视频,并参加使用GitHub工具超级加速您的数据科学项目的在线研讨会。

关于作者:

Carlotta Castelluccio Cloud Developer AdvocateCarlotta Castelluccio – AI Cloud Advocate

Gabriela de QueirozGabriela De Queiroz – Microsoft for Startups的AI总监