Learn R Programming

simone (version 0.1-4)

InferClasses: Vertex Classification Inference

Description

Perform graph node classification using the graph's structure, based on a latent structure model where edge weights are Laplace distributed.

Usage

InferClasses(K, Q, ...)

Arguments

K
A $p \times p$ graph precision matrix.
Q
The number of classes to estimate.
...
Additional arguments are available, see Details

Value

  • Returns a list with the folowing components:
  • TauA $p \times Q$ node class probability matrix.
  • clVector : node classification (IC result).
  • parametersA list composed by the estimated parameters of the mixture of Laplace distributions: a $Q\times Q$ matrix lambda of dispersions, a $Q\times Q$ matrix mu of means and a size $Q$ vector alpha of class proportions. If the function has been called with not-null param.default argument, parameters will be the same.
  • iterationFinal iteration number
  • JVector of successive values of optimized criterion
  • deltaVector of the successive convergence values.
  • class.lossesBoolean vector indicating if a class was lost for each iteration.

Details

InferClasses is based on the graph node classification algorithm MixNet, using a Laplacian mixture variant. The algorithm will stop if classes are lost during estimation.

Additional arguments are : [object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

References

J.-J. Daudin, F. Picard, et S. Robin. A mixture model for random graphs. Stat. Comput., 18(2), p.173--183, 2008.

See Also

SimDataAffiliation, Mplot, Gplot

Examples

Run this code
library(simone)  

  ## Simulate a data set with obvious structure
  p <- 200
  n <- 1 
  proba.in  <- 0.2
  proba.out <- 0.01
  alpha <- c(.5,.3,.2)
  X <- SimDataAffiliation (p, n, proba.in, proba.out, alpha, proba.dust=0.2)

  ## estimate vertex classification
  res <- InferClasses(X$K.theo, 3)

  ## See results
  par(mfrow=c(2,2))
  Mplot(X$K.theo, X$cl.theo, main="Theoretical classification")
  Mplot(X$K.theo, res$cl, main="IC classification") 
  g1 <- Gplot(X$K.theo, X$cl.theo, main="Theoretical classification")
  g2 <- Gplot(X$K.theo, res$cl, main="IC classification", coord=g1) 
  print(table(X$cl.theo,res$cl))

Run the code above in your browser using DataLab