这个例子展示了如何创建和使用分类学习者比较各种分类树,和出口训练模型工作区为新数据做出预测。
你可以训练分类树来预测响应数据。预测反应,遵循决策树从根节点到叶节点(开始)。叶节点包含响应。
统计和机器学习工具箱™树是二进制。每一步的预测包括检查一个预测(变量)的值。例如,下面是一个简单的分类树:
这棵树预测分类基于两个预测因子,x1
和x2
。预测,从顶部开始节点。在每一个决定,检查预测因子的值来决定哪个部门遵循。当树枝到达一个叶子节点,数据分为类型0
或1
。
在MATLAB®,加载fisheriris
测量预测数据集和创建一个表(或功能)使用变量数据集使用的一个分类。
fishertable = readtable (“fisheriris.csv”);
在应用程序选项卡,机器学习和深度的学习组中,单击分类学习者。
在分类学习者选项卡,文件部分中,点击新会话>从工作区。
新会话从工作区对话框中,选择表fishertable
从数据集变量列表(如果有必要)。
观察到这个应用程序已经选择反应和预测变量根据其数据类型。花瓣和萼片长度和宽度预测,物种是你想要的反应分类。对于这个示例,不改变选择。
接受默认的验证方案和继续,点击开始会议。默认的验证选项是交叉验证,防止过度拟合。
数据的分类学习者创建了一个散点图。
使用散点图调查哪些变量是有用的预测响应。选择不同的选项X和Y列表下预测可视化物种的分布和测量。观察变量单独物种颜色最明显。
观察到的setosa
物种(蓝色点)很容易分离的其他两个物种与所有四个预测因子。的多色的
和virginica
物种更凝聚在预测所有的测量,和重叠特别是当你情节花萼长度和宽度。setosa
比其它两个物种更容易预测。
创建一个分类树模型,在分类学习者选项卡,模型类型部分,单击向下箭头,扩大画廊并单击粗树。然后单击火车。
这个应用程序创建了一个简单的分类树,阴谋的结果。
观察粗树模型模型窗格。检查模型验证的分数准确性(验证)盒子。该模型表现。
请注意
与验证,结果有随机性,因此你的模型验证得分结果所示不等。
检查散点图。一个X表示分类错误的点。蓝色的点(setosa
物种都是正确地分类,但是其他两个物种被误诊。下情节之间切换,数据和模型的预测选项。观察错误的颜色(X)点。另外,虽然绘图模型预测,只查看错误点,清除正确的复选框。
火车比较不同模型。点击中树,然后单击火车。
当你点击火车应用程序显示一个新的模型模型窗格。
观察中树模型模型窗格。模型验证分数并不比粗树得分。应用程序概述了在一个盒子里准确性(验证)成绩最好的模型。单击每个模型中模型窗格中查看和比较结果。
检查的散点图中树模型。中树分类尽可能多的正确点前面的粗树。你想避免过度拟合,粗树表现良好,所以所有进一步的模型基于粗树。
选择粗树在模型窗格。努力改善模型,模型中尝试包括不同的特性。看你是否能提高预测能力较低的模型通过删除功能。
在分类学习者选项卡,特性部分中,点击特征选择。
在特征选择对话框中,清除复选框PetalLength和PetalWidth排除他们的预测。一个新的模式出现在草案模型面板和你的新设置2/4特性,基于粗的树。
点击火车培养一个新的树模型使用新的预测选项。
观察的第三种模式模型窗格。这也是一个粗树使用只有2 4预测模型,训练。应用程序显示有多少因素排除在外。检查包括哪些指标,点击一个模型模型面板和观察特征选择对话框中的复选框。这个模型只有花萼测量低得多比petals-only模型准确性分数。
训练另一个模型只包括花瓣测量。改变选择的特征选择对话框,然后单击火车。
模型训练只使用花瓣测量执行同样包含所有预测模型。模型预测没有更好地使用所有测量相比,只有花瓣测量。如果数据收集是昂贵或困难,你可能更喜欢没有一些预测模型性能良好。
重复训练两个模型只包括宽度测量的长度测量。的分数没有多少区别的几个模型。
选择最好的模型在这些类似的分数通过检查每个类的性能。选择粗的树,包括所有的预测因子。检查的准确性预测在每个类的分类学习者选项卡,情节部分中,点击混淆矩阵并选择验证数据。使用这个情节了解当前选中的分类器中执行每个类。视图矩阵的类和类预测结果。
寻找地区分类器通过检查细胞表现不佳的对角线显示高数字和是红色的。在这些红细胞,真正的阶级和预测类不匹配。更进一步的数据点。
请注意
与验证,结果有随机性,所以你的混淆矩阵结果所示不等。
在这个图中,检查中间行第三单元。在这个单元,真正的类多色的
,但模型分类错误的点virginica
。对于这个模型,细胞显示2分类错误(你的结果可能不同)。查看百分比而不是数量的观察,选择真正积极的利率选择下情节控制。
您可以使用此信息来帮助您选择最好的模型的目标。如果误报这门课是非常重要的分类问题,然后选择最好的模型在预测这类。如果误报这门课不是很重要,用更少的预测和模型做得更好在其他类,然后选择一个模型来权衡一些总体精度排除一些预测和简化将来的数据收集。
比较混淆矩阵中每一个模型模型窗格。特征选择对话框查看包含在每个模型的预测。
调查特性包括或排除,使用散点图和平行坐标图。在分类学习者选项卡,情节部分中,点击平行坐标。你可以看到花瓣长度和花瓣宽度最好是单独的类的功能。
学习模式设置,选择一个模型模型面板和查看高级设置。nonoptimizable模型选择的模型类型画廊是预设的起点,你可以改变进一步设置。在分类学习者选项卡,模型类型部分中,点击先进的。比较简单和中等树模型模型面板,观察不同的高级树选项对话框。的最大数量的分裂设置控件树深度。
试图进一步提高粗树模型,试着改变最大数量的分裂点击设置,然后火车一个新的模型火车。
视图的设置选择训练模式当前模型的总结窗格中,或在高级的对话框。
最好的训练模型导出到工作区,在分类学习者选项卡,出口部分中,点击出口模式。在出口模式对话框中,单击好吧接受默认的变量名trainedModel
。
在命令窗口中看到结果的信息。
想象你的决策树模型,输入:
视图(trainedModel.ClassificationTree,“模式”,“图”)
您可以使用导出的分类器对新数据进行预测。例如,做出的预测fishertable
数据在工作区中,输入:
yfit = trainedModel.predictFcn (fishertable)
yfit
包含一个类为每个数据点预测。如果你想自动训练分类器与新数据相同,或者学习如何编程训练分类器,您可以生成代码的应用。为最好的训练模型生成代码,在分类学习者选项卡,出口部分中,点击生成函数。
应用程序从模型生成代码并在MATLAB中显示文件编辑器。欲了解更多,请看生成MATLAB代码训练模型的新数据。
这个示例使用费舍尔1936虹膜数据。花的虹膜数据包含测量:花瓣长度,花瓣宽度,花萼长度和萼片宽三物种标本。训练一个分类器预测物种基于预测测量。
使用相同的工作流程评估和比较的其他分类器类型你可以训练分类学习者。
尝试所有的nonoptimizable分类器模型预设可供你的数据集:
点击最右边的箭头模型类型部分扩大分类器的列表。
点击所有,然后单击火车。
了解其他类型的分类器,请参阅训练分类模型的分类学习者应用。