@Reference(title="Evaluation of Clusterings \u2013 Metrics and Visual Support", authors="Elke Achtert, Sascha Goldhofer, Hans-Peter Kriegel, Erich Schubert, Arthur Zimek", booktitle="Proc. 28th International Conference on Data Engineering (ICDE) 2012", url="http://dx.doi.org/10.1109/ICDE.2012.128") public class Segments extends BasicResult implements Iterable<Segment>
Segments are the equally paired database objects of all given (2+) clusterings. Given a contingency table, an object Segment represents the table's cells where an intersection of classes and labels are given. Pair Segments are created by converting an object Segment into its pair representation. Converting all object Segments into pair Segments results in a larger number of pair Segments, if any fragmentation (no perfect match of clusters) within the contingency table has occurred (multiple cells on one row or column). Thus for ever object Segment exists a corresponding pair Segment. Additionally pair Segments represent pairs that are only in one Clustering which occurs for each split of a clusterings cluster by another clustering. Here, these pair Segments are referenced as fragmented Segments. Within the visualization they describe (at least two) pair Segments that have a corresponding object Segment.
Reference:
Evaluation of Clusterings – Metrics and Visual Support
Elke Achtert, Sascha Goldhofer, Hans-Peter Kriegel, Erich Schubert, Arthur
Zimek
In: Proc. 28th International Conference on Data Engineering (ICDE) 2012
Details on the experimental setup can be found at: wiki/Examples/ClusterEvaluation
Modifier and Type | Field and Description |
---|---|
private int |
actualPairs
Pairs actually present in the data set
|
private List<Clustering<?>> |
clusterings
Clusterings
|
private int |
clusteringsCount
Number of clusterings in comparison
|
private List<List<? extends Cluster<?>>> |
clusters
Clusters
|
private static Logging |
LOG
Class logger
|
private int[] |
numclusters
Number of Clusters for each clustering
|
private TreeMap<Segment,Segment> |
segments
The actual segments
|
private int |
totalObjects
Total number of objects
|
Constructor and Description |
---|
Segments(List<Clustering<?>> clusterings,
HierarchicalResult baseResult)
Initialize segments.
|
Modifier and Type | Method and Description |
---|---|
String |
getClusteringDescription(int clusteringID)
Get the description of the nth clustering.
|
int |
getClusterings()
Get the number of clusterings
|
int |
getHighestClusterCount()
Returns the highest number of Clusters in the clusterings
|
int |
getPairCount(boolean withUnclusteredPairs)
Get total number of pairs with or without the unclustered pairs.
|
List<Segment> |
getPairedSegments(Segment unpairedSegment)
Return to a given segment with unpaired objects, the corresponding segments
that result in an unpaired segment.
|
int |
getTotalClusterCount()
Return the sum of all clusters
|
Iterator<Segment> |
iterator() |
private void |
makeOrUpdateSegment(int[] path,
DBIDs ids,
int pairsize) |
private void |
recursivelyFill(List<List<? extends Cluster<?>>> cs) |
private void |
recursivelyFill(List<List<? extends Cluster<?>>> cs,
int depth,
SetDBIDs first,
SetDBIDs second,
int[] path,
boolean objectsegment) |
int |
size()
Get the number of segments
|
Segment |
unifySegment(Segment temp) |
getLongName, getShortName
addChildResult, getHierarchy, setHierarchy
private static final Logging LOG
private List<Clustering<?>> clusterings
private int clusteringsCount
private int[] numclusters
private int totalObjects
private int actualPairs
public Segments(List<Clustering<?>> clusterings, HierarchicalResult baseResult)
clusterings
- List of clusterings in comparisonbaseResult
- used to retrieve db objectsprivate void recursivelyFill(List<List<? extends Cluster<?>>> cs, int depth, SetDBIDs first, SetDBIDs second, int[] path, boolean objectsegment)
private void makeOrUpdateSegment(int[] path, DBIDs ids, int pairsize)
public String getClusteringDescription(int clusteringID)
clusteringID
- Clustering numberpublic List<Segment> getPairedSegments(Segment unpairedSegment)
unpairedSegment
- public Segment unifySegment(Segment temp)
temp
- Temporary segment to be unifiedpublic int size()
public int getPairCount(boolean withUnclusteredPairs)
withUnclusteredPairs
- if false, segment with unclustered pairs is
removedpublic int getClusterings()
public int getTotalClusterCount()
public int getHighestClusterCount()