如何在 Matlab 模式识别工具箱(PRTools)中设置连续标签

Posted

技术标签:

【中文标题】如何在 Matlab 模式识别工具箱(PRTools)中设置连续标签【英文标题】:How to set continues labels in Matlab Pattern Recognition Toolbox (PRTools) 【发布时间】:2016-11-22 19:23:45 【问题描述】:

我有一个带有标签和数据点的数据集,问题是我想要一个线性估计器而不是分类问题,例如:

dataset=prdataset([2,4,6,8]',[1,2,3,4]')
testset=prdataset([3,5,7,9]')
classifier=dataset*ldc %should probably be changed?
result=testset*classifier

result.data 现在变成了

ans =

  1.0e-307 *

    0.2225    0.2225    0.2225    0.2225
    0.2225    0.2225    0.2225    0.2225
    0.2225    0.2225    0.2225    0.2225
    0.2225    0.2225    0.2225    0.2225

这是非常错误的。

理想情况下它会是[1.5,2.5,3.5,4.5]' 或接近它的东西。知道如何在 PRtools 或类似的东西中做到这一点吗?这是一个线性依赖,但我也希望能够使用其他类型的依赖?

此外,系统对 NaN 值有些聪明,这会严重污染我的真实数据集,这将是一个巨大的好处。

我已经找到了线性类,但是当我使用它时,我得到了大小奇怪的数据集,

dataset=prdataset([2,4,6,8]',[1,2,3,4]')
testset=prdataset([3,5,7,9]')
classifier=dataset*linearr%should probably be changed?
result=testset*classifier

给我价值观

    0.1000   -0.3000   -0.7000   -1.1000
   -0.5000   -0.5000   -0.5000   -0.5000
   -1.1000   -0.7000   -0.3000    0.1000
   -1.7000   -0.9000   -0.1000    0.7000

这又是不正确的。

在聊天中他们建议使用 .* 而不是 * 导致使用 * 时出错 内部矩阵尺寸必须一致。

Error in linearr (line 42)
      beta = prinv(X'*X)*X'*gettargets(x);

Error in prmap (line 139)
      [d, varargout:] = feval(mapp,a,pars:);

Error in  * 

Error in dyadicm (line 81)
    v1 = a*v1;     % train first mapping

Error in prmap (line 139)
      [d, varargout:] = feval(mapp,a,pars:);

Error in  * 

在线性代码中。

为了清楚起见,我正在寻找一种方法,在给定大量值的情况下,找到最能描述它们关系的多项式集(其中考虑的多项式是程序的参数,在示例 1 中)命令)。所以在我们的例子中,多项式是 1/2a+0。在我的最终版本中,我想使用更多的参数(10-20),它可能需要二次估计。

【问题讨论】:

有点不清楚你在问什么?您应该查看***.com/help/mcve 以获取有关发布可重现示例的提示。 prdatasetldc 是什么? @mgilbert ldc 和 prdataset 是 prtools 的默认部分,如果您安装它 (prtools.org),那么您只需插入此代码即可。ldc 是一个线性判别分类器,而 prdataset 也是一个数据集在 prtoolkit 中。因为我要问的是一种在 prtools 系统中获得持续预测标签的方法,在这个玩具示例中,我希望它知道标签是输入数据的一半。 ldc 使用 LDC(R,S,M) 之类的语法,但您只是将其相乘...您要么没有显示整个代码,要么没有阅读文档。 @Oleg 我使用语法 [W,R,S,M] = A*LDC(R,S,M);其中 R S 和 M 都是可选参数,这意味着您可以将其留空,如果您不相信我,请安装 prtools 并尝试一下! 37steps.com/prtools/examples 展示了如何像 ldc 一样使用 fisherc。 ldc 的工作原理与 pi 的值一样。 【参考方案1】:

也许您可以使用神经网络(神经网络工具箱): https://es.mathworks.com/help/nnet/gs/fit-data-with-a-neural-network.html

从那个链接:

神经网络擅长拟合函数。事实上,有证据表明,一个相当简单的神经网络可以拟合任何实际函数。

例如,假设您有来自住房应用程序的数据。你想设计一个网络,可以预测房子的价值(以 1000 美元为单位),给定 13 条地理和房地产信息。您总共有 506 个示例房屋,您拥有这 13 项数据及其相关的市场价值。

你可以通过两种方式解决这个问题:

使用图形用户界面 nftool,如 Using the Neural Network Fitting Tool 中所述。

使用命令行函数,如Using Command-Line Functions 中所述。

【讨论】:

以上是关于如何在 Matlab 模式识别工具箱(PRTools)中设置连续标签的主要内容,如果未能解决你的问题,请参考以下文章

模式识别:利用MATLAB生成模式类

如何在仅预测模式下运行 Matlab 的卡尔曼滤波器(DSP 工具箱)?

车位识别基于matlab模板匹配车位识别含Matlab源码244期

K均值聚类算法的MATLAB实现

K均值聚类算法的MATLAB实现

身份牌识别基于matlab GUI模板匹配身份牌识别含Matlab源码 1354期