也许这是一个简单的问题,但我想确保我理解一类 SVM 的 LibSVM 实现的概念基础,以及我所做的是否是允许的。
在这种情况下,我使用一类 SVM 进行异常值检测和删除。这在更大的时间序列预测模型的上下文中用作数据预处理步骤。也就是说,我有一个 Y 向量(这是我们试图预测的数量并且是连续的,而不是类标签)和一个 X 矩阵(用于预测的连续特征)。由于我想在预处理步骤的早期检测数据中的异常值,因此我尚未标准化或滞后 X 矩阵以用于预测,或者就此而言去趋势/去除噪声/或以其他方式处理 Y 向量(已经缩放在 [-1,1] 内)。我的主要问题是这样建模一类 SVM 是否正确(使用 libSVM):
svmod = svmtrain(ones(size(Y,1),1),Y,'-s 2 -t 2 -g 0.00001 -n 0.01');
[od,~,~] = svmpredict(ones(size(Y,1),1),Y,svmod);
由此产生的模型确实产生了与我预期的结果有些相符的性能(99% 左右的预测准确度,这意味着 1% 的观察结果是异常值)。但我之所以问,是因为在关于一类 SVM 的其他问题中,人们似乎在我使用 Y 的地方使用他们的 X 矩阵。感谢您的帮助。