我有94个样本,每个样本有263个特征。总特征向量大小为94 * 263。特征向量中没有NaN或Inf值。有两个类(a类51个,b类43个)。我使用sequentialfs来选择功能,但每次都会出现以下错误:
Error using crossval>evalFun (line 480)
The function '@(XT,yT,Xt,yt)(sum(~strcmp(yt,classify(Xt,XT,yT,'quadratic'))))' generated the following error:
The input to SVD must not contain NaN or Inf.
代码是:
X = FEATUREVECTOR;
y = LABELS;
c = cvpartition(y,'k',10);
opts = statset('display','iter');
fun = @(XT,yT,Xt,yt)...
(sum(~strcmp(yt,classify(Xt,XT,yT,'quadratic'))));
[fs,history] = sequentialfs(fun,X,y,'cv',c,'options',opts)
你能告诉我如何解决这个问题吗?
答案 0 :(得分:0)
似乎您正在使用一些输入来调用serialfs,这可能与我们在问题中看到的一堆乱码有关。除此之外,我从你的脑海中看不到任何东西。如果您需要帮助,则需要证明您的所作所为。
我更改了输入数据,效果很好
load fisheriris;
X = randn(150,10);
X(:,[1 3 5 7 ])= meas;
y = species;
c = cvpartition(y,'k',10);
opts = statset('display','iter');
fun = @(XT,yT,Xt,yt)...
(sum(~strcmp(yt,classify(Xt,XT,yT,'quadratic'))));
[fs,history] = sequentialfs(fun,X,y,'cv',c,'options',opts)
您的输入数据有问题。