终于有人把数据科学、机器学习和人工智能讲明白了( 二 )


在这两种情况下 , 不需要显性编程绝对关键 , 而且实际上是机器学习要理解的最为重要的方面 。 让我们通过下面的案例来解释 。
在机器学习出道之前 , 假设您是负责创建预测模型的程序员 , 该模型能够预测某类贷款的申请人是否会拖欠 , 因此决定是否应该批准该笔贷款 。 为此您可能编写一个很长的专门针对金融行业的软件程序 , 输入个人的FICO分数、信用记录和贷款申请类型等信息 。
代码包含许多非常明确的编程语句(例如条件语句和循环语句) 。 伪代码看上去(用普通英语编写的代码)可能像下面这样:
If the persons FICO score is above 800, then they will likely not default and should be approved Else if the persons FICO score is between 700 and 800 If the person has never defaulted on any loan, they will likely not default and should be approved Else the will likely default and should not be approved Else if the persons FICO score is less than 700 ...这是一个非常显性的编程(基于规则预测的模型)案例 , 它包含以代码形式表达的贷款行业特定领域的专业知识 。 该程序属于硬编码 , 只能做一件事 。 它需要领域及行业的专业知识来确定规则(场景) 。
该程序非常死板 , 不一定代表所有可能导致潜在贷款违约的因素 。 对于贷款行业出现的各种新变化 , 还必须通过手动输入来更新程序 。
看得出来这种方式不是特别有效或最优 , 也不会产生可能的最佳预测模型 。 另一方面 , 机器学习使用正确的数据却可以做到这一点 , 而且无需任何显性编程 , 特别是包含贷款行业专业知识的代码 。
这里对机器学习做出了有些过于简单的解释 , 机器学习能够在不知道相关数据或领域的情况下以数据集作为输入 , 经过同样不知道相关数据或领域的机器学习算法处理生成预测模型 , 该模型拥有专业知识并了解如何将输入映射到输出 , 使最准确的预测成为可能 。
如果能理解这一点 , 大概就在高层次上理解了机器学习的目的 。
值得一提的是 , 虽然机器学习算法本身能够在不需要显性编程的情况下学习 , 但是在构思、构建和测试基于机器学习的人工智能解决方案的整个过程中 , 仍然非常需要人的参与 。
03 机器学习的方式
机器通过各种不同的技术从数据中学习 , 其中最主要的包括有监督、无监督、半监督、强化和转移学习 。 用于训练和优化机器学习模型的数据通常被分为有标签和无标签两类 , 如图4-2所示 。
终于有人把数据科学、机器学习和人工智能讲明白了
本文插图

▲图4-2 有标签与无标签数据
有标签数据有目标变量或值 , 对于给定的特征值组合(也称为变量、属性、字段) , 可以对目标变量或值进行预测 。 预测建模(机器学习的应用)在有标签数据集上训练模型 , 然后预测新特征值组合的目标值 。 因为数据集中存在目标数据所以称为有标签数据 。
另一方面 , 无标签数据也有特征值 , 但没有特定的目标数据或标签 。 这使得无标签数据特别适合于分组(即聚类和分割)及异常检测 。
值得注意的是 , 很不幸 , 可能很难获得足够数量的有标签数据 , 而且产生这些数据可能会花费大量的金钱和时间 。 可以把标签自动添加到数据记录中 , 也可能需要人工添加(数据记录也称为样本 , 可以想象为电子表格中的一行) 。
有监督学习是指使用有标签数据的机器学习 , 而无监督学习使用无标签数据 。 半监督学习使用有标签和无标签的混合数据 。
让我们从高层次简要讨论不同的学习类型 。 有监督学习有许多潜在的应用 , 如预测、个性化推荐系统和模式识别 。
有监督学习又被进一步细分为回归和分类两类应用 。 这两种方法都被用来做预测 。 回归主要用于预测单个离散或实数值 , 而分类则用于将一个或多个类分配给某组输入数据(例如电子邮件中的垃圾或非垃圾邮件) 。


推荐阅读