[ https://issues.apache.org/jira/browse/MAHOUT-945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13186485#comment-13186485 ]
Wang Yue commented on MAHOUT-945: --------------------------------- Hi, Ikumaso Mukai, Thanks for your improvement, I realize that you actually implement the new online version of variance calculation according to http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance, however, the problem I indicate still exists, that is, the final variance should divide by n(which is sample size.) So, I would suggest to modify the third last line of following code, do you think so? + /** + * Calculator for variance calculation + */ + private static class VarianceCalculator { + + private int n; + private double mean; + private double var; + + void add(double value) { + n++; + double oldMean = mean; + mean += (value - mean) / n; + double diff = (value - mean) * (value - oldMean); + var += diff; + } + + double getVariance() { + return var/n; //// suggested by Wang Yue + } + } > The variance calculation of Random forest regression tree > --------------------------------------------------------- > > Key: MAHOUT-945 > URL: https://issues.apache.org/jira/browse/MAHOUT-945 > Project: Mahout > Issue Type: Improvement > Components: Classification > Affects Versions: 0.6 > Reporter: Wang Yue > Labels: Regressionsplit.java > Attachments: MAHOUT-945.patch > > Original Estimate: 48h > Remaining Estimate: 48h > > Hi, Mukai > Thanks for your efforts in expand the RF to regression. However, I have a > doubt about your implementation regarding to Regressionsplit.java. The > variance method > " > private static double variance(double[] s, double[] ss, double[] dataSize) { > double var = 0; > for (int i = 0; i < s.length; i++) { > if (dataSize[i] > 0) { > var += ss[i] - ((s[i] * s[i]) / dataSize[i]); > } > } > return var; > } > " > While the variance in my mind should be something like > var += ss[i]/dataSize[i] - ((s[i] * s[i]) / (dataSize[i]*dataSize[i])); > Please help correct me if I am wrong. Thanks -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira