Class Model

    • Field Detail

      • bias

        double bias
      • label

        int[] label
        label of each class
      • nr_class

        int nr_class
      • nr_feature

        int nr_feature
      • w

        double[] w
        feature weight array
      • rho

        double rho
        one-class SVM only
    • Constructor Detail

      • Model

        public Model()
    • Method Detail

      • 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:
        getBias()
      • isProbabilityModel

        public boolean isProbabilityModel()
        Returns:
        true for logistic regression solvers
      • 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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • hashCode

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

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.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:
        Linear.saveModel(java.io.Writer, Model)
      • arrayHashCode

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

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

        public void save​(java.nio.file.Path modelPath)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • load

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

        public static Model load​(java.nio.file.Path modelPath)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • load

        public static Model load​(java.io.Reader inputReader)
                          throws java.io.IOException
        Throws:
        java.io.IOException