如何在 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 以获取有关发布可重现示例的提示。prdataset
和 ldc
是什么?
@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 的卡尔曼滤波器(DSP 工具箱)?