org.knime.base.node.mine.cluster.fuzzycmeans
Class FCMQualityMeasures

java.lang.Object
  extended by org.knime.base.node.mine.cluster.fuzzycmeans.FCMQualityMeasures

public class FCMQualityMeasures
extends Object

Utility class to compute several cluster quality measures based on a Fuzzy c-means clustering.

Author:
cebron, University of Konstanz

Constructor Summary
FCMQualityMeasures(double[][] clustercenters, double[][] memberships, double[][] data, double fuzzifier)
          Constructor.
 
Method Summary
 double[][] computeFuzzyCovarianceMatrix(int cluster)
          Computes the fuzzy cobariance matrix of a cluster.
 double getBetweenClusterVariation()
          Calculates the Between-Cluster Variation.
 double getFuzzyHyperVolume(int c)
          Computes the Fuzzy HyperVolume for a given cluster.
 double getPartitionCoefficient()
          The partition coefficient is 1 for non-fuzzy cluster partition.
 double getPartitionEntropy()
          Partition entropy (should be maximized).
 double[] getWithinClusterVariations()
          Calculates the Within-Cluster Variation for each cluster.
 double getXieBeniIndex()
          The Xie-Beni index, also called the compactness and separation validity function, is an index that involves the membership values and the dataset.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FCMQualityMeasures

public FCMQualityMeasures(double[][] clustercenters,
                          double[][] memberships,
                          double[][] data,
                          double fuzzifier)
Constructor. Quality measures are calculated directly on double arrays of cluster prototypes and membership matrix.

Parameters:
clustercenters - the clustercenters as 2-dimensional double-array.
memberships - the membership matrix as 2-dimensional double-array.
data - the dataset as 2-dimensional double-array.
fuzzifier - that has been used in the FCM clustering.
Method Detail

getPartitionCoefficient

public double getPartitionCoefficient()
The partition coefficient is 1 for non-fuzzy cluster partition. The smallest value is 1/Number of clusters, if every datapoint is assigned to every cluster.

Returns:
partition coefficient of the clustering.

getPartitionEntropy

public double getPartitionEntropy()
Partition entropy (should be maximized).

Returns:
partition entropy of the clustering.

getXieBeniIndex

public double getXieBeniIndex()
The Xie-Beni index, also called the compactness and separation validity function, is an index that involves the membership values and the dataset.

Returns:
the Xie-Beni index.

computeFuzzyCovarianceMatrix

public double[][] computeFuzzyCovarianceMatrix(int cluster)
Computes the fuzzy cobariance matrix of a cluster.

Parameters:
cluster - the cluster index.
Returns:
covariance matrix.

getWithinClusterVariations

public double[] getWithinClusterVariations()
Calculates the Within-Cluster Variation for each cluster. We take 'crisp' cluster centers to determine the membership from a datarow to a cluster center.

Returns:
withinClusterVariations

getBetweenClusterVariation

public double getBetweenClusterVariation()
Calculates the Between-Cluster Variation.

Returns:
the between cluster variation.

getFuzzyHyperVolume

public double getFuzzyHyperVolume(int c)
Computes the Fuzzy HyperVolume for a given cluster.

Parameters:
c - the cluster index to use.
Returns:
Fuzzy Hypervolume of cluster c.


Copyright, 2003 - 2010. All rights reserved.
University of Konstanz, Germany.
Chair for Bioinformatics and Information Mining, Prof. Dr. Michael R. Berthold.
You may not modify, publish, transmit, transfer or sell, reproduce, create derivative works from, distribute, perform, display, or in any way exploit any of the content, in whole or in part, except as otherwise expressly permitted in writing by the copyright owner or as specified in the license file distributed with this product.