File size: 1,861 Bytes
5766c54 31bd2d1 5766c54 f0ec043 469c90d f0ec043 5766c54 6aaa704 b00504a 64017fc b00504a 5766c54 b65f20f 5766c54 31bd2d1 5766c54 806d14d 5766c54 |
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 |
import pandas as pd
import numpy as np
from renumics import spotlight
from renumics.spotlight.analysis.typing import DataIssue
if __name__ == "__main__":
df = pd.read_json("df.json")
# df[
# "GitHub"
# ] = '<a href="https://github.com/Renumics/spotlight" target="_blank">⭐ Check Out Spotlight on GitHub</a>'
issues = pd.read_json("issues.json")
spotlight_issues = []
for _, issue in issues.sort_values("metric").iterrows():
issue_metric = issue["metric"]
issue_title = (
f"Metric: {issue_metric:.2f} | Cause: {issue['predicates'][0]['column']}"
)
predicate_strings = [
f"{x['minimum']:.1f} < {x['column']} < {x['maximum']:.1f}"
for x in issue["predicates"]
if ("minimum" in x and "maximum" in x)
]
issue_explanation = "Feature Importances:\n" + issue["explanation"]
if len(predicate_strings) > 0:
issue_explanation = (
issue_explanation + "\n\nFeature Ranges:\n" + "; ".join(predicate_strings)
)
data_issue = DataIssue(
severity="high" if issue_metric < 0.5 else "medium",
title=issue_title,
description=issue_explanation,
rows=issue["rows"],
columns=[x["column"] for x in issue["predicates"]],
)
spotlight_issues.append(data_issue)
while True:
dtypes = {
"image": spotlight.Image,
"sg_emb_image": spotlight.Embedding,
"sg_projection": spotlight.Embedding,
}
view = spotlight.show(
df,
dtype=dtypes,
port=7860,
host="0.0.0.0",
allow_filebrowsing=False,
issues=spotlight_issues,
layout="spotlight-layout.json",
)
view.close()
|