This archive contains methods for assessing data mining results on 
matrices using randomization as described in

Markus Ojala: Assessing Data Mining Results on Matrices with Randomization. 
In ICDM'10: Proceeding of the 10th IEEE International Conference on Data Mining, pp. 959-964.


-------
General
-------

The SwapConstrained method is implemented with Java but it is intended 
to use with the provided Matlab interface. Use the following commands in 
Matlab to get help using the methods:

help swap 		%the main randomization method
help discretize		%the method controlling discretization

Short example:
X  = rand(1000,100);
DX = discretize(X); 	%discretized version of X
DY = swap(DX); 		%randomized discretization
Y  = undiscretize(DY); 	%randomized version of X


----------------------
Descriptions of files
----------------------

MAIN METHODS
 - discretize.m				discretizes matrix X
 - swap.m				randomizes discretization DX
 - undiscretize.m			undiscretizes DY

ANALYSIS METHODS
 - calcRankDiff.m			difference between two discretized matrices
 - calcRankDist.m			distance between two discretized matrices
 - calcRankError.m			average CDF error between two discretized matrices

JAVA PACKAGES
 - swap.jar				java classes of SwapConstrained (swap.m needs this)
 - trove-2.1.0.jar			auxiliary package used by swap.jar, taken from http://trove4j.sourceforge.net/

JAVA SOURCES
 - Swap.java				SwapConstrained for full matrices
 - SwapParse.java			SwapConstrained for sparse matrices
 - MersenneTwisterFast.java 		Taken from http://www.cs.gmu.edu/~sean/research/mersenne/MersenneTwisterFast.java


-----------------------------------
Note about Matlab and Java versions
-----------------------------------

The methods works on such with Matlab 7.5 and newer. With older Matlab 
versions, Matlab has to be changed to use newer Java virtual machine (at 
least 1.5), see Matlab support in 
http://www.mathworks.com/support/solutions/data/1-1812J.html for more help. 
To increase the heap space for the JVM, see 
http://www.mathworks.com/support/solutions/data/1-18I2C.html for more help.

