jml.clustering
Class L1NMF

java.lang.Object
  extended by jml.clustering.Clustering
      extended by jml.clustering.L1NMF
Direct Known Subclasses:
NMF

public class L1NMF
extends Clustering

A Java implementation for L1NMF which solves the following optimization problem:

min || X - G * F ||_F^2 + gamma * ||F||_{sav} + nu * ||G||_{sav}
s.t. G >= 0, F >= 0

Version:
1.0, Jan. 3rd, 2013
Author:
Mingjie Qian

Field Summary
 boolean calc_OV
           
 double epsilon
           
 double gamma
           
(package private)  org.apache.commons.math.linear.RealMatrix initializer
           
 int maxIter
           
 double mu
           
 java.util.ArrayList<java.lang.Double> valueList
           
 boolean verbose
           
 
Fields inherited from class jml.clustering.Clustering
centers, dataMatrix, indicatorMatrix, nClus, nFeature, nSample
 
Constructor Summary
L1NMF()
           
L1NMF(L1NMFOptions L1NMFOptions)
           
L1NMF(Options options)
           
 
Method Summary
 void clustering()
          Do clustering.
 void clustering(org.apache.commons.math.linear.RealMatrix G0)
          Do clustering with a specified initializer.
private  double f(org.apache.commons.math.linear.RealMatrix X, org.apache.commons.math.linear.RealMatrix F, org.apache.commons.math.linear.RealMatrix G, org.apache.commons.math.linear.RealMatrix E_F, org.apache.commons.math.linear.RealMatrix E_G)
           
 void initialize(org.apache.commons.math.linear.RealMatrix G0)
          Initialize the indicator matrix.
static void main(java.lang.String[] args)
           
private  org.apache.commons.math.linear.RealMatrix UpdateF(org.apache.commons.math.linear.RealMatrix Y, org.apache.commons.math.linear.RealMatrix X, double gamma, org.apache.commons.math.linear.RealMatrix A0)
           
private  org.apache.commons.math.linear.RealMatrix UpdateG(org.apache.commons.math.linear.RealMatrix Y, org.apache.commons.math.linear.RealMatrix X, double mu, org.apache.commons.math.linear.RealMatrix A0)
           
 
Methods inherited from class jml.clustering.Clustering
feedData, feedData, getAccuracy, getCenters, getData, getIndicatorMatrix
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

epsilon

public double epsilon

maxIter

public int maxIter

gamma

public double gamma

mu

public double mu

calc_OV

public boolean calc_OV

verbose

public boolean verbose

valueList

public java.util.ArrayList<java.lang.Double> valueList

initializer

org.apache.commons.math.linear.RealMatrix initializer
Constructor Detail

L1NMF

public L1NMF(Options options)

L1NMF

public L1NMF(L1NMFOptions L1NMFOptions)

L1NMF

public L1NMF()
Method Detail

initialize

public void initialize(org.apache.commons.math.linear.RealMatrix G0)
Description copied from class: Clustering
Initialize the indicator matrix.

Overrides:
initialize in class Clustering
Parameters:
G0 - initial indicator matrix

clustering

public void clustering()
Description copied from class: Clustering
Do clustering. Please call initialize() before using this method.

Specified by:
clustering in class Clustering

clustering

public void clustering(org.apache.commons.math.linear.RealMatrix G0)
Description copied from class: Clustering
Do clustering with a specified initializer. Please use null if you want to use random initialization.

Overrides:
clustering in class Clustering
Parameters:
G0 - initial indicator matrix, if null random initialization will be used

UpdateG

private org.apache.commons.math.linear.RealMatrix UpdateG(org.apache.commons.math.linear.RealMatrix Y,
                                                          org.apache.commons.math.linear.RealMatrix X,
                                                          double mu,
                                                          org.apache.commons.math.linear.RealMatrix A0)

UpdateF

private org.apache.commons.math.linear.RealMatrix UpdateF(org.apache.commons.math.linear.RealMatrix Y,
                                                          org.apache.commons.math.linear.RealMatrix X,
                                                          double gamma,
                                                          org.apache.commons.math.linear.RealMatrix A0)

f

private double f(org.apache.commons.math.linear.RealMatrix X,
                 org.apache.commons.math.linear.RealMatrix F,
                 org.apache.commons.math.linear.RealMatrix G,
                 org.apache.commons.math.linear.RealMatrix E_F,
                 org.apache.commons.math.linear.RealMatrix E_G)

main

public static void main(java.lang.String[] args)
Parameters:
args -