matlab - 下标索引必须是正实整数或 svmclassify matlab 中的逻辑数

标签 matlab svm

我正在使用 matlab 的 svm 分类函数。我的训练和测试数据具有以下维度:

>> size(TrainV)

ans =  

   99192         705

>> size(TestV)

ans =

246   705

我有一个函数可以训练 10 个类(45 个二元分类器)的一对一分类。可以通过调用以下函数来训练模型:

Models = SVM_multitrain (TrainV(:, 2:end), TrainV(:, 1), 10); 

我正在发送特征向量 (TrainV(:, 2:end)) 和标签 (TrainV(:, 1)),我要求模型为 45 个分类器 (10) 训练配对组合。该功能运行正常,训练后我可以获得以下信息。例如,我将展示第 3 个和第 45 个二元分类器的模型。

> Models(3)

ans = 

      SupportVectors: [9x704 double]
               Alpha: [9x1 double]
                Bias: -2.3927 - 0.0001i
      KernelFunction: @linear_kernel
  KernelFunctionArgs: {}
          GroupNames: [20117x1 double]
SupportVectorIndices: [9x1 double]
           ScaleData: [1x1 struct]
       FigureHandles: []

>> Models(45)

ans = 

      SupportVectors: [10x704 double]
               Alpha: [10x1 double]
                Bias: -2.7245 + 0.0000i
      KernelFunction: @linear_kernel
  KernelFunctionArgs: {}
          GroupNames: [22087x1 double]
SupportVectorIndices: [10x1 double]
           ScaleData: [1x1 struct]
       FigureHandles: []

问题是当我调用函数对特征向量进行分类时,例如,对于第一个二元分类器。

>>         TestAttribBin = svmclassify(Models(1), TestV(:,2:end))
Subscript indices must either be real positive integers or logicals.

Error in svmclassify (line 140)
outclass = glevels(outclass(~unClassified),:);

可能是什么问题?当我对以另一种方式提取的特征向量应用相同的分类过程时,这个问题就不会发生。

最佳答案

此错误的可能原因是将复杂数据传递给 svmclassifysvmclassify 只接受真实的特征向量。实际上,将复杂数据传递给 svmclassify 会导致 outclass 变得复杂,并且复杂值不能用于错误消息所述的索引。

一个选项可能是将向量的虚部编码到特征中,例如将特征向量的长度加倍。

事实上,绝大多数机器学习模型都基于特征向量是真实的假设。人工神经网络、回归树、svm 等。尽管在某些情况下可能会有一些扩展。

关于matlab - 下标索引必须是正实整数或 svmclassify matlab 中的逻辑数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33675759/

相关文章:

matlab - 如何用Matlab解线性方程?

r - 从 MatLab 调用 R 脚本 - 错误

python - sklearn支持向量机拟合() "ValueError: setting an array element with a sequence"

python sklearn pipiline 适合 : "AttributeError: lower not found"

scikit-learn - 分类 - 修改后的 huber 损失 : how is it more tolerant to outliers?

Java TCP/IP 套接字发送字节对齐数据

matlab - Simulink无法从输出端口1传播可变大小模式

svm - 如何将 arff 文件转换为 libsvm 文件

python - 建模支持向量回归 (SVR) 与线性回归

matlab - 如何从 MATLAB 将命令通过管道传递给 gnuplot