Last data update: 2014.03.03

R: a new discriminant Non-Negative Matrix Factorization (dNMF)
ndNMFR Documentation

a new discriminant Non-Negative Matrix Factorization (dNMF)

Description

The ndNMF algorithm with the additional Fisher criterion on the cost function of conventional NMF was designed to increase class-related discriminating power.

Usage

ndNMF(dat, trainlabel, r = 2, lambada = 0.1, maxIter = 1000,
  tol = 1e-07, log = TRUE, plotit = FALSE, verbose = FALSE, ...)

Arguments

dat

a matrix with gene in row and sample in column

trainlabel

the label of sample, like c(1,1,2,2,2)

r

the dimension of expected reduction dimension, with the default value 2

lambada

a relative weighting factor for the discriminant. Default 0.1

maxIter

the maximum iteration of update rules, with the default value 1000

tol

the toleration of coverange, with the default value 1e-7

log

log2 data. Default is TRUE.

plotit

whether plot H (V=WH). Default: FALSE.

verbose

TRUE

...

to gplots::heatmap.2

Details

This algorithm is based on articles.

  1. Kim, Bo-Kyeong, and Soo-Young Lee. "Spectral Feature Extraction Using dNMF for Emotion Recognition in Vowel Sounds." Neural Information Processing. Springer Berlin Heidelberg, 2013.

  2. Lee, Soo-Young, Hyun-Ah Song, and Shun-ichi Amari. "A new discriminant NMF algorithm and its application to the extraction of subtle emotional differences in speech." Cognitive neurodynamics 6.6 (2012): 525-535.

Author(s)

Zhilong Jia and Xiang Zhang

Examples

dat <- rbind(matrix(c(rep(3, 16), rep(8, 24)), ncol=5),
matrix(c(rep(5, 16), rep(5, 24)), ncol=5),
matrix(c(rep(18, 16), rep(7, 24)), ncol=5)) +
matrix(runif(120,-1,1), ncol=5)
trainlabel <- c(1,1,2,2,2)

res <- ndNMF(dat, trainlabel, r=2, lambada = 0.1)
res$H
res$rnk

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(DNMF)
Loading required package: foreach
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/DNMF/ndNMF.Rd_%03d_medium.png", width=480, height=480)
> ### Name: ndNMF
> ### Title: a new discriminant Non-Negative Matrix Factorization (dNMF)
> ### Aliases: ndNMF
> 
> ### ** Examples
> 
> dat <- rbind(matrix(c(rep(3, 16), rep(8, 24)), ncol=5),
+ matrix(c(rep(5, 16), rep(5, 24)), ncol=5),
+ matrix(c(rep(18, 16), rep(7, 24)), ncol=5)) +
+ matrix(runif(120,-1,1), ncol=5)
> trainlabel <- c(1,1,2,2,2)
> 
> res <- ndNMF(dat, trainlabel, r=2, lambada = 0.1)
> res$H
             [,1]         [,2]         [,3]         [,4]         [,5]
[1,] 2.5129088582 2.487090e+00 6.672509e-07 2.924090e-07 7.186721e-08
[2,] 0.0000167504 4.961246e-06 1.681471e+00 1.658596e+00 1.659911e+00
> res$rnk
 [1] 1.0543007 1.1694131 1.0366168 1.0111270 1.1097185 1.1053974 1.1567142
 [8] 1.0740354 0.5343142 0.6013354 0.5698823 0.5952684 0.5210611 0.5517419
[15] 0.5570401 0.4614601 0.1651131 0.1679323 0.1445783 0.2189003 0.1368359
[22] 0.1414078 0.1888376 0.1340935
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>