0
我使用HOG爲了通過圖像A提取一組特徵。HOG返回一個特徵的1xN元素向量。 然而,線性SVM只接受每個樣本的2個特徵,即訓練數據矩陣的大小爲Mx2。所以我如何能夠使HOG向量適應線性SVM的訓練。 請幫幫我。 謝謝如何使HOG特徵向量適應線性svm輸入
我使用HOG爲了通過圖像A提取一組特徵。HOG返回一個特徵的1xN元素向量。 然而,線性SVM只接受每個樣本的2個特徵,即訓練數據矩陣的大小爲Mx2。所以我如何能夠使HOG向量適應線性SVM的訓練。 請幫幫我。 謝謝如何使HOG特徵向量適應線性svm輸入
你是什麼意思的「線性SVM接受每個樣品只有2個功能」?您可能會對SVM功能如何接受其培訓數據感到困惑。下面是我如何使用它的一個簡單例子:
首先,我們使用fitcsvm
使用500個隨機數據樣本(訓練數據矩陣中的行)訓練SVM模型,每個樣本有1000個元素(訓練數據中的列矩陣),其中,第一250個樣本是在級別1(第一250行訓練標籤),而最後250個樣本是在0級(最後250行訓練標籤):
>> training_data = rand(500, 1000);
>> training_labels = [ones(250,1); zeros(250,1)];
>>
>> svm_model = fitcsvm(training_data, testing_data)
svm_model =
ClassificationSVM
PredictorNames: {1x1000 cell}
ResponseName: 'Y'
ClassNames: [0 1]
ScoreTransform: 'none'
NumObservations: 500
Alpha: [418x1 double]
Bias: 2.3217
KernelParameters: [1x1 struct]
BoxConstraints: [500x1 double]
ConvergenceInfo: [1x1 struct]
IsSupportVector: [500x1 logical]
Solver: 'SMO'
Properties, Methods
我們可以產生一些10個測試樣本的隨機測試數據,每個樣本有1000個元素,並從中創建一些預測:
>> test_data = rand(10, 1000);
>> predicted_classes = predict(svm_model, test_data)
predicted_classes =
1
1
1
1
1
0
0
0
1
0
這是否回答你的問題?
嗨,丹尼爾王子先生。 –