MATLAB svmtrain:保存支持向量索引而不是支持向量本身

时间:2013-11-18 04:53:41

标签: matlab memory machine-learning svm

我正在研究机器学习问题,这需要我使用多个支持向量机。它运作得相对较好;然而,问题是每个SVM的支持向量机的数量往往很大(~2,000),输入特征的数量大约为50,000。我需要大约100个SVM。

在我的笔记本电脑上运行它会很快耗尽所有可用内存;我认为这是因为svmtrain创建了一个SVM,它可以保存(即有另一个副本)所有支持向量。由于我保留了原始的训练数据,我想知道是否有办法指示它将索引保存到这些支持向量,这将使用更少的内存?或者另一种减少每个SVM所需内存量的方法?

1 个答案:

答案 0 :(得分:0)

svmtrain创建SVMStruct对象,该对象在SupportVectorIndices字段中存储支持向量的索引。因此,只需将此变量的值存储在某个容器中,然后释放模型的其余部分。

documentation

  

SupportVectorIndices - 根据AutoScale参数,指定训练中的行的索引向量,训练数据,在数据被标准化后被选为支持向量。