监督学习工作流和算法
什么是监督式学习?
有监督的机器学习的目的是建立一个模型,在不确定性存在的情况下,根据证据做出预测。随着自适应算法识别数据中的模式,计算机从观察中“学习”。当计算机接触到更多的观测数据时,它的预测性能就会提高。
具体来说,监督学习算法采用一组已知的输入数据和对数据(输出)的已知响应,并且火车对新数据做出合理预测的模型。
例如,假设您想要预测某人是否会在一年内心脏病发作。你有一组以前病人的数据,包括年龄、体重、身高、血压等。你知道之前的病人在测量后的一年内是否有过心脏病发作。因此,问题是将所有现有数据组合成一个模型,可以预测一个新人是否会在一年内心脏病发作。
您可以将整个输入数据集看作异构矩阵。矩阵的行被调用观察,例子,或实例,每个都包含一个受试者(本例中为患者)的一组测量值。矩阵的列被称为预测,属性,或特性,每个变量表示对每个主题的测量(例如年龄、体重、身高等)。您可以将响应数据看作一个列向量,其中每一行都包含输入数据中相应观察结果的输出(患者是否有心脏病发作)。来适合或火车一个监督学习模型,选择一个合适的算法,然后将输入和响应数据传递给它。
监督学习分为两大类:分类和回归。
在分类时,目标是分配一个类(或标签)从一个有限的类集合到一个观察。也就是说,响应是分类变量。应用程序包括垃圾邮件过滤器、广告推荐系统、图像和语音识别。预测一个病人是否会在一年内心脏病发作是一个分类问题,可能的分类是
真正的
而且假
。分类算法通常应用于标称响应值。然而,一些算法可以容纳序数类(参见fitcecoc
).在回归,目标是预测一个观测的连续测量值。也就是说,响应变量是实数。应用包括预测股票价格、能源消耗或疾病发病率。
统计和机器学习工具箱™监督学习功能包括一个流线,对象框架。您可以有效地训练各种算法,将模型组合到集成中,评估模型性能,交叉验证,并预测新数据的响应。
监督学习的步骤
虽然有许多用于监督学习的统计和机器学习工具箱算法,但大多数算法使用相同的基本工作流来获得预测器模型。(关于整体学习步骤的详细说明见集成学习框架)。监督学习的步骤是:
准备数据
所有监督学习方法都从一个输入数据矩阵开始,通常称为X
在这里。每行X
表示一个观察结果。的每一列X
表示一个变量或预测器。用南
值X
。统计和机器学习工具箱可以处理监督学习算法南
值,通过忽略它们或忽略任何带有南
价值。
您可以为响应数据使用各种数据类型Y
。中的每个元素Y
的对应行的响应X
。缺失观测Y
数据被忽略。
对于回归,
Y
必须是一个数字向量的元素数量与行的数量相同X
。的分类,
Y
可以是这些数据类型中的任何一种。该表还包含了包含缺失项的方法。数据类型 失踪的条目 数值向量 南
分类向量 <定义>
字符数组 空格行 字符串数组 < >失踪
或”“
字符向量的单元格数组 ”
逻辑向量 (不能代表)
选择算法
算法的几个特征之间存在权衡,例如:
训练速度
内存使用情况
对新数据的预测准确性
透明度或可解释性,意味着你能多容易地理解算法做出预测的原因
算法的详细信息见分类算法的特点。关于集成算法的更多细节在里面选择一个适用的集成聚合方法。
适合模型
你使用的拟合函数取决于你选择的算法。
算法 | 拟合函数 |
---|---|
分类树 | fitctree |
回归树 | fitrtree |
判别分析(分类) | fitcdiscr |
k-最近邻(分类) | fitcknn |
朴素贝叶斯(分类) | fitcnb |
金宝app支持向量机(SVM)用于分类 | fitcsvm |
回归支持向量机 | fitrsvm |
支持向量机或其他分类器的多类模型 | fitcecoc |
分类集合体 | fitcensemble |
回归集合体 | fitrensemble |
分类或回归树集合(例如,随机森林[1])平行 | TreeBagger |
有关这些算法的比较,请参见分类算法的特点。
选择验证方法
检验所得拟合模型准确性的三种主要方法是:
检查复代误差。有关示例,请参见:
检查交叉验证错误。有关示例,请参见:
检查袋装决策树的袋外误差。有关示例,请参见:
检查Fit并更新直到满意为止
在验证模型之后,您可能希望更改它以获得更好的精度、更快的速度或使用更少的内存。
改变拟合参数以获得更准确的模型。有关示例,请参见:
改变拟合参数,尝试得到一个更小的模型。这有时会给出一个更准确的模型。有关示例,请参见:
试试不同的算法。有关适用的选择,请参见:
当对某些类型的模型感到满意时,您可以使用适当的紧凑的
函数(紧凑的
对于分类树,紧凑的
对于回归树,紧凑的
对于判别分析,紧凑的
对于朴素贝叶斯,紧凑的
支持向量机,紧凑的
ECOC模型,紧凑的
对于分类集合,和紧凑的
对于回归集合)。紧凑的
从模型中删除训练数据和预测不需要的其他属性,例如,修剪决策树的信息,以减少内存消耗。因为k神经网络分类模型需要所有的训练数据来预测标签,你不能减少一个大小ClassificationKNN
模型。
使用拟合模型进行预测
要预测大多数拟合模型的分类或回归响应,请使用预测
方法:
ypredict = predict(obj,Xnew)
obj
是装配型还是装配紧凑型。Xnew
是新的输入数据。Ypredicted
是预测的响应,分类或回归。
分类算法的特点
这个表显示了各种监督学习算法的典型特征。任何特定情况下的特征都可能与所列的不同。使用该表作为您最初选择算法的指南。决定在速度、内存使用、灵活性和可解释性方面进行权衡。
提示
首先尝试使用决策树或判别器,因为这些分类器快速且易于解释。如果模型在预测响应时不够准确,可以尝试其他具有更高灵活性的分类器。
要控制灵活性,请参阅每种分类器类型的详细信息。为了避免过度拟合,请寻找灵活性较低但提供足够精度的模型。
分类器 | 多级支持金宝app | 分类预测器支持金宝app | 预测的速度 | 内存使用情况 | 可解释性 |
---|---|---|---|---|---|
决策树- - - - - -fitctree |
是的 | 是的 | 快 | 小 | 容易 |
判别分析- - - - - -fitcdiscr |
是的 | 没有 | 快 | 线性小,二次大 | 容易 |
支持向量机- - - - - -fitcsvm |
不。 使用组合多个二元SVM分类器 fitcecoc 。 |
是的 | 介质为线性。 对别人来说很慢。 |
介质为线性。 所有其他:多类为中等,二进制为大。 |
易于线性支持向量机。 对于所有其他内核类型来说都很难。 |
朴素贝叶斯- - - - - -fitcnb |
是的 | 是的 | 中等,适用于简单的发行版。 对于内核分布或高维数据来说速度较慢 |
对于简单的分布来说很小。 用于内核分布或高维数据的介质 |
容易 |
最近的邻居- - - - - -fitcknn |
是的 | 是的 | 慢到立方。 对其他人来说是中等。 |
媒介 | 硬 |
乐团- - - - - -fitcensemble 而且fitrensemble |
是的 | 是的 | 快速到中等取决于算法的选择 | 低到高取决于算法的选择。 | 硬 |
本表中的结果基于对许多数据集的分析。研究中的数据集有多达7000个观测值、80个预测因子和50个类。这个列表定义了表中的术语。
速度:
快- 0.01秒
中- 1秒
慢- 100秒
内存
小- 1MB
中- 4MB
大- 100MB
请注意
下表提供了一般的指导。您的结果取决于您的数据和机器的速度。
分类预测器支持金宝app
该表描述了预测器对每个分类器的数据类型支持。金宝app
分类器 | 所有预测器数值 | 所有预测因素都是明确的 | 一些分类的,一些数字的 |
---|---|---|---|
决策树 | 是的 | 是的 | 是的 |
判别分析 | 是的 | 没有 | 没有 |
支持向量机 | 是的 | 是的 | 是的 |
朴素贝叶斯 | 是的 | 是的 | 是的 |
最近的邻居 | 只是欧几里得距离 | 仅汉明距离 | 没有 |
乐团 | 是的 | 是的,除了判别分析分类器的子空间集合 | 是的,除了子空间集合 |
参考文献
[1]布莱曼,L。随机森林。机器学习,2001,pp. 5-32。