Matlab多维特征SVM
Matlab multidimensional feature SVM
我在 Matlab 中使用 SVM classifier 有点问题。我有一个 61200x59 的特征矩阵,其中每一行代表一组从图像中提取的特征(所有双精度值)。所有这些特征都与包含 2 个标签的 61200x1 矩阵相关联:0 和 1(作为双变量)。现在我想训练一个线性 classifier 并且我使用了以下函数:
SVM_Model = fitcsvm(train_features, train_labels, 'KernelFunction', 'linear')
如果我查看此行的详细信息,我会得到以下结果:
SVM_Model =
ClassificationSVM
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: [0 1]
ScoreTransform: 'none'
NumObservations: 61200
Alpha: [40956×1 double]
Bias: 0.9998
KernelParameters: [1×1 struct]
BoxConstraints: [61200×1 double]
ConvergenceInfo: [1×1 struct]
IsSupportVector: [61200×1 logical]
Solver: 'SMO'
但是当我在测试集 ([label, score] = predict(SVM_Model, test_features(i, :));
) 上调用预测函数时,它总是预测标签 1(超过 15000 次测试,所以看起来有点可疑)和所有 class 0 对象我有一个 class 化错误。谁能告诉我可能是什么问题? SVM 无法处理高维点,是否需要重新缩放特征?或者存在另一个问题(比如 SVM 学习配置错误)?
使用 HIK 内核一切正常。同样使用 RBF 内核在这个问题上给出了很好的结果。
我在 Matlab 中使用 SVM classifier 有点问题。我有一个 61200x59 的特征矩阵,其中每一行代表一组从图像中提取的特征(所有双精度值)。所有这些特征都与包含 2 个标签的 61200x1 矩阵相关联:0 和 1(作为双变量)。现在我想训练一个线性 classifier 并且我使用了以下函数:
SVM_Model = fitcsvm(train_features, train_labels, 'KernelFunction', 'linear')
如果我查看此行的详细信息,我会得到以下结果:
SVM_Model =
ClassificationSVM
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: [0 1]
ScoreTransform: 'none'
NumObservations: 61200
Alpha: [40956×1 double]
Bias: 0.9998
KernelParameters: [1×1 struct]
BoxConstraints: [61200×1 double]
ConvergenceInfo: [1×1 struct]
IsSupportVector: [61200×1 logical]
Solver: 'SMO'
但是当我在测试集 ([label, score] = predict(SVM_Model, test_features(i, :));
) 上调用预测函数时,它总是预测标签 1(超过 15000 次测试,所以看起来有点可疑)和所有 class 0 对象我有一个 class 化错误。谁能告诉我可能是什么问题? SVM 无法处理高维点,是否需要重新缩放特征?或者存在另一个问题(比如 SVM 学习配置错误)?
使用 HIK 内核一切正常。同样使用 RBF 内核在这个问题上给出了很好的结果。