Implementing Adaboost for multiple dimensions in Java

1.8k views Asked by At

I'm working on AdaBoost implementation in Java. It should have work for "double" coordinates on 2D 3D or 10D. All I found for Java is for a binary data (0,1) and not for multi-dimensional space.

I'm currently looking for a way to represent the dimensions and to initialize the classifiers for boosting.

I'm looking for suggestions on how to represent the multidimensional space in Java, and how to initialize the classifiers to begin with.

The data is something in between [-15,+15]. And the target values are 1 or 2.

3

There are 3 answers

0
templatetypedef On

To use a boosted decision tree on spatial data, the typical approach is to try to find a "partition point" on some axis that minimizes the residual information in the two subtrees. To do this, you find some value along some axis (say, the x axis) and then split the data points into two groups - one group of points whose x coordinate is below that split point, and one group of points whose x coordinate is above that split point. That way, you convert the real-valued spatial data into 0/1 data - the 0 values are the ones below the split point, and the 1 values are the ones above the split point. The algorithm is thus identical to AdaBoost, except that when choosing the axis to split on, you also have to consider potential splitting points.

2
Has QUIT--Anony-Mousse On

Why don't you use a double[] array for each object? That is the common way of representing feature vectors in Java.

3
Steve Lianoglou On

How about using JBoost, I think it's got what you're looking for.