Why do I get segmentation fault on multiclass rtrees training?

asked 2016-08-17 11:26:02 -0600

I have data with 21 features and the number of classes is dependent of my goal. When I formulate my problem with 2 classes the following code works. But when I formulate my problem with 3 classes I get segmentation fault on the training method. The only thing that changes is the number of classes.

This is my code:

Mat trainSamples, trainClasses;
float priors[] = { 1 , 1};

Mat var_type = Mat(21 + 1, 1, CV_8U );
var_type.setTo(Scalar(CV_VAR_NUMERICAL) ); // all inputs are numerical


var_type.at<uchar>(21, 0) = CV_VAR_CATEGORICAL;

CvRTrees  *rtrees;
rtrees = new CvRTrees [1];

CvRTParams  params( 25, // max_depth,
                    2000, // min_sample_count,
                    0, // regression_accuracy,
                    false, // use_surrogates,
                    2, // max_categories,
                    priors, // priors,
                    false, // calc_var_importance,
                    4, // nactive_vars,
                    2000, // max_num_of_trees_in_the_forest,
                    0.000f, // forest_accuracy,
                    CV_TERMCRIT_ITER | CV_TERMCRIT_EPS // termcrit_type
                   );

 load_feat(trainSamples, trainClasses, "data_model.csv"); //loading samples and corresponding class
 feat_standardization(trainSamples, &standard_feat); //samples standardization
 rtrees[0].train( trainSamples, CV_ROW_SAMPLE, trainClasses, Mat(), Mat(), var_type, Mat(), params );

Even when I change the max_categories parameter to 3 it does not work either.

I hope that someone can enlighten me with this issue. Thank you.

edit retag flag offensive close merge delete