主要内容

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

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

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

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

有两个分支的决策树

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

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

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

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

    分类学习者选项卡

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

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

    新建会话对话框

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

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

    Fisher虹膜数据的散点图

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

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

  7. 要创建分类树模型,请在分类学习者选项卡,在模型类型部分,单击向下箭头展开图库,然后单击粗树.然后单击火车

    该应用程序创建一个简单的分类树,并绘制结果。

    观察粗树模型中的模型窗格。中检查模型验证分数准确性(验证)盒子。该模式表现良好。

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

    请注意

    对于验证,结果中有一些随机性,因此您的模型验证评分结果可能与显示的结果不同。

  8. 单击散点图Plot选项卡用于检查散点图。X表示错误分类的点。蓝色的点(setosa物种)的分类都是正确的,但其他两个物种的一些分类是错误的。下情节,在数据而且模型的预测选项。观察错误(X)点的颜色。或者,在绘制模型预测图时,若要只查看不正确的点,请清除正确的复选框。

  9. 训练不同的模型进行比较。点击中树,然后按火车

    当你点击火车时,应用程序将显示一个新模型模型窗格。

  10. 观察中树模型中的模型窗格。模型验证得分并不比粗树得分好。该应用程序在方框中概述准确性(验证)最佳模型得分。中的每个模型单击模型窗格以查看和比较结果。

  11. 的散点图中树模型。在分类学习者选项卡,在情节部分,单击箭头打开图库,然后单击散射验证结果组。中间树和前面的粗树一样可以正确地分类许多点。您希望避免过拟合,而粗树表现良好,因此所有进一步的模型都基于粗树。

  12. 选择粗树模型窗格。为了改进模型,可以尝试在模型中包含不同的特性。看看是否可以通过去除低预测能力的特征来改进模型。

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

    在“功能选择”对话框中,清除为的复选框PetalLength而且PetalWidth将它们从预测因子中排除。点击好吧.一个新的模型草案出现在模型窗格与你的新设置2/4功能,基于粗树。

    点击火车使用新的预测器选项训练一个新的树模型。

    特征选择菜单,SepalLength和SepalWidth被选中,PetalLength和PetalWidth被清除

  13. 观察第三个模型模型窗格。它也是粗树模型,仅使用4个预测因子中的2个进行训练。该应用程序显示有多少预测器被排除。属性中的模型,以查看包含哪些预测因子模型窗格,并观察“功能选择”对话框中的复选框。只有萼片测量的模型比只有花瓣的模型精度低得多。

  14. 训练另一个模型,只包括花瓣的测量。更改“功能选择”对话框中的选择,然后单击好吧.然后单击火车

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

  15. 重复训练两个以上的模型,包括宽度测量和长度测量。几个模型的得分差别不大。

  16. 通过检查每个班级的表现,在得分相近的模型中选择一个最佳模型。选择包含所有预测符的粗树。为了检查每个班级预测的准确性,在分类学习者选项卡,在情节部分,单击箭头打开图库,然后单击混淆矩阵(验证)验证结果组。使用此图可以了解当前选择的分类器在每个类中的执行情况。查看真实班级和预测班级结果的矩阵。

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

    混淆矩阵图

    请注意

    通过验证,结果中有一些随机性,因此您的混淆矩阵结果可能与显示的结果不同。

    在该图中,检查中间行的第三个单元格。在这个单元格中,真正的类是多色的,但模型错误地将这些点分类为virginica.对于这个模型,单元格显示3个错误分类(您的结果可能不同)。要查看百分比而不是观测值的数量,请选择真阳性率选择下情节控制。

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

  17. 比较中每个模型的混淆矩阵模型窗格。检查“特征选择”对话框以查看每个模型中包含哪些预测器。

  18. 要研究要包含或排除的特征,请使用散点图和平行坐标图。在分类学习者选项卡,在情节部分,单击箭头打开图库,然后单击平行坐标验证结果组。您可以看到,花瓣长度和花瓣宽度是区分类的最佳特征。

    平行坐标图

  19. 要了解模型设置,请在模型窗格并查看高级设置。中的不可优化模型选项模型类型图库是预设的起点,您可以更改进一步的设置。在分类学习者选项卡,在模型类型部分中,点击先进的.中的简单树模型和中等树模型进行比较模型窗格中,并在“高级树选项”对话框中观察差异。的最大分割次数设置控制树的深度。

    为了进一步改进粗树模型,对最大分割次数设置后单击好吧.然后,通过点击训练一个新的模型火车

    中查看所选训练模型的设置当前模型总结窗格中,或在“高级树选项”对话框中。

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

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

  21. 为了可视化你的决策树模型,输入:

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

    分类树

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

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

  23. 如果您想用新数据自动训练相同的分类器,或学习如何以编程方式训练分类器,您可以从应用程序生成代码。要为训练过的最佳模型生成代码,请在分类学习者选项卡,在出口部分中,点击生成函数

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

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

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

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

  1. 界面最右侧的箭头模型类型节展开分类器列表。

  2. 点击所有,然后按火车

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

要了解其他分类器类型,请参见在分类学习App中训练分类模型

相关的话题