jml.clustering
Class L1NMF
java.lang.Object
jml.clustering.Clustering
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
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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
L1NMF
public L1NMF(Options options)
L1NMF
public L1NMF(L1NMFOptions L1NMFOptions)
L1NMF
public L1NMF()
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
-