# 扩展机器学习工具并展示熟练度

> 原文： [https://machinelearningmastery.com/extend-machine-learning-tools/](https://machinelearningmastery.com/extend-machine-learning-tools/)

在您使用工具一段时间后，您将开发一种特定的工作方式。

您甚至可能深入了解该工具的局限性以及如何修复它们，或者对缺少的特定功能感到沮丧。

您可以增加机器学习工具，以正式化您使用它的方式，修复限制并添加新功能。通过创建插件，补丁和包装器以及将它们作为开源项目发布来扩充工具也可以证明您对使用该工具的掌握程度。

在这篇文章中，您将发现一个快速的 5 个步骤，您可以使用它来扩充机器学习工具并分享结果。

![Extend Machine Learning Tools](img/c4385e5bbe979d459867787fef36db6d.jpg)

扩展机器学习工具
照片由 [James Case](https://www.flickr.com/photos/capcase/4970062156/) ，保留一些权利。

## 弯曲工具满足您的需求

在项目或项目中使用一个机器学习工具一段时间后，您就如何使用它建立了深入的知识。您还可以很好地了解工具提供的功能和功能类型。

通常情况下，您可能会建立自己的程序和使用工具的方法，这些工具是根据您的工作方式量身定制的。这些程序甚至可以编入您和您的团队经常咨询的脚本和文档中。

您甚至可以拥有自己的内部补丁和扩展，您已经开始在项目中依赖该工具。

很可能如果你发现它们有用，其他人也可能。

## 展示更深层次的技能

您可能已经或希望对该工具进行实质性更改。例如，添加新技术或新界面。

这些类型的变化需要对工具的深入了解，这超出了大多数从业者的能力。使用您可能已使用数月或数年的工具很难描述您的技能。

展示您对机器学习的更深入了解比尝试解释简单得多，并且可能对新项目甚至采访都有用。

## 创建机器学习工具的扩展

答案是为您使用的机器学习工具创建扩展或扩充。

使用您已经使用的过程扩充工具，您需要或已经开发的功能强制您将它们形式化并将它们烘焙到工具中供您和其他任何人使用。

它需要一些可能是一个 kludge，副项目或想法的东西，并将其变成一个真正的小型项目，其真正的结果可以改进工具。

此外，创建机器学习工具的扩展会发出一个明确的信号，表明您对该工具有足够的了解，可以识别和解决限制并开发新功能以扩展该工具的功能。

我称之为扩展扩充，因为它们以某种方式构建在工具上并改变或改进其能力。

## 扩充任何机器学习工具

您需要使用系统过程来创建机器学习工具的扩充。

### 快速 5 步流程

1.  **选择工具**。选择要扩充的工具。这可能是您描述，程序化或调查的工具。理想情况下，它将是您以前使用过并经常使用的工具。
2.  **选择限制**。确定要通过扩充解决的问题。这可能是缺少的功能或缺少功能。理想情况下，它是您需要的功能，或者是您正在使用自己的修复程序的功能。例如，结合工具的现有功能的脚本。
3.  **设计增强**。设计对工具的更改。这取决于工具，但它应该与工具本身的设计原则相一致，包括现有的 API。使用其他第三方扩展程序作为模板。如果文档中缺少此类建议，请考虑联系开发团队并就创建第三方扩展的最佳方式提出建议。
4.  **构建扩充**。使用良好的软件工程实践来确保您构建正确的东西，它可以工作并且您可以快速完成。
5.  **分享增加**。与朋友，同事甚至公开分享已完成的扩展。考虑与该工具的其他用户共享。您可能希望在开源软件平台（如 GitHub）上托管项目。

### 提示创造伟大的增强

以下是可用于为机器学习工具进行大量扩充的提示。

*   **Narrow Focus** 。使您的扩展的焦点尽可能地缩小。理想情况下，它会做一件事，例如提供一种额外的技术。
*   **短周期**。尽快获取您的扩展程序的工作版本。越快越好，即使它只有你想到的所有属性和参数的一小部分。使用敏捷工程流程并经常提前交付。
*   **小项目**。不要花太长时间。尝试在工作之夜和周末的一周内完成扩展的第一个工作版本。如果一周后没有工作版本，请考虑缩小扩展范围。
*   **好文档**。为您的扩展程序创建文档。举例说明任何人都可以复制和粘贴，或者一步一步地使用该工具进行扩充。清楚地解释您创建的原因及其提供的内容。
*   **开源**。将扩充作为开源发布到工具中。这允许其他人贡献，扩展和学习您的工作。
*   **推广**。与该工具的其他用户分享您的扩展程序。发布到论坛和邮件列表，甚至考虑通过电子邮件发送特定人员。您希望人们使用您的扩展程序并向您提供反馈，以便您可以进一步改进。

### 增强的例子

以下是您可以进行的机器学习工具扩充的一些示例：

*   **创建补丁**。这是对工具源代码的更改，如果它是开源的。您可以分发补丁，甚至可以请求将补丁应用于该工具。在后一种情况下，如果接受了变更，您甚至可以获得该项目的贡献。
*   **创建一个插件**。某些库和平台有助于创建第三方插件。创建包含新功能的独立插件。
*   **创建一个包装器**。这可以是一个脚本或界面，使用该工具更容易执行某些操作或任务。这甚至可以像向库或现有工具的图形用户界面添加命令行界面一样奢侈。

## 你可以增加机器学习工具

**您无需成为该工具**的专家。如果您可以确定工具中缺少的特定限制或需求，则可以为工具进行扩展。您只需了解该工具就可以了解如何有效地扩展它。这可能包括该工具使用的自定义 API，这可能需要专业知识。

**你不需要成为机器学习专家**。扩展机器学习软件工具比机器学习挑战更具工程挑战。话虽如此，您的扩充可能需要深入了解特定的机器学习技术才能实现它。考虑添加一种您理解的技术，或者一种比机器学习更具工程性的功能，例如组合技术或提供新界面。

**你不需要成为优秀的程序员**。您需要足够的工程技能才能完成扩展。这不是主级编程，但您应该拥有良好的软件工程实践，如设计，测试和理想情况下使用敏捷软件开发过程。

## 摘要

在这篇文章中，您发现了如何增加机器学习工具。

您发现通过为机器学习工具创建扩充，您可以正式确定在项目中使用该工具的方式，并填充该工具提供的缺失功能。

您还发现，通过共享您对该工具的扩展，可以向朋友，同事和其他人展示对该工具的掌握。这在面试中很有用。

您学习了一个快速的 5 步骤来扩充机器学习工具：

1.  选择要扩充的工具。
2.  确定要实现的工具中的限制。
3.  以补丁，插件或包装器的形式设计扩充。
4.  使用良好的工程实践为机器学习工具构建扩充。
5.  分享您的扩充，以便其他人可以从您的工作中受益，并展示您对该工具的掌握。

## 你的下一步

是否有想要增强的机器学习工具？

承诺立即扩充工具！

1.  在评论中发表评论。我想知道你想要增加哪种工具。
2.  使用上述过程设计并共享您的扩充。

你对这个过程有任何疑问吗？给我发电子邮件或发表评论。