0
我正在使用CvNormalBayesClassifier。 我與一些隨機數據訓練它,就像在代碼中我張貼CvNormalBayesClassifier
CvMat* train = cvCreateMat(100, 32, CV_32FC1);
cvZero(train);
cvmSet(train, 0, 0, (double) 2);
cvmSet(train, 0, 1, (double) 5);
cvmSet(train, 1, 17, (double) 12);
cvmSet(train, 1, 9, (double) 235);
cvmSet(train, 29, 1, (double) 645);
cvmSet(train, 34, 12, (double) 65);
cvmSet(train, 23, 3, (double) 2.64);
cvmSet(train, 27, 8, (double) 5443);
cvmSet(train, 3, 7, (double) 125432);
cvmSet(train, 67, 14, (double) 6533);
cvmSet(train, 78, 18, (double) 43265);
cvmSet(train, 92, 12, (double) 65.543);
CvMat* res=cvCreateMat(1, 100, CV_32FC1);
cvZero(res);
cvSet(train, cvScalarAll(CV_VAR_ORDERED));
cvSet(res, cvScalarAll(CV_VAR_CATEGORICAL));
M1.train(train, res);
CvMat* prova = cvCreateMat(1, 32, CV_32FC1);
cvZero(prova);
cvmSet(prova, 0, 7, (double) 10);
float result=M1.predict(prova);
的問題是,即使在訓練中的每一個元素是在「0」的範疇,我能得到「 1「作爲預測結果()。 另一個問題是我試圖改變訓練集中的一些值,然後保存分類器。因爲我得到的是,如果我不改變訓練集的大小(即使具有完全不同的值),分類器總是相同的。
這怎麼可能? 有沒有人可以告訴我火車,保存和預測功能是如何工作的? 謝謝