Rank: 2479 based on 49 downloads (last 30 days) and 1 file submitted
photo

Kota Hara

E-mail
Company/University
University of Maryland

Personal Profile:

http://www.kotahara.com


 

Watch this Author's files

 

Files Posted by Kota Hara
Updated   File Tags Downloads
(last 30 days)
Comments Rating
06 Aug 2013 Boosted Binary Regression Trees Boosted Binary Regression Trees is a powerful regression method which can handle vector targets. Author: Kota Hara statistics, data mining, regression, regression tree, decision tree, boosting 49 7
Comments and Ratings by Kota Hara View all
Updated File Comments Rating
23 Feb 2014 Boosted Binary Regression Trees Boosted Binary Regression Trees is a powerful regression method which can handle vector targets. Author: Kota Hara

Hi Hossein,

I think the implementation is correct, though it's not the most efficient. The update procedures in this code can be proved to be equivalent to those proposed in "Updating Mean and Variance Estimates: An Improved Method." You can also find it in wikipedia. (en.wikipedia.org/wiki/Algorithms_for_calculating_variance)

The update procedures in the above method are:

SSE_{N} = SSE_{N-1} + (x_N - \bar x_{N-1})(x_N - \bar x_N)

The second term of RHS is

(x_N - \bar x_N + \bar x_N - \bar x_{N-1} ) ( x_N - \bar x_N ) = ( x_N - \bar x_N )^2 + (x_N - \bar x_N )(\bar x_N - \bar x_{N-1} )

The procedure in my code is
SSE_{N} = SSE_{N-1} + (\bar x_N - \bar x_{N-1})^2 * (N-1) + ( x_N - \bar x_N )^2

So now we want to show
(x_N - \bar x_N )(\bar x_N - \bar x_{N-1} ) = (\bar x_N - \bar x_{N-1})^2 * (N-1)

First divide both side by (\bar x_N - \bar x_{N-1}). Now we need to show (\bar x_N - \bar x_{N-1})(N-1) = x_N - \bar x_N

We can show this using the update procedure for mean (i.e., \bar x_N = \bar x_{N-1} + (x_N - \bar x_{N-1}) / N

The proof for sseRight should be done similarly.

As I said, this is not as efficient as the original procedure, so I will consider modifying the code.

Thanks.

11 Jun 2013 Boosted Binary Regression Trees Boosted Binary Regression Trees is a powerful regression method which can handle vector targets. Author: Kota Hara

Please feel free to drop a comment if you have suggestions, find bugs or anything.

07 Jun 2013 Fast K-means clustering Fast mex K-means clustering algorithm with possibility of K-mean++ initialization. Author: Sebastien PARIS

07 Jun 2013 Fast K-means clustering Fast mex K-means clustering algorithm with possibility of K-mean++ initialization. Author: Sebastien PARIS

Thank you for checking. The reason is that there are cases where the cardinality of the data is unknown before applying clustering. Well, I can first check the cardinality of the data and then use k <= cardinality but I just thought it would be great if your code could handle that situation.

30 May 2013 Fast K-means clustering Fast mex K-means clustering algorithm with possibility of K-mean++ initialization. Author: Sebastien PARIS

My input data X is a set of one dimensional scalar and the values are taken from a finite discrete set S, e.g., S = {1,2,3,4,5}. When I run yael_kmeans with K>|S|, it looks like yael_kmeans goes into an infinite loop. Do you have any idea on how to fix it?

Comments and Ratings on Kota Hara's Files View all
Updated File Comment by Comments Rating
29 Jul 2014 Boosted Binary Regression Trees Boosted Binary Regression Trees is a powerful regression method which can handle vector targets. Author: Kota Hara Kota

I released the code for new regression tree forests method described in "Growing Regression Forests by Classification: Applications to Object Pose Estimation. The European Conference on Computer Vision (ECCV), 2014." The method outperforms various regression methods such as traditional binary regression tree forests as well as Support Vector Regression and Kernel Partial Least Squares Regression. The code is available from here. It is written in matlab.
http://www.kotahara.com/download-k-clusters-regression-forest.html

29 Apr 2014 Boosted Binary Regression Trees Boosted Binary Regression Trees is a powerful regression method which can handle vector targets. Author: Kota Hara UTA

Hi, would you please add some date for code running? ths

23 Feb 2014 Boosted Binary Regression Trees Boosted Binary Regression Trees is a powerful regression method which can handle vector targets. Author: Kota Hara Kota Hara

Hi Hossein,

I think the implementation is correct, though it's not the most efficient. The update procedures in this code can be proved to be equivalent to those proposed in "Updating Mean and Variance Estimates: An Improved Method." You can also find it in wikipedia. (en.wikipedia.org/wiki/Algorithms_for_calculating_variance)

The update procedures in the above method are:

SSE_{N} = SSE_{N-1} + (x_N - \bar x_{N-1})(x_N - \bar x_N)

The second term of RHS is

(x_N - \bar x_N + \bar x_N - \bar x_{N-1} ) ( x_N - \bar x_N ) = ( x_N - \bar x_N )^2 + (x_N - \bar x_N )(\bar x_N - \bar x_{N-1} )

The procedure in my code is
SSE_{N} = SSE_{N-1} + (\bar x_N - \bar x_{N-1})^2 * (N-1) + ( x_N - \bar x_N )^2

So now we want to show
(x_N - \bar x_N )(\bar x_N - \bar x_{N-1} ) = (\bar x_N - \bar x_{N-1})^2 * (N-1)

First divide both side by (\bar x_N - \bar x_{N-1}). Now we need to show (\bar x_N - \bar x_{N-1})(N-1) = x_N - \bar x_N

We can show this using the update procedure for mean (i.e., \bar x_N = \bar x_{N-1} + (x_N - \bar x_{N-1}) / N

The proof for sseRight should be done similarly.

As I said, this is not as efficient as the original procedure, so I will consider modifying the code.

Thanks.

14 Feb 2014 Boosted Binary Regression Trees Boosted Binary Regression Trees is a powerful regression method which can handle vector targets. Author: Kota Hara Hossein

Hi Kota,

Are you sure that the implementation of findBestSplit is correct? I have doubts about the SSE update. I mean the lines 129 and 130

for( int k=0; k<targetDim; k++ ){
sseLeft = sseLeft + ( aveLeft[k] - aveLeftPre[k] ) * ( aveLeft[k] - aveLeftPre[k] ) * ( sizeLeft - 1 ) + ( target(sortByValue[j].idx,k) - aveLeft[k] ) * ( target(sortByValue[j].idx,k) - aveLeft[k] );
sseRight = sseRight - ( aveRightPre[k] - aveRight[k] ) * ( aveRightPre[k] - aveRight[k] ) * sizeRight - ( target(sortByValue[j].idx,k) - aveRightPre[k] ) * ( target(sortByValue[j].idx,k) - aveRightPre[k] );
}

I understand the procedure, but I think the update rule is not correct.

Thanks

13 Feb 2014 Boosted Binary Regression Trees Boosted Binary Regression Trees is a powerful regression method which can handle vector targets. Author: Kota Hara Hossein

I could compile on unix by removing #include <tchar.h> and 2 minor changes.

Contact us