首页 > 人工智能 > 机器学习 > 如何向软件工程师解释机器学习 - KDnuggets
软件工程是关于开发程序或工具来自动化任务。我们不是“手动做事”,而是编写程序;程序基本上就是一组可由计算机执行的机器可读指令。让我们考虑一个经典例子:电子邮件垃圾邮件过滤。假设我们可以访问电子邮件客户端的源代码并知道如何处理它,我们就可以想出一套本能的规则,这可能有助于解决我们的垃圾邮件问题。

例如:如果“发件人不在联系人中”:如果“主题行包含 BUY!: 电子邮件垃圾邮件文件夹:”否则如果……
直观地说,想出这些规则是一项相当繁琐的任务。不用说,我们必须在真实世界数据上测试我们的垃圾邮件过滤器,不断评估和改进它,更改和更新规则,等等。同样,我们的目标是自动化:我们想编写一组指令,自动过滤掉垃圾邮件,这样我们就不必“手动”从收件箱中删除它们。
现在,机器学习就是关于自动化的自动化!我们不是自己提出规则来自动化诸如电子邮件垃圾邮件过滤之类的任务,而是将数据输入机器学习算法,由算法自行找出这些规则。在此语境中,“数据”应是我们想要解决的问题的代表性样本——例如,一组垃圾邮件和非垃圾邮件,以便机器学习算法可以“从经验中学习”。

在“传统”编程中,我们编写一组规则,将其与数据一起输入计算机,并希望它产生期望的结果。
传统编程:
在机器学习中,我们获取数据(例如电子邮件),提供关于期望结果的信息(这些电子邮件的垃圾邮件和非垃圾邮件标签),并将其输入学习算法,然后由计算机执行。计算机随后学习一组规则,我们可以用这些规则来自动化(解决)我们的问题任务。
或者换句话说,机器学习是关于找到自动化任务的最优指令。机器学习算法是计算机从数据或经验中自动学习其他指令的指令。因此,机器学习是自动化的自动化。
简介:Sebastian Raschka 是一位“数据科学家”和机器学习爱好者,对 Python 和开源充满热情。《Python Machine Learning》的作者。密歇根州立大学。
转载声明:本文为转载整理,原文版权归原作者及原站点所有。
原文来源:KDnuggets
原创地址:https://www.kdnuggets.com/2016/05/explain-machine-learning-software-engineer.html#comment-185030
原文作者:https://www.facebook.com/kdnuggets;如有侵权,请联系管理员删除。