opencv を使用してランダム フォレストを実行し、フォレストを正常に構築しました。しかし、サンプルが 2 番目のクラスに属する正確な確率を知るには、predict_prob を使用する必要があります。今はどのように機能するかですが、フォレストがバイナリ分類ではないというエラーがあり、predict_prob を使用できません。フォレストをバイナリにするにはどうすればよいですか? 私は多くの方法を試し、どこでも検索しましたが、これについての手がかりが見つかりません。
これが私のコードです
CvMat* data = 0;
CvMat* responses = 0;
CvMat* var_type = 0;
//I skipped some lines
data=cvCreateMat(row_s,1024,CV_32FC1);
responses=cvCreateMat(row_s,1,CV_32FC1);
//load data and responses, responses consist of only 1 and 0
var_type = cvCreateMat( data->cols + 1, 1, CV_8U );
cvSet( var_type, cvScalarAll(CV_VAR_ORDERED) );
cvSetReal1D( var_type, data->cols, CV_VAR_CATEGORICAL );
CvRTrees forest;
forest.train(data, CV_ROW_SAMPLE, responses, 0, 0, var_type, 0,
CvRTParams( 5, 20, 0, false, 2, 0, false, 100, 10, 0, CV_TERMCRIT_ITER ));
この後、predict() は正しく使用できますが、predict_prob() は使用できません