-
Notifications
You must be signed in to change notification settings - Fork 3
/
index.html
executable file
·129 lines (108 loc) · 9.21 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link href="css/css.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="css/style.css" media="screen" type="text/css">
<link rel="stylesheet" href="css/print.css" media="print" type="text/css">
<link rel="shortcut icon" href="logo.png">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<title>Hyppo-X: See what your data looks like</title>
</head>
<body>
<header>
<div class="inner">
<a href="https://github.com/xperthut/HYPPO-X">
<h1>
<img src="images/logo_hypen.png" width="40%" alt="Hyppo-X">
</h1>
</a>
<h2>A header only software library helps to visually discover the insights of high dimensional complex data set.</h2>
<a href="https://github.com/xperthut/HYPPO-X" class="button"><small>View project on</small> GitHub</a>
</div>
</header>
<div id="content-wrapper">
<div class="inner clearfix">
<section id="main-content">
<h2>Framework overview</h2>
<p>This software library is built to delve the insights of a complex high dimensional dataset. We instantiated the Mapper framework which is based on the algebraic topology in order to represent the structure of a dataset in a graph. The Mapper framework uses three steps named a) Filtering, b) Clustering, and c) Graph generation to convert a high dimensional dataset to a graph. The generated graph is used for visual analytics. Details of our framework is described in our <a href="https://arxiv.org/pdf/1707.04362.pdf" target="_blank">paper</a>. A schematic functional overview of the framework with a sample dataset is given below.<br />
<img src="images/tda-object.png" width="100%" alt="Dataset to graph using Hyppo-x"/>
</p>
<!--
<p>We visually analyzed the generated graph to discover interesting insights of the dataset. We developed two features aiming to give automated suggestion as part of the visual analytics. One of the features is based on path and the another one is based on flare. Both path and flare are structural property of a graph.</p>
<p>Our path finding model helps us to find interesting subset of the main dataset where the selected features or dimensions are highly correlated. Alternatively, we are able to discover finer–level correlation among selected dimensions which is not possible using traditional statistical method like correlation test or PCA.</p>
<p>The flare feature captures the divergent behavior of the data points in a dataset. Each datapoint is associated with a class or label. Our method capable to find divergent behavior of the points based on the class label in a unsupervised way. For instance, based on the dataset, we might observe a branching in the graph where points of different classes separated and each class or combination of few classes follow different paths.</p>
-->
<h2>Pie chart</h2>
<p>We can represent the category of points in a cluster using a pie chart. In our Hyppo-X framework, we have capability to define a category of a point using single or multiple columns of the dataset. Pie chart shows the percentage distribution of points among all categories.
For instance, for the above sample dataset, we can define the locaion column named <strong>Loc</strong> as the category of all the points then we will get following graphs. Here, blue color indicates points those belong in location N and red color indicates points those belong in location K. This graph with pie chart node helps us to understand the behavior of points with respect to two locations.<br />
<img src="images/dh-loc.png" width="100%" alt="Pie chart"/>
</p>
<h2>New solution</h2>
<p style='color:blue'>We have built a desktop bases solution named <a href="https://github.com/xperthut/Hyppo-XD">Hyppo–XD</a> using this library that servers the same purpose.</p>
<!--
<h2>Detect divergent nature of points</h2>
<p>Pie chart helps us to find the divergent nature of points in a graph. A branching from a node can propagate the divergent behavior to next subsequent nodes. </p>
<h2>Path</h2>
<p>Beside pie chart representation, we can find path in a graph which some meaningful way. We developed a model to find meaningful path which reveals the finer correlation</p>
-->
<!--
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#tda">TDA</a></li>
<li><a href="#single-filter-function">Single filter function</a></li>
<li><a href="#double-filter-function">Double filter function</a></li>
<li><a href="#persistent-homology">Persistent homology</a></li>
<li><a href="#graph-plotting">Graph plotting</a></li>
<li><a href="#visual-representation">Visual representation</a></li>
</ul>
<h2 id="tda">TDA</h2>
<p>Topological data ananlysis (TDA) uses <a href="https://en.wikipedia.org/wiki/Algebraic_topology">algebraic topology</a>
(a branch of mathematics) which deals with point clouds and generate
the shape of point cloud data in a coordinateless fashion. There has
three steps through which TDA generates the shape of a dataset and these
are:</p>
<ul>
<li><a href="#filtering">Filtering</a></li>
<li><a href="#partial-clustering">Partial clustering</a></li>
<li><a href="#topological-object-construction">Topological object construction</a></li>
</ul>
<h2 id="filtering">Filtering</h2>
<p>Filter is a mapping function <strong>f: R<sup>n</sup>→R</strong>. For instance, in our experiment, we used both time (Days after planting) and humidity (one of the environmental attributes) as two filters to express a phenotypic behaviour. The interpretation is, how the plant phenotype changes with respect to
the change of both time and humidity. We have option to use more than
two filters in a filter function but in this release, we used only <a href="#single_filter_function">Single filter function</a> and <a href="#double_filter_function">Double filter function</a>.</p>
<h2 id="single-filter-function">Single filter function</h2>
<p>We used time as a single filter function and the time value available in our dataset is <code class="highlighter-rouge"><strong>D</strong>ays <strong>A</strong>fter <strong>P</strong>lanting (DAP)</code>. We also used environmental attribute <code class="highlighter-rouge">humidity</code>, <code class="highlighter-rouge">temperature</code> and <code class="highlighter-rouge">solar radiation</code> at a time as a single filter function. We implemented the code of single filter function using <code class="highlighter-rouge">C++</code>.</p>
<h2 id="double-filter-function">Double filter function</h2>
<p>Our dataset is temporal, because of this, we used DAP as one of the
two filters in double filter function. The environmental attribute
humidity is used as the other filter. We also built topological object
using DAP and temperature as a double filter function and DAP and solar
radiation as a double filter function. We implemented the code of double
filter function using <code class="highlighter-rouge">C++</code>.</p>
<h2 id="partial-clustering">Partial clustering</h2>
<p>Clustering is used to group all similar phenotypic individuals. We
created buckets (rectangler intervals) along each filter attribute and apply clustering
to the points of a bucket. We used density based clustering
and in our experiment, we used <a href="https://en.wikipedia.org/wiki/DBSCAN">DBSCAN</a>. The overlapping buckets generate share points between two clusters.</p>
<h2 id="topological-object-construction">Topological object construction</h2>
<p>We treated each cluster as a node and if two clusters have
overlapping points then we consider an edge between two nodes
corresponding to these two clusters. In this process, we build our
topological object, which is a graph.</p>
<h2 id="persistent-homology">Persistent homology</h2>
<p>The shape of a topological object changes by changing the bucket
overlapping value. We used persistent homology to stabilize the shape of
a topological object by making the overlapping value constant. We used open source library named <code class="highlighter-rouge"><a href='http://gudhi.gforge.inria.fr/'>GUDHI</a></code> for persistent homology. We also have option to generate persistent homology barcode image using an opensource library <a href="https://github.com/appliedtopology/javaplex/releases/tag/4.3.0">javaplex-4.3.0.jar</a>.</p>
<h2 id="graph-plotting">Graph object</h2>
<p>The output generated from our code is a graph and we used json format to save the object in a file. Later, we use this file for visualization.</p>
<h2 id="visual-representation">Visual representation</h2>
<p>In order to visualize our object, we used interactive open source visualization tool <code class="highlighter-rouge"><a href='https://d3js.org/'>D3</a></code></p>
-->
</div>
</div>
</body></html>