RLPMN

written by Auttasak Lapapirojn


Table of content

 

 

 


1. Introduction

RLPMN is software that uses to classify unknown node inside multiple input graph. RLPMN stand for "Robust Label Propagation on Multiple Networks", this program implement the algorithm that describe in paper [1] which referred in the reference section.


2. How to setup 'rlpmn'

 

 

 

o    Download and setup g++, GNU Make, and
BOOST library as describe in its manual.

 

o    If BOOST in not install to standard include
path of your system, you need to specify
path to BOOST library manually.

To specify include path, you need to add
'-Iboost-library-path' after 'Option= '
in file 'makefile' in this folder.

Let denote the BOOST library by $(BOOSTPATH),
then find the following line in makefile.


Option=-DRELEASE –I$(BOOSTPATH)/boost/

 

o    Change working directory to this folder e.g.

 

cd some-place/rlpmn/source/

 

o    Clean this project, to ensure cleanness of
binary output.

 

make clean

 

o    Compiling this project by type 'make'.

 

make

 

o    After compilation finished (without any
errors), you will got an executable file
named 'rlpmn'.


3. Using 'rlpmn'

·         3.1 Basic usage

./rlpmn [options] <params> <result> <netw-1> [edge-2] ... [edge-n]

·         3.2 Require parameters

params

 

Path of file that contain these required parameters
that are 'beta_bias', 'beta_net', 'beta_y' and 'nu'.

result

 

Path of file that contain classification result
which is represented in equation as 'y'.

edge-1
......
edge-n

 

Path of file that describe edges inside each net-
work from network-1 to network-n, these networks
represented in the equation as 'L'

·         3.3 Optional parameters

[-e epsilon ]

 

Specify the value the range of
acceptable error, default is 0.

[-l maximum-loop]

 

Specify the number of maximum
iteration loop, default value
is 10.

[-o output-path]

 

Specify the output path,
default value is put all
output to the stdout.

[-r begin end]



 

Specify the range of node's index
that will be processed by this
program.

Sample: -r 1 4
Detail: Process only node 1, 2 and 3

[-t maximum-task]

 

Specify the number of maximum
running tasks, default value is 1.

·         3.4 Parameter file format

This file use to defined the require parameters for
'rlpmn', which are 'beta_bias', 'beta_net', 'beta_y'
and 'nu'. For more detail about each parameter please
see section 'Reference'.

To defined each parameter, the syntax may look like this

P = [ N ]( p0, p1, ..., pN );

 

P,

Either 'beta_bias', 'beta_net', 'beta_y' and 'nu'.

pI,

Value of parameter at index i-th.

N,

Number of specify values.

For example

beta_bias

= [3](0.5,1.0,2.0);

beta_net

= [3](0.5,1.0,2.0);

beta_y

= [2](500.0,100.0);

nu

= [3](0.5,0.1,0.2);

·         3.5 Classification file format

This file contain classification result for target network,
the number of line in this files must equal to number of
node inside target network. Each line of this file denote
by cI which represent the class of each node.

c1
c2

...

cN


cI, classification result of node I-th, this value can be
either 0 (unknown), 1 (positive) and -1 (negative), as below

+0

node-0 is an unknown case

+1

  is  

node-1 is a positive case

-1

node-2 is a negative case

·         3.6 Network file format

This file use to describe the relation between each
node in label graph. Each line of this file consist
of three parts p, q and t which shown below.

p1, q1, t1
p2, q2, t2

..........

pN, qN, tN


pI, index of source node of edge I-th.
qI, index of destination node of edge I-th.
tI, zero or one indicate the existence of edge I-th.


For example

0, 1, 1

0, 2, 1

 

is

 

1 --- 0 --- 2

1, 2, 0

·         3.7 Output file format

This file contain the feature vector that extract from
the specify network(s). This file begin with running
condition then follow by the value of parameter 'u'
and 'f', then the value of 'ROC' score.

Combination-id beta_bias = ?, beta_net = ?, beta_y = ?, nu = ?

fI = [N]( fI1, fI2, ..., fIN )
uI = [N]( uI1, uI2, ..., uIN )

..............................

fM = [N]( fM1, fM2, ..., fMN )
uM = [N]( uM1, uM2, ..., uMN )

ROC == ???
###

id, Unique id for each running condition of target networks.
fI, feature vector of each node.
uI, feature vector of each network.
ROC, score that use to determine coverage of the output.


4. Example

In this example, we want to obtain feature vector of
each edge inside two testing networks by using 'rlpmn',
running result store in file 'output.txt'.

./rlpmn -o output.txt \
    ../data/test.parameters.prm \
    ../data/test.classifys.csv \
    ../data/test.network-001.csv \
    ../data/test.network-002.csv


5. Reference

[1]

 

Tsuyoshi Kato, Hisashi Kashima, and Masashi Sugiyama:
Robust Label Propagation on Multiple Networks, IEEE
Transactions on Neural Networks, Vol.20, No.1, pp.35--44, 2008.