如何在 Matlab 的分类学习器应用程序中传递数据集

Posted

技术标签:

【中文标题】如何在 Matlab 的分类学习器应用程序中传递数据集【英文标题】:How to pass dataset in Classification Learner App of Matlab 【发布时间】:2017-02-02 18:00:48 【问题描述】:

我的问题是关于将变量(训练数据集、标签和测试变量)作为预测变量和响应传递。我所做的是将所有 3 个加载到 matlab 的工作区并开始会话。但每次我得到错误(在附图中描述)即没有选择响应,选择响应变量。我的数据集如下:

    人脸[大小:5000 * 10000(5000 个样本,10000 个特征)]

    TrainingLabels [大小:5000 *1]

    TestVariable [大小:1*10000]

现在,在我的情况下,Predictorsresponses 应该是什么?如何正确使用它们才能使分类 Learner 应用正常工作?

任何有关此事的帮助将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

第 1 步):准备数据!!如果您有 N 个训练数据样本和 M 个测试数据样本,则将它们组合在一起MxN 个样本。这里的行代表每个样本,而列代表从样本中检测到的不同类型的特征。

第 2 步):在数据的 FIRST 或 LAST 添加一个额外的列(最好):此列应代表数据的所需标签。因此,现在您将拥有:total no.of columns= no.of features + 1。将数据导入Classification Learner App时,建议将数据作为TABLE导入。

第 3 步):现在,设置分类学习器应用程序要使用的数据!默认情况下,所有列都将被选为预测变量。该应用程序将提示您选择响应。响应是您添加为额外列(标签)的响应。因此,更改标签列以使其指向响应。

第 4 步): 在开始会话之前,您需要设置采用的交叉验证策略。 [ k-fold 验证将总 MxN 数据分成 k 部分,并从测试的第一部分开始,然后休息 k-1 部分用于训练。然后,再次将第二部分用于测试,其余 k-1 部分用于训练,依此类推。最后取所有精度的平均值作为最终精度]。

第 5 步):开始会话,选择您想要的分类器并点击训练按钮!!!

【讨论】:

【参考方案2】:

选择其中一列作为响应,在“导入为”下拉列表中将其从 predictor 更改为 response

【讨论】:

我应该从名为 Faces 的训练数据集中选择它吗? !Valid Xhtml 我选择了一个 row 作为响应,它假设有 255 个类而不是 2 个。我只有两个类的数据集,我也为其制作了训练标签但是如何将此告知分类学习者? 您需要选择正确的一项。为什么你的变量没有名字,而是像 column_1 这样的名字... 我的项目基本上是用于性别分类。我有5000张男性和女性的面孔(男性2500张,女性相同)。我制作了一个.mat文件并将所有5000张存储在其中,所有命名的面孔,然后当将该数据加载/导入到分类学习器中时,它会将变量名称显示为:column_1,等

以上是关于如何在 Matlab 的分类学习器应用程序中传递数据集的主要内容,如果未能解决你的问题,请参考以下文章

优化分类基于matlab遗传算法结合爬山算法优化极限学习机分类含Matlab源码 1660期

在 MATLAB 分类学习器中,导出模型后是不是可以提取该模型的参数?

机器学习作业之基于Matlab的贝叶斯分类器

理解集成学习及其在 Matlab 中的实现

matlab中的k最近邻分类器

在 MATLAB 中创建与 classperf 一起使用的分类器