From: Daniel H. <dh...@us...> - 2008-04-09 07:24:29
|
Update of /cvsroot/jboost/jboost/src/jboost/booster In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv26281/src/jboost/booster Modified Files: Tag: jboost_unstable BrownBoost.java YabaBoost.java AbstractBooster.java Log Message: Cleaned up AbstractBooster (moved config code to BrownBoost and YabaBoost). Index: YabaBoost.java =================================================================== RCS file: /cvsroot/jboost/jboost/src/jboost/booster/YabaBoost.java,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -C2 -d -r1.8 -r1.8.2.1 *** YabaBoost.java 25 Mar 2008 01:00:28 -0000 1.8 --- YabaBoost.java 9 Apr 2008 07:24:04 -0000 1.8.2.1 *************** *** 1,21 **** package jboost.booster; - import java.io.BufferedWriter; - import java.io.FileWriter; import java.io.*; - import java.io.IOException; - import java.io.PrintWriter; - - import java.text.DecimalFormat; - import java.text.NumberFormat; [...1565 lines suppressed...] ! } ! public Bag newBag(Bag bag) { ! return new YabaBag((YabaBag) bag); ! } ! /** ! * Returns the prediction associated with a bag representing a subset of the ! * data. ! */ ! protected Prediction getPrediction(Bag b) { ! return ((YabaBag) b).calcPrediction(); ! } ! protected MixedBinaryPrediction getZeroPred() { ! return new MixedBinaryPrediction(0,0); ! } Index: AbstractBooster.java =================================================================== RCS file: /cvsroot/jboost/jboost/src/jboost/booster/AbstractBooster.java,v retrieving revision 1.8.2.1 retrieving revision 1.8.2.2 diff -C2 -d -r1.8.2.1 -r1.8.2.2 *** AbstractBooster.java 7 Apr 2008 17:19:55 -0000 1.8.2.1 --- AbstractBooster.java 9 Apr 2008 07:24:05 -0000 1.8.2.2 *************** *** 51,132 **** // If the booster is a discrete iterative scheme, the // number of iterations is dealt with elsewhere. - // XXX DJH: Why isn't this done in BrownBoost/YABA.init()? - // XXX YF: I also think this should not be done in AbstractBooster. - if (result instanceof jboost.booster.BrownBoost) { - double eps = 0.001; - double runtime = Double.parseDouble(c.getString("boostingRuntime", - "0.0")); - if (runtime <= eps) { - String str = "Need to specify runtime for m_booster " + result - + ". Runtime must be larger than " + eps + "."; - Monitor.log(str); - throw new Exception(str); - } - - jboost.booster.BrownBoost brown = (jboost.booster.BrownBoost) result; - brown.setRuntime(runtime); - result = brown; - - - - if (result instanceof jboost.booster.YabaBoost) { - jboost.booster.YabaBoost yaba = (jboost.booster.YabaBoost) result; - double c1=0, c2=0, theta=0, nc=0; - double rpos=0, c1pos=0, c2pos=0, thetapos=0, ncpos=0; - double rneg=0, c1neg=0, c2neg=0, thetaneg=0, ncneg=0; - ControllerConfiguration conf = (ControllerConfiguration)c; - try { - c1 = Double.parseDouble(c.getString("c1", "Z1.0")); - c2 = Double.parseDouble(c.getString("c2", "Z1.0")); - theta = Double.parseDouble(c.getString("theta", "Z0.15")); - nc = Double.parseDouble(c.getString("nc", "Z0.15")); - yaba.setParams(c1,c2,theta,nc); - if (conf.getCostSensitive()) { - /* - System.out.println(" runtime: " + rpos + "," + rneg + - " c1: " + c1pos + "," + c1neg + - " c2: " + c2pos + "," + c2neg + - " theta: " + thetapos + "," + thetaneg + - " nc: " + ncpos + "," + ncneg - ); - */ - rpos = Double.parseDouble(c.getString("pos_c","Z")); - rneg = Double.parseDouble(c.getString("neg_c","Z")); - c1pos = Double.parseDouble(c.getString("pos_c1","Z")); - c1neg = Double.parseDouble(c.getString("neg_c1","Z")); - /* - System.out.println(" runtime: " + rpos + "," + rneg + - " c1: " + c1pos + "," + c1neg + - " c2: " + c2pos + "," + c2neg + - " theta: " + thetapos + "," + thetaneg + - " nc: " + ncpos + "," + ncneg - ); - */ - c2pos = Double.parseDouble(c.getString("pos_c2","Z")); - c2neg = Double.parseDouble(c.getString("neg_c2","Z")); - thetapos = Double.parseDouble(c.getString("pos_theta","Z")); - thetaneg = Double.parseDouble(c.getString("neg_theta","Z")); - ncpos = Double.parseDouble(c.getString("pos_nc","Z")); - ncneg = Double.parseDouble(c.getString("neg_nc","Z")); - /* - System.out.println(" runtime: " + rpos + "," + rneg + - " c1: " + c1pos + "," + c1neg + - " c2: " + c2pos + "," + c2neg + - " theta: " + thetapos + "," + thetaneg + - " nc: " + ncpos + "," + ncneg - ); - */ - yaba.setCostSensitiveParams(rpos, c1pos, c2pos, thetapos, ncpos, - rneg, c1neg, c2neg, thetaneg, ncneg); - } - } catch (NumberFormatException e) { - System.err.println("Need to supply appropriate parameters!"); - System.err.println("For YabaBoost normal, we need r, c1, c2, nc, and theta!"); - System.err.println("For YabaBoost cost sensitive, we need neg_c, pos_c, neg_c1, pos_c1, neg_c2, pos_c2, neg_theta, pos_theta, neg_nc, pos_nc"); - throw new InstantiationException("Need more params for yaba"); - } - result = yaba; - } - } // If we have a multilable or multiclass problem, we need to wrap it. --- 51,54 ---- Index: BrownBoost.java =================================================================== RCS file: /cvsroot/jboost/jboost/src/jboost/booster/BrownBoost.java,v retrieving revision 1.11 retrieving revision 1.11.2.1 diff -C2 -d -r1.11 -r1.11.2.1 *** BrownBoost.java 25 Mar 2008 01:00:27 -0000 1.11 --- BrownBoost.java 9 Apr 2008 07:24:03 -0000 1.11.2.1 *************** *** 3,13 **** import java.text.DecimalFormat; import java.text.NumberFormat; - import java.util.ArrayList; - import java.util.List; - import jboost.booster.AdaBoost.BinaryBag; import jboost.controller.Configuration; ! import jboost.examples.Label; ! import jboost.NotSupportedException; [...1462 lines suppressed...] ! super(); ! } ! /** constructor that copies an existing bag */ ! protected BrownBag(BrownBag bag) { ! super(bag); ! } ! /** Output the weights in the bag */ ! public String toString() { ! String s= "BrownBag.\t w0=" + m_w[0] + "\t w1=" + m_w[1] + "\n"; ! return s; ! } ! } /* End BrownBag */ |