|
4666 | 4666 | </span> |
4667 | 4667 | </a> |
4668 | 4668 |
|
| 4669 | +</li> |
| 4670 | + |
| 4671 | + <li class="md-nav__item"> |
| 4672 | + <a href="#spotpython.utils.metrics.calculate_xai_consistency" class="md-nav__link"> |
| 4673 | + <span class="md-ellipsis"> |
| 4674 | + calculate_xai_consistency |
| 4675 | + </span> |
| 4676 | + </a> |
| 4677 | + |
4669 | 4678 | </li> |
4670 | 4679 |
|
4671 | 4680 | <li class="md-nav__item"> |
|
5192 | 5201 | </span> |
5193 | 5202 | </a> |
5194 | 5203 |
|
| 5204 | +</li> |
| 5205 | + |
| 5206 | + <li class="md-nav__item"> |
| 5207 | + <a href="#spotpython.utils.metrics.calculate_xai_consistency" class="md-nav__link"> |
| 5208 | + <span class="md-ellipsis"> |
| 5209 | + calculate_xai_consistency |
| 5210 | + </span> |
| 5211 | + </a> |
| 5212 | + |
5195 | 5213 | </li> |
5196 | 5214 |
|
5197 | 5215 | <li class="md-nav__item"> |
@@ -5432,6 +5450,127 @@ <h2 id="spotpython.utils.metrics.apk" class="doc doc-heading"> |
5432 | 5450 | <div class="doc doc-object doc-function"> |
5433 | 5451 |
|
5434 | 5452 |
|
| 5453 | +<h2 id="spotpython.utils.metrics.calculate_xai_consistency" class="doc doc-heading"> |
| 5454 | + <code class="highlight language-python"><span class="n">calculate_xai_consistency</span><span class="p">(</span><span class="n">attributions</span><span class="p">)</span></code> |
| 5455 | + |
| 5456 | +<a href="#spotpython.utils.metrics.calculate_xai_consistency" class="headerlink" title="Permanent link">¶</a></h2> |
| 5457 | + |
| 5458 | + |
| 5459 | + <div class="doc doc-contents "> |
| 5460 | + |
| 5461 | + <p>Calculates the consistency of XAI methods by computing the mean of the upper triangle |
| 5462 | +of the correlation matrix of the provided attributions.</p> |
| 5463 | + |
| 5464 | + |
| 5465 | +<p><span class="doc-section-title">Parameters:</span></p> |
| 5466 | + <table> |
| 5467 | + <thead> |
| 5468 | + <tr> |
| 5469 | + <th>Name</th> |
| 5470 | + <th>Type</th> |
| 5471 | + <th>Description</th> |
| 5472 | + <th>Default</th> |
| 5473 | + </tr> |
| 5474 | + </thead> |
| 5475 | + <tbody> |
| 5476 | + <tr class="doc-section-item"> |
| 5477 | + <td><code>attributions</code></td> |
| 5478 | + <td> |
| 5479 | + <code><span title="numpy.ndarray">ndarray</span></code> |
| 5480 | + </td> |
| 5481 | + <td> |
| 5482 | + <div class="doc-md-description"> |
| 5483 | + <p>Array of shape (n_methods, n_features) containing |
| 5484 | + the attributions from different XAI methods.</p> |
| 5485 | + </div> |
| 5486 | + </td> |
| 5487 | + <td> |
| 5488 | + <em>required</em> |
| 5489 | + </td> |
| 5490 | + </tr> |
| 5491 | + </tbody> |
| 5492 | + </table> |
| 5493 | + |
| 5494 | + |
| 5495 | + <p><span class="doc-section-title">Returns:</span></p> |
| 5496 | + <table> |
| 5497 | + <thead> |
| 5498 | + <tr> |
| 5499 | +<th>Name</th> <th>Type</th> |
| 5500 | + <th>Description</th> |
| 5501 | + </tr> |
| 5502 | + </thead> |
| 5503 | + <tbody> |
| 5504 | + <tr class="doc-section-item"> |
| 5505 | +<td><code>float</code></td> <td> |
| 5506 | + </td> |
| 5507 | + <td> |
| 5508 | + <div class="doc-md-description"> |
| 5509 | + <p>Mean value of the upper triangle of the correlation matrix.</p> |
| 5510 | + </div> |
| 5511 | + </td> |
| 5512 | + </tr> |
| 5513 | + </tbody> |
| 5514 | + </table> |
| 5515 | + |
| 5516 | + <details class="quote"> |
| 5517 | + <summary>Source code in <code>spotpython/utils/metrics.py</code></summary> |
| 5518 | + <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">202</span> |
| 5519 | +<span class="normal">203</span> |
| 5520 | +<span class="normal">204</span> |
| 5521 | +<span class="normal">205</span> |
| 5522 | +<span class="normal">206</span> |
| 5523 | +<span class="normal">207</span> |
| 5524 | +<span class="normal">208</span> |
| 5525 | +<span class="normal">209</span> |
| 5526 | +<span class="normal">210</span> |
| 5527 | +<span class="normal">211</span> |
| 5528 | +<span class="normal">212</span> |
| 5529 | +<span class="normal">213</span> |
| 5530 | +<span class="normal">214</span> |
| 5531 | +<span class="normal">215</span> |
| 5532 | +<span class="normal">216</span> |
| 5533 | +<span class="normal">217</span> |
| 5534 | +<span class="normal">218</span> |
| 5535 | +<span class="normal">219</span> |
| 5536 | +<span class="normal">220</span> |
| 5537 | +<span class="normal">221</span> |
| 5538 | +<span class="normal">222</span> |
| 5539 | +<span class="normal">223</span> |
| 5540 | +<span class="normal">224</span> |
| 5541 | +<span class="normal">225</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">calculate_xai_consistency</span><span class="p">(</span><span class="n">attributions</span><span class="p">):</span> |
| 5542 | +<span class="w"> </span><span class="sd">"""</span> |
| 5543 | +<span class="sd"> Calculates the consistency of XAI methods by computing the mean of the upper triangle</span> |
| 5544 | +<span class="sd"> of the correlation matrix of the provided attributions.</span> |
| 5545 | + |
| 5546 | +<span class="sd"> Args:</span> |
| 5547 | +<span class="sd"> attributions (np.ndarray): Array of shape (n_methods, n_features) containing </span> |
| 5548 | +<span class="sd"> the attributions from different XAI methods.</span> |
| 5549 | + |
| 5550 | +<span class="sd"> Returns:</span> |
| 5551 | +<span class="sd"> float: Mean value of the upper triangle of the correlation matrix.</span> |
| 5552 | +<span class="sd"> """</span> |
| 5553 | + <span class="n">global_attr_np</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">attributions</span><span class="p">)</span> |
| 5554 | + <span class="n">corr_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">corrcoef</span><span class="p">(</span><span class="n">global_attr_np</span><span class="p">)</span> |
| 5555 | + <span class="nb">print</span><span class="p">(</span><span class="s2">"Attribution Correlation Matrix:"</span><span class="p">)</span> |
| 5556 | + <span class="nb">print</span><span class="p">(</span><span class="n">corr_matrix</span><span class="p">)</span> |
| 5557 | + |
| 5558 | + <span class="c1"># Calculate the mean of the upper triangle of the correlation matrix</span> |
| 5559 | + <span class="n">upper_triangle_indices</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">triu_indices_from</span><span class="p">(</span><span class="n">corr_matrix</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> |
| 5560 | + <span class="n">upper_triangle_values</span> <span class="o">=</span> <span class="n">corr_matrix</span><span class="p">[</span><span class="n">upper_triangle_indices</span><span class="p">]</span> |
| 5561 | + <span class="n">result_xai</span> <span class="o">=</span> <span class="n">upper_triangle_values</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span> |
| 5562 | + <span class="nb">print</span><span class="p">(</span><span class="s2">"XAI Consistency (mean of upper triangle of correlation matrix):"</span><span class="p">)</span> |
| 5563 | + <span class="nb">print</span><span class="p">(</span><span class="n">result_xai</span><span class="p">)</span> |
| 5564 | + <span class="k">return</span> <span class="n">result_xai</span> |
| 5565 | +</code></pre></div></td></tr></table></div> |
| 5566 | + </details> |
| 5567 | + </div> |
| 5568 | + |
| 5569 | +</div> |
| 5570 | + |
| 5571 | +<div class="doc doc-object doc-function"> |
| 5572 | + |
| 5573 | + |
5435 | 5574 | <h2 id="spotpython.utils.metrics.get_metric_sign" class="doc doc-heading"> |
5436 | 5575 | <code class="highlight language-python"><span class="n">get_metric_sign</span><span class="p">(</span><span class="n">metric_name</span><span class="p">)</span></code> |
5437 | 5576 |
|
|
0 commit comments