public final class ComputationState
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
ComputationState.GLMSubsetGinfo
This method will grab a subset of the gradient for each multinomial class.
|
static class |
ComputationState.GramXY
Cached state of COD (with covariate updates) solver.
|
Modifier and Type | Field and Description |
---|---|
DataInfo[] |
_activeDataMultinomial |
boolean |
_lsNeeded |
java.lang.String[] |
_randCoeffNames |
Constructor and Description |
---|
ComputationState(water.Job job,
GLMModel.GLMParameters parms,
DataInfo dinfo,
GLM.BetaConstraint bc,
GLM.BetaInfo bi) |
ComputationState(water.Job job,
GLMModel.GLMParameters parms,
DataInfo dinfo,
GLM.BetaConstraint bc,
GLM.BetaInfo bi,
double[][][] penaltyMat,
int[][] gamColInd) |
Modifier and Type | Method and Description |
---|---|
GLM.BetaConstraint |
activeBC() |
DataInfo |
activeData() |
DataInfo |
activeDataMultinomial() |
DataInfo |
activeDataMultinomial(int c) |
void |
addOffset2Cols(int[] cols) |
double |
alpha() |
protected void |
applyStrongRules(double lambdaNew,
double lambdaOld)
Apply strong rules to filter out expected inactive (with zero coefficient) predictors.
|
protected int |
applyStrongRulesMultinomial_old(double lambdaNew,
double lambdaOld)
Apply strong rules to filter out expected inactive (with zero coefficient) predictors.
|
protected void |
applyStrongRulesMultinomial(double lambdaNew,
double lambdaOld)
Apply strong rules to filter out expected inactive (with zero coefficient) predictors.
|
double[] |
beta() |
double[] |
betaMultinomial() |
double[] |
betaMultinomial(int c,
double[] beta) |
double[] |
betaMultinomialFull(int c,
double[] beta) |
protected boolean |
checkKKTs() |
protected boolean |
checkKKTsMultinomial() |
ComputationState.GramXY |
computeGram(double[] beta,
GLMModel.GLMParameters.Solver s) |
ComputationState.GramXY |
computeGramRCC(double[] beta,
GLMModel.GLMParameters.Solver s)
This method is used only for multinomial family.
|
protected ComputationState.GramXY |
computeNewGram(DataInfo activeData,
double[] beta,
GLMModel.GLMParameters.Solver s) |
boolean |
converged() |
double |
deviance() |
boolean |
dispersionEstimated() |
void |
dropActiveData() |
double[] |
expandBeta(double[] beta) |
static double[] |
expandToFullArray(double[] shortenArr,
int[] activeCols,
int _totalBetaLength,
int nclasses,
int betaLengthPerClass) |
static double[] |
extractSubRange(int N,
int c,
int[] ids,
double[] src)
This method will return a double array that is extracted from src (which includes active and non-active columns)
to only include active columns stated in ids.
|
static int[] |
genActiveColsAllClass(int activeColsLen,
int numBetaPerClass,
int[] activeColsOrig,
int nclasses) |
int[] |
genActiveColsIndClass(int activeColsLen,
int numBetaPerClass,
int[] activeColsOrig,
int activeClass,
int nclasses) |
double |
get_correction_HL() |
double[] |
get_phi() |
water.fvec.Frame |
get_priorw_wpsi() |
double[] |
get_psi() |
double |
get_tau() |
boolean |
getLambdaNull() |
GLM.GLMGradientInfo |
ginfo() |
ComputationState.GLMSubsetGinfo |
ginfoMultinomial(int c) |
ComputationState.GLMSubsetGinfo |
ginfoMultinomialRCC(int c) |
boolean |
ginfoNull() |
GLM.GLMGradientSolver |
gslvr() |
OptimizationUtils.GradientSolver |
gslvrMultinomial(int c) |
double |
l1pen() |
double |
l2pen() |
double |
lambda() |
double |
likelihood() |
double |
objective() |
double |
objective(double[] beta,
double likelihood) |
int[] |
removeCols(int[] cols) |
void |
set_beta_HGLM(double[] beta,
int startIdx,
int len,
boolean interceptFirst)
Copy GLM coefficients stored in beta to _beta of computationState
|
void |
set_likelihoodInfo(double hlik,
double pvh,
double pbvh,
double cAIC) |
void |
set_phi(double[] phi) |
void |
set_psi(double[] psi) |
void |
set_sumEtaSquareConvergence(double[] sumInfo) |
void |
set_tau(double tau) |
void |
set_ubeta_HGLM(double[] ubeta,
int startIdx,
int len) |
void |
setActiveClass(int activeClass) |
protected void |
setActiveDataMultinomialNull() |
protected void |
setActiveDataNull() |
protected void |
setAllIn(boolean val) |
void |
setAlpha(double alpha) |
void |
setBC(GLM.BetaConstraint bc) |
protected void |
setBeta(double[] beta) |
protected void |
setBetaDiff(double betaDiff) |
void |
setBetaMultinomial(int c,
double[] beta,
double[] bc) |
protected void |
setGinfo(GLM.GLMGradientInfo ginfo) |
void |
setgMax(double gmax) |
protected void |
setGradientErr(double gErr) |
protected void |
setGslvrNull() |
protected void |
setHGLMComputationState(double[] beta,
double[] ubeta,
double[] psi,
double[] phi,
double hlcorrection,
double tau,
water.fvec.Frame wpsi,
java.lang.String[] randCoeffNames) |
protected void |
setIter(int iteration) |
void |
setLambda(double lambda) |
void |
setLambdaMax(double lmax) |
protected void |
setLambdaSimple(double lambda) |
protected void |
setLikelihood(double llk) |
void |
setZValues(double[] zValues,
boolean dispersionEstimated) |
double[] |
shrinkFullArray(double[] fullArray) |
java.lang.String |
toString() |
double[] |
ubeta() |
protected double |
updateState(double[] beta,
double likelihood) |
protected double |
updateState(double[] beta,
GLM.GLMGradientInfo ginfo) |
double[] |
zValues() |
public java.lang.String[] _randCoeffNames
public boolean _lsNeeded
public DataInfo[] _activeDataMultinomial
public ComputationState(water.Job job, GLMModel.GLMParameters parms, DataInfo dinfo, GLM.BetaConstraint bc, GLM.BetaInfo bi)
public ComputationState(water.Job job, GLMModel.GLMParameters parms, DataInfo dinfo, GLM.BetaConstraint bc, GLM.BetaInfo bi, double[][][] penaltyMat, int[][] gamColInd)
public void set_sumEtaSquareConvergence(double[] sumInfo)
public void set_beta_HGLM(double[] beta, int startIdx, int len, boolean interceptFirst)
beta:
- store coefficients to be copied fromstartIdx:
- first index of beta to copy fromlen:
- length of coefficients to copy from betainterceptFirst:
- true if the first index of beta stored the intercept termpublic void set_likelihoodInfo(double hlik, double pvh, double pbvh, double cAIC)
public void set_ubeta_HGLM(double[] ubeta, int startIdx, int len)
public void setZValues(double[] zValues, boolean dispersionEstimated)
public double[] get_psi()
public double get_correction_HL()
public double[] get_phi()
public water.fvec.Frame get_priorw_wpsi()
public double get_tau()
public boolean getLambdaNull()
public void set_tau(double tau)
public void set_psi(double[] psi)
public void set_phi(double[] phi)
public GLM.GLMGradientSolver gslvr()
public double lambda()
public double alpha()
public double[] zValues()
public boolean dispersionEstimated()
public void setLambdaMax(double lmax)
public void setgMax(double gmax)
public void setAlpha(double alpha)
public void setLambda(double lambda)
public double[] beta()
public double[] ubeta()
public GLM.GLMGradientInfo ginfo()
public GLM.BetaConstraint activeBC()
public double likelihood()
public boolean ginfoNull()
public DataInfo activeData()
public DataInfo activeDataMultinomial()
public void dropActiveData()
public java.lang.String toString()
toString
in class java.lang.Object
public double l1pen()
public double l2pen()
protected void applyStrongRules(double lambdaNew, double lambdaOld)
public DataInfo activeDataMultinomial(int c)
public static double[] extractSubRange(int N, int c, int[] ids, double[] src)
N
- c
- ids
- src
- public double[] betaMultinomial()
public double[] betaMultinomial(int c, double[] beta)
public double[] betaMultinomialFull(int c, double[] beta)
public double[] shrinkFullArray(double[] fullArray)
public static double[] expandToFullArray(double[] shortenArr, int[] activeCols, int _totalBetaLength, int nclasses, int betaLengthPerClass)
public static int[] genActiveColsAllClass(int activeColsLen, int numBetaPerClass, int[] activeColsOrig, int nclasses)
public int[] genActiveColsIndClass(int activeColsLen, int numBetaPerClass, int[] activeColsOrig, int activeClass, int nclasses)
public ComputationState.GLMSubsetGinfo ginfoMultinomial(int c)
public ComputationState.GLMSubsetGinfo ginfoMultinomialRCC(int c)
public void setBC(GLM.BetaConstraint bc)
public void setActiveClass(int activeClass)
public double deviance()
public OptimizationUtils.GradientSolver gslvrMultinomial(int c)
public void setBetaMultinomial(int c, double[] beta, double[] bc)
protected int applyStrongRulesMultinomial_old(double lambdaNew, double lambdaOld)
protected void applyStrongRulesMultinomial(double lambdaNew, double lambdaOld)
protected boolean checkKKTsMultinomial()
protected boolean checkKKTs()
public void addOffset2Cols(int[] cols)
public int[] removeCols(int[] cols)
public double objective()
public double objective(double[] beta, double likelihood)
protected double updateState(double[] beta, double likelihood)
public boolean converged()
protected double updateState(double[] beta, GLM.GLMGradientInfo ginfo)
protected void setBetaDiff(double betaDiff)
protected void setGradientErr(double gErr)
protected void setGinfo(GLM.GLMGradientInfo ginfo)
protected void setBeta(double[] beta)
protected void setIter(int iteration)
protected void setLikelihood(double llk)
protected void setAllIn(boolean val)
protected void setGslvrNull()
protected void setActiveDataMultinomialNull()
protected void setActiveDataNull()
protected void setLambdaSimple(double lambda)
protected void setHGLMComputationState(double[] beta, double[] ubeta, double[] psi, double[] phi, double hlcorrection, double tau, water.fvec.Frame wpsi, java.lang.String[] randCoeffNames)
public double[] expandBeta(double[] beta)
protected ComputationState.GramXY computeNewGram(DataInfo activeData, double[] beta, GLMModel.GLMParameters.Solver s)
public ComputationState.GramXY computeGramRCC(double[] beta, GLMModel.GLMParameters.Solver s)
beta
- s
- public ComputationState.GramXY computeGram(double[] beta, GLMModel.GLMParameters.Solver s)