Class Model

java.lang.Object
de.bwaldvogel.liblinear.Model
All Implemented Interfaces:
Serializable

public final class Model extends Object implements Serializable

Model stores the model obtained from the training procedure

use Linear.loadModel(Path) and Linear.saveModel(Path, Model) to load/save it

See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • bias

      double bias
    • label

      int[] label
      label of each class
    • nr_class

      int nr_class
    • nr_feature

      int nr_feature
    • solverType

      SolverType solverType
    • w

      double[] w
      feature weight array
    • rho

      double rho
      one-class SVM only
  • Constructor Details

    • Model

      public Model()
  • Method Details

    • getNrClass

      public int getNrClass()
      Returns:
      number of classes
    • getNrFeature

      public int getNrFeature()
      Returns:
      number of features
    • getLabels

      public int[] getLabels()
    • getSolverType

      public SolverType getSolverType()
    • getFeatureWeights

      public double[] getFeatureWeights()
      The array w gives feature weights; its size is nr_feature*nr_class but is nr_feature if nr_class = 2. We use one against the rest for multi-class classification, so each feature index corresponds to nr_class weight values. Weights are organized in the following way
       +------------------+------------------+------------+
       | nr_class weights | nr_class weights |  ...
       | for 1st feature  | for 2nd feature  |
       +------------------+------------------+------------+
       
      If bias >= 0, x becomes [x; bias]. The number of features is increased by one, so w is a (nr_feature+1)*nr_class array. The value of bias is stored in the variable bias.
      Returns:
      a copy of the feature weight array as described
      See Also:
    • isProbabilityModel

      public boolean isProbabilityModel()
      Returns:
      true for logistic regression solvers
    • getBias

      public double getBias()
      See Also:
    • get_w_value

      private double get_w_value(int idx, int label_idx)
    • getDecfunCoef

      public double getDecfunCoef(int featIdx, int labelIdx)
      This function gives the coefficient for the feature with feature index = feat_idx and the class with label index = label_idx. Note that feat_idx starts from 1, while label_idx starts from 0. If feat_idx is not in the valid range (1 to nr_feature), then a zero value will be returned. For classification models, if label_idx is not in the valid range (0 to nr_class-1), then a zero value will be returned; for regression models, label_idx is ignored.
      Since:
      1.95
    • getDecfunBias

      public double getDecfunBias(int labelIdx)
      This function gives the bias term corresponding to the class with the label_idx. For classification models, if label_idx is not in a valid range (0 to nr_class-1), then a zero value will be returned; for regression models, label_idx is ignored.
      Since:
      1.95
    • getDecfunRho

      public double getDecfunRho()
      This function gives rho, the bias term used in one-class SVM only. This function can only be called for a one-class SVM model.
      Since:
      2.40
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • arrayEquals

      private static boolean arrayEquals(double[] a, double[] a2)
      don't use Arrays.equals(double[], double[]) here, cause 0.0 and -0.0 should be handled the same
      See Also:
    • arrayHashCode

      private static int arrayHashCode(double[] w)
      see Arrays.hashCode(double[]) but treat 0.0 and -0.0 the same
    • save

      public void save(File modelFile) throws IOException
      Deprecated.
      use save(Path) instead
      Throws:
      IOException
    • save

      public void save(Path modelPath) throws IOException
      Throws:
      IOException
    • save

      public void save(Writer writer) throws IOException
      Throws:
      IOException
    • load

      public static Model load(File modelFile) throws IOException
      Deprecated.
      use load(Path) instead
      Throws:
      IOException
    • load

      public static Model load(Path modelPath) throws IOException
      Throws:
      IOException
    • load

      public static Model load(Reader inputReader) throws IOException
      Throws:
      IOException