@Override public void readFields(DataInput in) throws IOException { alphaByLambda = in.readDouble(); l1 = new L1(); l1.readFields(in); l2 = new L2(); l2.readFields(in); } }
@Override public double logP(double betaIJ) { return l1.logP(betaIJ) + alphaByLambda * l2.logP(betaIJ); }
@Override public void write(DataOutput out) throws IOException { out.writeDouble(alphaByLambda); l1.write(out); l2.write(out); }
public ElasticBandPrior(double alphaByLambda) { this.alphaByLambda = alphaByLambda; l1 = new L1(); l2 = new L2(1); }
public ElasticBandPrior(double alphaByLambda) { this.alphaByLambda = alphaByLambda; l1 = new L1(); l2 = new L2(1); }
@Override public void readFields(DataInput in) throws IOException { alphaByLambda = in.readDouble(); l1 = new L1(); l1.readFields(in); l2 = new L2(); l2.readFields(in); } }
public ElasticBandPrior(double alphaByLambda) { this.alphaByLambda = alphaByLambda; l1 = new L1(); l2 = new L2(1); }
@Override public void write(DataOutput out) throws IOException { out.writeDouble(alphaByLambda); l1.write(out); l2.write(out); }
@Override public double logP(double betaIJ) { return l1.logP(betaIJ) + alphaByLambda * l2.logP(betaIJ); }
@Override public void readFields(DataInput in) throws IOException { alphaByLambda = in.readDouble(); l1 = new L1(); l1.readFields(in); l2 = new L2(); l2.readFields(in); } }
private PriorFunction getPrior() { switch(prior) { case L1: return new L1(); case L2: return prior.custom ? new L2(prior.param) : new L2(); case elastic: return prior.custom ? new ElasticBandPrior(prior.param) : new ElasticBandPrior(); case uniform: return new UniformPrior(); case t: if (!prior.custom) throw new IllegalArgumentException("Must specify df with 'priorParam' in config to use T prior function."); return new TPrior(prior.param); case unknown: return new L2(1); default: return new L2(1); } }
@Override public void write(DataOutput out) throws IOException { out.writeDouble(alphaByLambda); l1.write(out); l2.write(out); }
@Override public double logP(double betaIJ) { return l1.logP(betaIJ) + alphaByLambda * l2.logP(betaIJ); }
OnlineLogisticRegression lr = new OnlineLogisticRegression(3, 5, new L2(1));
OnlineLogisticRegression lr = new OnlineLogisticRegression(3, 2, new L2(1));