Regression in opencv using Decision Trees

asked 2015-10-24 10:01:16 -0500

Pranav gravatar image

updated 2015-10-26 00:21:56 -0500

I have 2 sets of data. One set of the data is 4 * 1 vector and another set is the 8 * 1 vector that is generated from 4 * 1 vector. Like this I have many sets of data. Now given a new 4 * 1 vector , I need to predict what the new 8 * 1 vector will be. I wanted to ask that is it possible to do regression in the Opencv using the decision trees? If yes what header we need to write to include the opencv machine learning library for decision trees? Also I read a code for the classification using decision trees. So what will we write for 'max_categories' field of CvDTreeParams while specifying the params. These questions may be very easy but I don't know the machine learning and I am just using it as a tool for my project in Opencv. Actually I have to make the machine learn.

What is wrong with the following code-:

           Ptr<ml::TrainData> tData = ml::TrainData::create(train_data, ml::ROW_SAMPLE, response);

train_data and response are the matrices with equal number of rows. train_data has 4 columns and the response has 16 columns. Basically each row of the train_data has the 4 * 1 input and each row of the response has 16 * 1 corresponding output.

Sorry the things may not be clear . actually my one input is 14 vector and the corresponding output is 116 vector. Like this I have many samples of 14 inputs and 116 outputs.

edit retag flag offensive close merge delete


it's unclear, how your 4x1 and 8x1 vectors are related, or how you plan to predict an 8x1 vector from a model trained on 4x1 data.

then, all cv::ml algos take a Nx1 response vector (single column containing the class label per feature)

berak gravatar imageberak ( 2015-10-25 04:34:11 -0500 )edit

are you trying to find a "mapping" between 4x1 and 8x1 vectors ? i do not think, this is possible with descision trees. (maybe with a neural network)

berak gravatar imageberak ( 2015-10-26 01:10:49 -0500 )edit