Package elki.math.statistics.dependence
Class HoughSpaceMeasure
- java.lang.Object
-
- elki.math.statistics.dependence.HoughSpaceMeasure
-
- All Implemented Interfaces:
Dependence
@Priority(-100) @Reference(authors="A. Tatu, G. Albuquerque, M. Eisemann, P. Bak, H. Theisel, M. A. Magnor, D. A. Keim", title="Automated Analytical Methods to Support Visual Exploration of High-Dimensional Data", booktitle="IEEE Trans. Visualization and Computer Graphics", url="https://doi.org/10.1109/TVCG.2010.242", bibkey="DBLP:journals/tvcg/TatuAEBTMK11") public class HoughSpaceMeasure extends java.lang.Object implements Dependence
HSM: Compute the "interestingness" of dimension connections using the Hough transformation. This is a very visual approach, designed to find certain patterns in parallel coordinates visualizations. The patterns detected here occur mostly if you have mutliple clusters of linear patterns as far as we understood the approach (which is not easy to use, unfortunately).Reference:
A. Tatu, G. Albuquerque, M. Eisemann, P. Bak, H. Theisel, M. A. Magnor, D. A. Keim.
Automated Analytical Methods to Support Visual Exploration of High-Dimensional Data.
IEEE Trans. Visualization and Computer GraphicsFIXME: while the plots look reasonable, this fails to find interesting associations. This needs closer investigation.
- Since:
- 0.5.5
- Author:
- Erich Schubert, Robert Rödler
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classHoughSpaceMeasure.ParParameterization class.-
Nested classes/interfaces inherited from interface elki.math.statistics.dependence.Dependence
Dependence.Utils
-
-
Field Summary
Fields Modifier and Type Field Description private intresolutionResolution of image.static HoughSpaceMeasureSTATICStatic instance.private static intSTEPSAngular resolution.private static SinCosTabletablePrecompute sinus and cosinus
-
Constructor Summary
Constructors Constructor Description HoughSpaceMeasure()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private intcountAboveThreshold(int[][] mat, double threshold)Count the number of cells above the threshold.<A,B>
doubledependence(NumberArrayAdapter<?,A> adapter1, A data1, NumberArrayAdapter<?,B> adapter2, B data2)Measure the dependence of two variables.private static voiddrawLine(int x0, int y0, int x1, int y1, boolean[][] pic)Draw a line onto the array, using the classic Bresenham algorithm.private int[][]houghTransformation(boolean[][] mat)Perform a hough transformation on the binary image in "mat".private longsumMatrix(int[][] mat)Compute the sum of a matrix.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface elki.math.statistics.dependence.Dependence
dependence, dependence, dependence
-
-
-
-
Field Detail
-
STATIC
public static final HoughSpaceMeasure STATIC
Static instance.
-
STEPS
private static final int STEPS
Angular resolution. Best if divisible by 4: smaller tables. The original publication used 50.- See Also:
- Constant Field Values
-
resolution
private final int resolution
Resolution of image.- See Also:
- Constant Field Values
-
table
private static final SinCosTable table
Precompute sinus and cosinus
-
-
Method Detail
-
dependence
public <A,B> double dependence(NumberArrayAdapter<?,A> adapter1, A data1, NumberArrayAdapter<?,B> adapter2, B data2)
Description copied from interface:DependenceMeasure the dependence of two variables.This is the more flexible API, which allows using different internal data representations.
- Specified by:
dependencein interfaceDependence- Type Parameters:
A- First array typeB- Second array type- Parameters:
adapter1- First data adapterdata1- First data setadapter2- Second data adapterdata2- Second data set- Returns:
- Dependence measure
-
sumMatrix
private long sumMatrix(int[][] mat)
Compute the sum of a matrix.- Parameters:
mat- Matrix- Returns:
- Sum of all elements
-
countAboveThreshold
private int countAboveThreshold(int[][] mat, double threshold)Count the number of cells above the threshold.- Parameters:
mat- Matrixthreshold- Threshold- Returns:
- Number of elements above the threshold.
-
houghTransformation
private int[][] houghTransformation(boolean[][] mat)
Perform a hough transformation on the binary image in "mat".- Parameters:
mat- Binary image- Returns:
- Hough transformation of image.
-
drawLine
private static void drawLine(int x0, int y0, int x1, int y1, boolean[][] pic)Draw a line onto the array, using the classic Bresenham algorithm.- Parameters:
x0- Start Xy0- Start Yx1- End Xy1- End Ypic- Picture array
-
-