主要内容

选择回归问题的数据和验证

从工作区中选择数据

提示

在回归学习器中,表格是处理数据的最简单方法,因为它们可以包含数字和标签数据。使用导入工具将数据导入到MATLAB中®工作区作为一个表,或者使用表函数来创建一个表格从工作空间变量。看到

  1. 将数据加载到MATLAB工作区中。

    预测变量可以是数字、类别、字符串或逻辑向量、字符向量的单元格数组或字符数组。响应变量必须是浮点向量(单精度或双精度)。

    将预测数据合并为一个变量,一个表或一个矩阵。您还可以将预测数据和响应变量结合起来,或者将它们分开。

    例如数据集,请参见回归数据示例

  2. 应用程序选项卡上,单击回归的学习者打开应用程序。

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

  4. 在“来自工作区的新会话”对话框中,在数据集变量,从工作区变量中选择一个表或矩阵。

    如果选择一个矩阵,通过单击选项按钮选择是使用行还是列进行观察。

  5. 响应,观察默认的响应变量。该应用程序试图从数据集变量中选择一个合适的响应变量,并将所有其他变量视为预测变量。

    如果你想使用不同的响应变量,你可以:

    • 使用列表从数据集变量中选择另一个变量。

    • 单击,选择一个单独的工作区变量从工作空间选项按钮,然后从列表中选择一个变量。

  6. 预测,使用复选框添加或删除预测器。通过单击添加或删除所有预测器添加所有删除所有.您还可以添加或删除多个预测器,方法是在表中选择它们,然后单击添加N删除N,在那里N为所选预测器的数量。的添加所有删除所有按钮改变添加N删除N当您选择多个预测器时。

  7. 点击开始会议接受默认的验证方案并继续。默认的验证选项是5倍交叉验证,这可以防止过拟合。

    提示

    如果您有一个大的数据集,您可能想要切换到拒绝验证。想要了解更多,请看选择验证方案

请注意

如果你喜欢直接从命令行加载数据到应用程序中,你可以在命令行调用中指定预测数据、响应变量和回归学习器中使用的验证类型regressionLearner.有关更多信息,请参见回归的学习者

有关下一步,请参见在回归学习者应用程序中训练回归模型

从文件导入数据

  1. 回归的学习者选项卡,文件部分中,选择新会话>从文件

  2. 在列表中选择文件类型,例如电子表格、文本文件或逗号分隔的值(. csv)文件,或选择所有文件浏览其他文件类型,例如.dat

回归数据示例

要开始使用回归学习器,请尝试这些示例数据集。

的名字 大小 描述
汽车 预测因子数量:7
观测次数:406
回应:英里/加仑(英里/加仑)

1970-1982年不同车型的数据。预测燃油经济性(每加仑英里数)或其他特性之一。

有关一步一步的示例,请参见使用回归学习程序训练回归树

中的变量创建一个表carbig.mat文件:

负载carbig加速度,气缸,位移,...马力,车型,年份,重量,来源,MPG);

鲍鱼 预测因子数量:8
观测数:4177
回应:

鲍鱼(一组海螺)的测量。预测鲍鱼的年龄,这与鲍鱼壳中环的数量密切相关。

从UCI机器学习存储库下载数据并将其保存到当前文件夹中。将数据读入表并指定变量名。

url =“https://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data”;websave (“abalone.csv”url);varnames = {“性”“长度”“直径”“高度”“Whole_weight”...“Shucked_weight”“Viscera_weight”“Shell_weight”“戒指”};abalonetable = readtable (“abalone.csv”);abalonetable.Properties.VariableNames = varnames;
医院 预测因子数量:5
观察次数:100
回应:BloodPressure_2

模拟医院数据。预测患者血压。

创建一个表医院变量hospital.mat文件:

负载hospital.mathospitaltable = dataset2table(医院(:2:end-1));

选择验证方案

选择一种验证方法来检验拟合模型的预测准确性。验证在新数据上估计模型性能,并帮助您选择最佳模型。验证可防止过拟合。过于灵活且存在过拟合问题的模型验证精度较差。在训练任何模型之前选择一个验证方案,以便您可以使用相同的验证方案比较会话中的所有模型。

提示

尝试默认的验证方案并单击开始会议继续。默认选项是5倍交叉验证,以防止过拟合。

如果您有一个大的数据集,并且使用交叉验证训练模型花费了太长的时间,那么请重新导入您的数据,并尝试更快的holdout验证。

  • 交叉验证:选择对数据集进行分区的倍数(或分区数)。

    如果你选择k折叠,然后应用程序:

    1. 将数据划分为k不相交的集合或折叠

    2. 对于每个验证折叠:

      1. 使用训练折叠观察(不在验证折叠中的观察)训练模型

      2. 使用验证折叠数据评估模型性能

    3. 计算所有折叠的平均验证错误

    该方法对使用完整数据集训练的最终模型的预测精度给出了良好的估计。该方法需要多次拟合,但有效地利用了所有数据,因此适用于小数据集。

  • 坚持验证:选择要用作验证集的数据的百分比。该应用程序在训练集上训练模型,并使用验证集评估其性能。用于验证的模型仅基于部分数据,因此拒绝验证仅适用于大型数据集。最后的模型使用完整的数据集进行训练。

  • Resubstitution验证:没有防止过拟合的保护措施。该应用程序使用所有数据进行训练,并计算同一数据的错误率。如果没有任何单独的验证数据,您就会得到一个不切实际的模型在新数据上的性能估计。也就是说,训练样本的准确率可能过高,而预测准确率可能较低。

    为了避免对训练数据进行过拟合,请选择另一种验证方案。

请注意

验证方案只影响回归学习器计算验证指标的方式。最后的模型总是使用完整的数据集进行训练。

在选择数据之后,您训练的所有模型都使用您在此对话框中选择的相同验证方案。您可以使用相同的验证方案比较会话中的所有模型。

要更改验证选择并训练新模型,您可以再次选择数据,但将失去任何训练过的模型。应用程序会警告你导入数据会启动一个新的会话。将您想要保留的任何训练过的模型保存到工作区中,然后导入数据。

有关下一步训练模型,请参见在回归学习者应用程序中训练回归模型

相关的话题