Commit 38b2c2ce authored by M. Lourens's avatar M. Lourens
Browse files

Changed Jaccard set distance to Jaccard similarity coefficient.

parent 13e60b2e
No related merge requests found
Pipeline #348 failed with stage
Showing with 26 additions and 26 deletions
+26 -26
......@@ -16,7 +16,7 @@ class Metrics(object):
Values are passed to `scipy.spatial.distance.pdist`.
k : int, default=7
Number of nearest neighbors to consider when computing the various metrics.
Used by `metric_trustworthiness`, `metric_continuity`, `metric_jaccard_set_distance`, `metric_neighborhood_hit` and `metric_distribution_consistency`.
Used by `metric_trustworthiness`, `metric_continuity`, `metric_jaccard_similarity_coefficient`, `metric_neighborhood_hit` and `metric_distribution_consistency`.
"""
def __init__(self, metric=["euclidean", "euclidean"], k = 7):
......@@ -33,7 +33,7 @@ class Metrics(object):
# local neighborhood metrics
self._M_trustworthiness = None
self._M_continuity = None
self._M_jaccard_set_distance = None
self._M_jaccard_similarity_coefficient = None
# distance preservation metrics
self._M_normalized_stress = None
......@@ -115,7 +115,7 @@ class Metrics(object):
# local neighborhood metrics
self._M_trustworthiness = None
self._M_continuity = None
self._M_jaccard_set_distance = None
self._M_jaccard_similarity_coefficient = None
# distance preservation metrics
self._M_normalized_stress = None
......@@ -213,9 +213,9 @@ class Metrics(object):
self._M_continuity = 1 - norm * Z
return self._M_continuity
# Jaccard set distance metric
def metric_jaccard_set_distance(self):
r""" Function to compute the Jaccard set distance metric which quantifies the **proportion of overlap** between the :math:`k`-nearest
# Jaccard similarity coefficient metric
def metric_jaccard_similarity_coefficient(self):
r""" Function to compute the Jaccard similarity coefficient metric which quantifies the **proportion of overlap** between the :math:`k`-nearest
neighbor sets in the feature space and the projection space. The functional definition reads as follows:
.. math::
......@@ -228,13 +228,13 @@ class Metrics(object):
Returns
-------
jaccard_set_distance : float
The value between :math:`[0,1]` yielded by the Jaccard set distance metric.
jaccard_similarity_coefficient : float
The value between :math:`[0,1]` yielded by the Jaccard similarity coefficient metric.
"""
# check cache
if self._M_jaccard_set_distance is not None:
return self._M_jaccard_set_distance
if self._M_jaccard_similarity_coefficient is not None:
return self._M_jaccard_similarity_coefficient
check_is_fitted(self, ['_N', '_nn_X', '_nn_Y'])
......@@ -242,8 +242,8 @@ class Metrics(object):
for i in range(self._N):
Z += np.intersect1d(self._nn_Y[i][1:self.k+1], self._nn_X[i][1:self.k+1]).size / np.union1d(self._nn_Y[i][1:self.k+1], self._nn_X[i][1:self.k+1]).size
self._M_jaccard_set_distance = Z / self._N
return self._M_jaccard_set_distance
self._M_jaccard_similarity_coefficient = Z / self._N
return self._M_jaccard_similarity_coefficient
# normalized stress metric
def metric_normalized_stress(self):
......@@ -519,7 +519,7 @@ class DR_MetricsV1(Metrics):
Values are passed to `scipy.spatial.distance.pdist`.
k : int, default=7
Number of nearest neighbors to consider when computing the various metrics.
Used by `metric_trustworthiness`, `metric_continuity`, `metric_jaccard_set_distance`, `metric_neighborhood_hit` and `metric_distribution_consistency`.
Used by `metric_trustworthiness`, `metric_continuity`, `metric_jaccard_similarity_coefficient`, `metric_neighborhood_hit` and `metric_distribution_consistency`.
"""
def __init__(self, metric=["euclidean", "euclidean"], k = 7):
......@@ -564,7 +564,7 @@ class DR_MetricsV2(Metrics):
Values are passed to `scipy.spatial.distance.pdist`.
k : int, default=7
Number of nearest neighbors to consider when computing the various metrics.
Used by `metric_trustworthiness`, `metric_continuity`, `metric_jaccard_set_distance`, `metric_neighborhood_hit` and `metric_distribution_consistency`.
Used by `metric_trustworthiness`, `metric_continuity`, `metric_jaccard_similarity_coefficient`, `metric_neighborhood_hit` and `metric_distribution_consistency`.
"""
def __init__(self, metric=["euclidean", "euclidean"], k = 7):
......@@ -598,7 +598,7 @@ class LGC_Metrics(Metrics):
Values are passed to `scipy.spatial.distance.pdist`.
k : int, default=7
Number of nearest neighbors to consider when computing the various metrics.
Used by `metric_trustworthiness`, `metric_continuity`, `metric_jaccard_set_distance`, `metric_neighborhood_hit` and `metric_distribution_consistency`.
Used by `metric_trustworthiness`, `metric_continuity`, `metric_jaccard_similarity_coefficient`, `metric_neighborhood_hit` and `metric_distribution_consistency`.
"""
def __init__(self, metric="euclidean", k = 7):
......
docs/_static/SHARC_logo.ico

66.1 KB

......@@ -74,7 +74,7 @@
<li class="toctree-l4"><a class="reference internal" href="#SHARC.metrics.Metrics.metric_continuity"><code class="docutils literal notranslate"><span class="pre">Metrics.metric_continuity()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#SHARC.metrics.Metrics.metric_distance_consistency"><code class="docutils literal notranslate"><span class="pre">Metrics.metric_distance_consistency()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#SHARC.metrics.Metrics.metric_distribution_consistency"><code class="docutils literal notranslate"><span class="pre">Metrics.metric_distribution_consistency()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#SHARC.metrics.Metrics.metric_jaccard_set_distance"><code class="docutils literal notranslate"><span class="pre">Metrics.metric_jaccard_set_distance()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#SHARC.metrics.Metrics.metric_jaccard_similarity_coefficient"><code class="docutils literal notranslate"><span class="pre">Metrics.metric_jaccard_similarity_coefficient()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#SHARC.metrics.Metrics.metric_neighborhood_hit"><code class="docutils literal notranslate"><span class="pre">Metrics.metric_neighborhood_hit()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#SHARC.metrics.Metrics.metric_normalized_stress"><code class="docutils literal notranslate"><span class="pre">Metrics.metric_normalized_stress()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#SHARC.metrics.Metrics.metric_shepard_goodness"><code class="docutils literal notranslate"><span class="pre">Metrics.metric_shepard_goodness()</span></code></a></li>
......@@ -309,7 +309,7 @@ When a string is provided that same metric will be used for both the feature spa
Values are passed to <cite>scipy.spatial.distance.pdist</cite>.</p>
</dd>
<dt>k<span class="classifier">int, default=7</span></dt><dd><p>Number of nearest neighbors to consider when computing the various metrics.
Used by <cite>metric_trustworthiness</cite>, <cite>metric_continuity</cite>, <cite>metric_jaccard_set_distance</cite>, <cite>metric_neighborhood_hit</cite> and <cite>metric_distribution_consistency</cite>.</p>
Used by <cite>metric_trustworthiness</cite>, <cite>metric_continuity</cite>, <cite>metric_jaccard_similarity_coefficient</cite>, <cite>metric_neighborhood_hit</cite> and <cite>metric_distribution_consistency</cite>.</p>
</dd>
</dl>
<dl class="py method">
......@@ -343,7 +343,7 @@ When a string is provided that same metric will be used for both the feature spa
Values are passed to <cite>scipy.spatial.distance.pdist</cite>.</p>
</dd>
<dt>k<span class="classifier">int, default=7</span></dt><dd><p>Number of nearest neighbors to consider when computing the various metrics.
Used by <cite>metric_trustworthiness</cite>, <cite>metric_continuity</cite>, <cite>metric_jaccard_set_distance</cite>, <cite>metric_neighborhood_hit</cite> and <cite>metric_distribution_consistency</cite>.</p>
Used by <cite>metric_trustworthiness</cite>, <cite>metric_continuity</cite>, <cite>metric_jaccard_similarity_coefficient</cite>, <cite>metric_neighborhood_hit</cite> and <cite>metric_distribution_consistency</cite>.</p>
</dd>
</dl>
<dl class="py method">
......@@ -375,7 +375,7 @@ When a string is provided that same metric will be used for both the feature spa
Values are passed to <cite>scipy.spatial.distance.pdist</cite>.</p>
</dd>
<dt>k<span class="classifier">int, default=7</span></dt><dd><p>Number of nearest neighbors to consider when computing the various metrics.
Used by <cite>metric_trustworthiness</cite>, <cite>metric_continuity</cite>, <cite>metric_jaccard_set_distance</cite>, <cite>metric_neighborhood_hit</cite> and <cite>metric_distribution_consistency</cite>.</p>
Used by <cite>metric_trustworthiness</cite>, <cite>metric_continuity</cite>, <cite>metric_jaccard_similarity_coefficient</cite>, <cite>metric_neighborhood_hit</cite> and <cite>metric_distribution_consistency</cite>.</p>
</dd>
</dl>
<dl class="py method">
......@@ -406,7 +406,7 @@ When a string is provided that same metric will be used for both the feature spa
Values are passed to <cite>scipy.spatial.distance.pdist</cite>.</p>
</dd>
<dt>k<span class="classifier">int, default=7</span></dt><dd><p>Number of nearest neighbors to consider when computing the various metrics.
Used by <cite>metric_trustworthiness</cite>, <cite>metric_continuity</cite>, <cite>metric_jaccard_set_distance</cite>, <cite>metric_neighborhood_hit</cite> and <cite>metric_distribution_consistency</cite>.</p>
Used by <cite>metric_trustworthiness</cite>, <cite>metric_continuity</cite>, <cite>metric_jaccard_similarity_coefficient</cite>, <cite>metric_neighborhood_hit</cite> and <cite>metric_distribution_consistency</cite>.</p>
</dd>
</dl>
<dl class="py method">
......@@ -514,9 +514,9 @@ to the class labels in the neighborhood of all points in the dataset. To probe t
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="SHARC.metrics.Metrics.metric_jaccard_set_distance">
<span class="sig-name descname"><span class="pre">metric_jaccard_set_distance</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#SHARC.metrics.Metrics.metric_jaccard_set_distance" title="Permalink to this definition"></a></dt>
<dd><p>Function to compute the Jaccard set distance metric which quantifies the <strong>proportion of overlap</strong> between the <span class="math notranslate nohighlight">\(k\)</span>-nearest
<dt class="sig sig-object py" id="SHARC.metrics.Metrics.metric_jaccard_similarity_coefficient">
<span class="sig-name descname"><span class="pre">metric_jaccard_similarity_coefficient</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#SHARC.metrics.Metrics.metric_jaccard_similarity_coefficient" title="Permalink to this definition"></a></dt>
<dd><p>Function to compute the Jaccard similarity coefficient metric which quantifies the <strong>proportion of overlap</strong> between the <span class="math notranslate nohighlight">\(k\)</span>-nearest
neighbor sets in the feature space and the projection space. The functional definition reads as follows:</p>
<div class="math notranslate nohighlight" id="equation-jaccard">
<span class="eqno">(4)<a class="headerlink" href="#equation-jaccard" title="Permalink to this equation"></a></span>\[M_J(k) = \frac{1}{N}\sum^{N}_{i=1}\frac{\left|\mathcal{N}^k_i \cap \mathcal{M}^k_i\right|}{\left|\mathcal{N}^k_i \cup \mathcal{M}^k_i\right|}\]</div>
......@@ -526,7 +526,7 @@ data space. The set <span class="math notranslate nohighlight">\(\mathcal{M}^{k}
<section id="id17">
<h4>Returns<a class="headerlink" href="#id17" title="Permalink to this heading"></a></h4>
<dl class="simple">
<dt>jaccard_set_distance<span class="classifier">float</span></dt><dd><p>The value between <span class="math notranslate nohighlight">\([0,1]\)</span> yielded by the Jaccard set distance metric.</p>
<dt>jaccard_similarity_coefficient<span class="classifier">float</span></dt><dd><p>The value between <span class="math notranslate nohighlight">\([0,1]\)</span> yielded by the Jaccard similarity coefficient metric.</p>
</dd>
</dl>
</section>
......
......@@ -212,7 +212,7 @@
</li>
<li><a href="api.html#SHARC.metrics.Metrics.metric_distribution_consistency">metric_distribution_consistency() (SHARC.metrics.Metrics method)</a>
</li>
<li><a href="api.html#SHARC.metrics.Metrics.metric_jaccard_set_distance">metric_jaccard_set_distance() (SHARC.metrics.Metrics method)</a>
<li><a href="api.html#SHARC.metrics.Metrics.metric_jaccard_similarity_coefficient">metric_jaccard_similarity_coefficient() (SHARC.metrics.Metrics method)</a>
</li>
<li><a href="api.html#SHARC.metrics.Metrics.metric_neighborhood_hit">metric_neighborhood_hit() (SHARC.metrics.Metrics method)</a>
</li>
......
No preview for this file type
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment