All Packages Class Hierarchy This Package Previous Next Index WEKA's home
java.lang.Object
|
+----weka.classifiers.Classifier
|
+----weka.classifiers.DistributionClassifier
|
+----weka.classifiers.functions.Logistic
There are some modifications, however, compared to the paper of le
Cessie and van Houwelingen(1992):
If there are k classes for n instances with m attributes, the
parameter matrix B to be calculated will be an m*(k-1) matrix.
The probability for class j except the last class is
Pj(Xi) = exp(XiBj)/((sum[j=1..(k-1)]exp(Xi*Bj))+1)
The last class has probability
1-(sum[j=1..(k-1)]Pj(Xi)) = 1/((sum[j=1..(k-1)]exp(Xi*Bj))+1)
The (negative) multinomial log-likelihood is thus:
L = -sum[i=1..n]{
sum[j=1..(k-1)](Yij * ln(Pj(Xi))) +
(1 - (sum[j=1..(k-1)]Yij)) * ln(1 - sum[j=1..(k-1)]Pj(Xi))
} + ridge * (B^2)
In order to find the matrix B for which L is minimised, a
Quasi-Newton Method is used to search for the optimized values of
the m*(k-1) variables. Note that before we use the optimization
procedure, we "squeeze" the matrix B into a m*(k-1) vector. For
details of the optimization procedure, please check
weka.core.Optimization class.
Although original Logistic Regression does not deal with instance weights, we modify the algorithm a little bit to handle the instance weights.
Reference: le Cessie, S. and van Houwelingen, J.C. (1992). Ridge Estimators in Logistic Regression. Applied Statistics, Vol. 41, No. 1, pp. 191-201.
Missing values are replaced using a ReplaceMissingValuesFilter, and nominal attributes are transformed into numeric attributes using a NominalToBinaryFilter.
Valid options are:
-D
Turn on debugging output.
-R
-M
-D
-R ridge
-M num
Set the ridge parameter for the log-likelihood.
Set the maximum number of iterations
(default -1, iterates until convergence).
Logistic()
buildClassifier(Instances)
distributionForInstance(Instance)
getDebug()
getMaxIts()
getOptions()
getRidge()
listOptions()
main(String[])
setDebug(boolean)
setMaxIts(int)
setOptions(String[])
setRidge(double)
toString()
Logistic
public Logistic()
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration describing the available options
setOptions
public void setOptions(java.lang.String options[]) throws java.lang.Exception
Parses a given list of options. Valid options are:
Turn on debugging output.
Set the ridge parameter for the log-likelihood.
Set the maximum number of iterations.
(default -1, until convergence)
options - the list of options as an array of strings
getOptions
public java.lang.String[] getOptions()
Gets the current settings of the classifier.
setDebug
public void setDebug(boolean debug)
Sets whether debugging output will be printed.
debug - true if debugging output should be printed
getDebug
public boolean getDebug()
Gets whether debugging output will be printed.
setRidge
public void setRidge(double ridge)
Sets the ridge in the log-likelihood.
ridge - the ridge
getRidge
public double getRidge()
Gets the ridge in the log-likelihood.
getMaxIts
public int getMaxIts()
Get the value of MaxIts.
setMaxIts
public void setMaxIts(int newMaxIts)
Set the value of MaxIts.
newMaxIts - Value to assign to MaxIts.
buildClassifier
public void buildClassifier(Instances train) throws java.lang.Exception
Builds the classifier
train - the training data to be used for generating the
boosted classifier.
distributionForInstance
public double[] distributionForInstance(Instance instance) throws java.lang.Exception
Computes the distribution for a given instance
instance - the instance for which distribution is computed
toString
public java.lang.String toString()
Gets a string describing the classifier.
main
public static void main(java.lang.String argv[])
Main method for testing this class.
argv - should contain the command line arguments to the
scheme (see Evaluation)
All Packages Class Hierarchy This Package Previous Next Index WEKA's home