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 class
HoughSpaceMeasure.Par
Parameterization class.-
Nested classes/interfaces inherited from interface elki.math.statistics.dependence.Dependence
Dependence.Utils
-
-
Field Summary
Fields Modifier and Type Field Description private int
resolution
Resolution of image.static HoughSpaceMeasure
STATIC
Static instance.private static int
STEPS
Angular resolution.private static SinCosTable
table
Precompute 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 int
countAboveThreshold(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 void
drawLine(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 long
sumMatrix(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:Dependence
Measure the dependence of two variables.This is the more flexible API, which allows using different internal data representations.
- Specified by:
dependence
in 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
-
-