# 如果我不是一个优秀的程序员怎么办？

> 原文： [https://machinelearningmastery.com/what-if-im-not-a-good-programmer/](https://machinelearningmastery.com/what-if-im-not-a-good-programmer/)

编程是机器学习的一部分，但机器学习比编程要大得多。

在这篇文章中，您将了解到您不必是程序员就可以开始进行机器学习或找到复杂问题的解决方案。

## 编程机器学习

机器学习算法以代码实现。程序员喜欢自己实现算法，以真正理解算法的工作原理。这也可能需要从针对给定问题定制的算法中获得最大收益。

![What if I'm Not a Good Programmer](img/ddd641adc89009c766257bc358bd6e5b.jpg)

如果我不是一个优秀的程序员怎么办
照 [mutednarayan](http://www.flickr.com/photos/mutednarayan/2280385549/sizes/o/) ，保留一些权利

解决问题不仅仅是算法。例如，在清楚地定义问题，准备数据和展示结果方面还有更多工作要做。甚至算法也可以现成的，并应用和调整以解决问题。

## 图形机器学习环境

您可以在不触及一行代码的情况下获得很长的路要走。这是由于可用的优秀软件。

您可以使用三种流行的机器学习环境，无需任何编程即可开始使用或在问题上取得很大进展。

*   [**Weka** ](http://www.cs.waikato.ac.nz/ml/weka/)：图形化学习工作台。它提供了一个可用于准备数据，运行算法和查看结果的资源管理器。它还提供了一个实验者，您可以在受控环境中执行相同的任务，并设计一批可以运行很长一段时间的算法运行，然后查看结果。最后，它还提供了一个数据流接口，您可以像流程图一样将算法插入到一起。在封面下，您可以使用 Weka 作为 Java 库并编写使用算法的程序。
*   [**BigML** ](https://bigml.com/)：一种 Web 服务，您可以在其中上传数据，准备数据并在其上运行算法。它提供了简洁易用的界面，用于配置算法（决策树）和查看结果。这项服务的最大特点是它全部在云端，这意味着您只需要一个 Web 浏览器即可开始使用。它还提供了一个 API，如果你喜欢它，你可以围绕它构建一个应用程序。
*   [**Orange** ](https://orange.biolab.si/)：提供可视化编程的设计工具，允许您将数据准备，算法和结果评估连接在一起，以创建机器学习“程序”。为环境提供 100 多个小部件，并提供用于集成到应用程序中的 Python API 和库。

## 脚机器学习环境

您不必是一个优秀的程序员来编写将组件粘合在一起的脚本。您可能认为自己是程序员，而不是一个非常自信的程序员。

脚本是机器学习环境和更多编程密集型解决方案（如使用代码库）之间的优秀中间件。在本节中，您将回顾两个用于机器学习的脚本环境。

*   [**Scikit-Learn** ](http://scikit-learn.org/stable/)：用 python 编写的脚本环境和库，提供机器学习算法和数据预处理。它提供了大量的入门文档和示例。
*   [**Waffles** ](http://waffles.sourceforge.net/)：命令行工具的集合。如果 orange 是图形编程环境，那么华夫饼是一个命令行编程环境。提供用于准备和可视化数据，运行算法和汇总结果的工具。它是用 C ++编写的，提供了一个可以集成到更大程序中的 API。

## 不要从代码开始

无论您是程序员还是程序员，我都建议您在图形和脚本机器学习环境中探索问题。

我认为这不是从代码开始的好处。通过应用算法，您可以更快，更快地学习，而不是首先尝试理解它们。三个好处包括：

*   **流程**：像 WEKA 这样的平台是围绕分析，准备，算法运行和结果评估的过程构建的。他们可以训练你进行实验，而不是如何运行算法。这使您可以专注于从问题到解决方案的路径，而不是深入了解机器学习。
*   **Discovery** ：你可以发现你没想到的数据准备步骤和你没有听说过的算法。如果您必须依次研究和实现每个方法，或者阅读 API 文档以找出可用的方法，那么您可以探索更多的方法。
*   **速度**：当您不必自己实现所有内容或编写代码来实现每个实验时，您可以更快地尝试更多方法。

在这篇文章中，您了解到您不需要成为熟练的程序员就可以开始或在机器学习领域取得进步。您了解到有许多可用选项，并且两个具体示例是图形和脚本机器学习环境。这些环境可用于学习机器学习和解决复杂问题。