主要内容

使用分类学习应用程序训练决策树

这个示例展示了如何使用classification Learner创建和比较各种分类树,并将训练过的模型导出到工作空间,以对新数据进行预测。

您可以训练分类树来预测对数据的响应。要预测响应,从根(开始)节点一直到叶节点,遵循树中的决策。叶节点包含响应。

统计和机器学习工具箱™树是二进制的。预测中的每一步都涉及到检查一个预测器(变量)的值。例如,这是一个简单的分类树:

有两个分支的决策树

这棵树基于两个预测器预测分类,x1而且x2.要进行预测,从顶部节点开始。在每个决策中,检查预测器的值以决定遵循哪个分支。当分支到达叶节点时,数据被分类为类型01

  1. 在MATLAB®,加载fisheriris数据集,并使用数据集中的变量创建测量预测因子(或特征)表,用于分类。

    fishertable = readtable (“fisheriris.csv”);
  2. 应用程序选项卡,机器学习和深度学习组中,单击分类学习者

  3. 分类学习者选项卡,文件部分中,点击从工作区新建会话>

    分类学习者选项卡

  4. 在“从工作区新建会话”对话框中,选择表fishertable数据集变量列表(如果有必要)。

    可以观察到应用程序已经根据它们的数据类型选择了响应变量和预测变量。花瓣和萼片的长度和宽度是预测因素,而物种是你想要分类的响应。对于本例,不要更改选择。

    “从工作区新建会话”对话框

  5. 若要接受默认验证方案并继续,请单击开始会议.默认的验证选项是交叉验证,以防止过拟合。

    分类学习者创建数据的散点图。

    Fisher虹膜数据的散点图

  6. 使用散点图来研究哪些变量对预测响应是有用的。为了可视化物种的分布和测量,选择不同的变量X而且Y列表下预测在情节的右边。观察哪些变量将物种颜色区分得最清楚。

    观察到的setosa物种(蓝点)很容易从其他两个物种中分离出来。的多色的而且virginica物种在所有的预测测量中都更接近,特别是当你绘制萼片的长度和宽度时重叠。setosa比其他两个物种更容易预测。

  7. 同时训练细、中、粗树。的模型窗格已经包含了一个很好的树模型。将中型和粗树模型添加到草稿模型列表中。在分类学习者选项卡,模型部分,单击箭头打开图库。在决策树组中,单击中树.该应用程序在模型窗格。重新打开模型库并单击粗树决策树组。该应用程序创建一个草稿粗树模型窗格。

    火车部分中,点击火车都并选择火车都.该应用程序训练三种树模型。

    请注意

    • 如果您有并行计算工具箱™,那么应用程序有使用并行按钮默认开启。你点击后火车都并选择火车都选择火车,该应用程序会打开一个平行的工人池。在此期间,您不能与软件交互。池打开后,您可以继续与应用程序交互,同时模型并行训练。

    • 如果没有并行计算工具箱,则应用程序具有使用背景培训的复选框。火车都默认选择的菜单。在你选择一个训练模型的选项后,应用程序会打开一个后台池。池打开后,当模型在后台训练时,您可以继续与应用程序交互。

    粗树回归模型的验证混淆矩阵。蓝色值表示正确的分类,红色值表示错误的分类。

    请注意

    验证在结果中引入了一些随机性。您的模型验证结果可能与此示例中显示的结果不同。

    模型窗格中,每个模型都有一个验证精度评分,表示正确预测响应的百分比。这款应用的高亮度最高准确性(验证)通过在方框中勾勒出它的轮廓来评分(或评分)。

  8. 单击模型可查看结果,结果显示在总结选项卡。在分类学习者选项卡,模型部分中,点击总结

  9. 对于每个模型,检查散点图。在分类学习者选项卡,情节和解释部分,单击箭头打开图库,然后单击散射验证结果组。X表示分类错误的点。

    对于所有三种模型,蓝色的点(setosa物种)的分类都是正确的,但其他两个物种的一些分类是错误的。下情节,在数据而且模型的预测选项。观察错误点(X)的颜色。或者,在绘制模型预测时,要只查看不正确的点,请清除正确的复选框。

  10. 为了改进模型,在模型训练中加入不同的特征。看看是否可以通过删除预测能力较低的特征来改进模型。

    分类学习者选项卡,选项部分中,点击特征选择

    默认的特征选择选项卡,您可以选择不同的特征排序算法,以确定最重要的特征。在你选择一个特征排序算法后,应用程序会显示一个排序后的特征重要性分数的图表,其中较大的分数(包括S)表示更大的特征重要性。该表显示了排名的功能及其得分。

    在本例中,Chi2ReliefF方差分析,Kruskal沃利斯特征排序算法都将花瓣测量作为最重要的特征。下排名算法特点,点击Chi2

    默认的Feature Selection选项卡,以Chi2作为所选的特征排序算法

    特征选择,使用默认选项,选择排名最高的特性,以避免验证指标的偏差。指定为模型训练保留4个特性中的2个。点击保存和应用.应用程序将特性选择更改应用到使用模型画廊。

  11. 使用简化的特征集训练新的树模型。在分类学习者选项卡,模型部分,单击箭头打开图库。在决策树组中,单击所有的树.在火车部分中,点击火车都并选择火车都选择火车

    仅使用两种度量值训练的模型与包含所有预测因子的模型的表现相当。与仅使用两种测量值相比,使用所有测量值的模型并没有更好地预测。如果数据收集是昂贵的或困难的,您可能喜欢一个不需要一些预测器就能令人满意地执行的模型。

  12. 注意最后一个模型模型窗格中,粗树模型只使用4个预测因子中的2个进行训练。该应用程序显示有多少预测因素被排除。要检查包含哪些预测器,请单击模型窗格中的复选框,并注意展开的特征选择模型截面总结选项卡。

    请注意

    如果您使用交叉验证方案并选择使用选择排名最高的功能选项,那么对于每个训练折叠,应用程序在训练模型之前执行特征选择。不同的折叠可以选择不同的预测因子作为排名最高的特征。桌上的桌子默认的特征选择TAB显示完整模型使用的预测器列表,根据训练和验证数据进行训练。

  13. 使用另一个度量子集训练新的树模型。在分类学习者选项卡,选项部分中,点击特征选择.在默认的特征选择选项卡上,单击MRMR排名算法特点.下特征选择,指定保留模型训练的4个特征中的3个。点击保存和应用

    分类学习者选项卡,模型部分,单击箭头打开图库。在决策树组中,单击所有的树.在火车部分中,点击火车都并选择火车都选择火车

    仅使用4个预测因子中的3个进行训练的模型表现不如其他训练的模型。

  14. 通过检查每个班级的表现,从分数相近的模型中选择一个最好的模型。例如,选择包含4个预测器中的2个的粗树。检查每节课预测的准确性。在分类学习者选项卡,情节和解释部分,单击箭头打开图库,然后单击混淆矩阵(验证)验证结果组。使用这个图可以了解当前选择的分类器在每个类中的表现。查看真实班级和预测班级结果的矩阵。

    通过检查对角线外显示较高数字且为红色的单元格,查找分类器表现较差的区域。在这些红色的单元格中,真实的类和预测的类不匹配。数据点分类错误。

    混淆矩阵图

    在此图中,检查中间行中的第三个单元格。在这个牢房里,真正的阶级是多色的,但模型错误地将这些点分类为virginica.对于这个模型,单元格显示2个错误分类(您的结果可能不同)。若要查看百分比而不是观察数,请选择真正积极的利率选择下情节控制。

    您可以使用这些信息来帮助您为您的目标选择最佳的模型。如果该类中的假阳性对您的分类问题非常重要,那么选择预测该类的最佳模型。如果这类中的假阳性不是很重要,并且具有较少预测因子的模型在其他类中表现更好,那么选择一个模型来权衡一些总体精度,排除一些预测因子,使未来的数据收集更容易。

  15. 比较中每个模型的混淆矩阵模型窗格。检查特征选择模型截面总结选项卡查看每个模型中包含了哪些预测器。

    在本例中,包含4个预测器中的2个的粗树的性能与包含所有预测器的粗树一样好。即两种模型都具有相同的验证精度和相同的混淆矩阵。

  16. 要进一步研究包括或排除的特征,使用平行坐标图。在分类学习者选项卡,情节和解释部分,单击箭头打开图库,然后单击平行坐标验证结果组。你可以看到花瓣的长度和宽度是区分类最好的特征。

    平行坐标图

  17. 中选择模型以了解模型超参数设置模型窗格并展开模型Hyperparameters模型中的部分总结选项卡。比较粗树和中等树模型,注意模型超参数的差异。特别是,最大分割数粗树设置为4,中树设置为20。此设置控制树深度。

    为了进一步改进粗树模型,更改最大分割数设置。首先,单击模型窗格。在分类学习者选项卡,模型部分中,点击重复的.在总结选项卡中,改变最大分割数价值。然后,在火车部分的分类学习者选项卡上,单击火车都并选择选择火车

  18. 要将经过最佳训练的模型导出到工作区,可以在分类学习者选项卡,出口部分中,点击出口模式并选择出口模式.在“导出模型”对话框中,单击好吧接受默认变量名trainedModel

    在命令窗口中查看有关结果的信息。

  19. 要可视化您的决策树模型,输入:

    视图(trainedModel。分类Tree,“模式”“图”

    分类树

  20. 您可以使用导出的分类器对新数据进行预测。例如,预测fishertable工作区中的数据,输入:

    yfit = trainedModel.predictFcn (fishertable)
    输出yfit包含每个数据点的类预测。

  21. 如果您想用新数据自动化训练相同的分类器,或者学习如何以编程方式训练分类器,您可以从应用程序生成代码分类学习者选项卡,出口部分中,点击生成函数

    该应用程序从您的模型生成代码,并在MATLAB编辑器中显示该文件。要了解更多,请参见生成MATLAB代码,用新数据训练模型

这个例子使用了Fisher 1936年的虹膜数据。虹膜数据包含花的测量:花瓣长度,花瓣宽度,萼片长度和萼片宽度的标本来自三个物种。训练分类器根据预测器测量值来预测物种。

使用相同的工作流来评估和比较您可以在Classification Learner中训练的其他分类器类型。

要尝试所有可用于数据集的不可优化分类器模型预设:

  1. 分类学习者选项卡,模型部分,单击箭头打开分类模型的图库。

  2. 开始组中,单击所有

    为训练所有可用的分类器类型所选择的选项

  3. 火车部分中,点击火车都并选择火车都

要了解其他分类器类型,请参见在分类学习者应用程序中训练分类模型

相关的话题

Baidu
map