Detekce, zkoumání a ověřování funkčních závislostí v datech pomocí sémantického odkazu

Funkční závislosti jsou relace mezi sloupci v tabulce, kde hodnoty v jednom sloupci určují hodnoty v jiném sloupci. Pochopení těchto závislostí vám může pomoct odhalit vzory a vztahy ve vašich datech. Toto porozumění vám může pomoct s vytvářením funkcí, čištěním dat a úlohami vytváření modelů. Funkční závislosti fungují jako efektivní invariantní, které pomáhají najít a opravit problémy s kvalitou dat, které by jinak mohly být obtížné rozpoznat.

V tomto článku použijete sémantický odkaz na:

  • Vyhledání závislostí mezi sloupci prvku FabricDataFrame
  • Vizualizace závislostí
  • Identifikace problémů s kvalitou dat
  • Vizualizace problémů s kvalitou dat
  • Vynucení funkčních omezení mezi sloupci v datové sadě

Požadavky

  • Získejte předplatné Microsoft Fabric. Nebo si zaregistrujte bezplatnou zkušební verzi Microsoft Fabric.

  • Přihlaste se k Microsoft Fabric.

  • Přepněte na Fabric pomocí přepínače prostředí na levé dolní straně domovské stránky.

    Snímek obrazovky znázorňující výběr Fabric v nabídce přepínání režimu

  • Přejděte do prostředí pro datové vědy, které najdete v Microsoft Fabric.
  • Vytvořte nový poznámkový blok pro zkopírování a vložení kódu do buněk.
  • Pro Spark 3.4 a vyšší je funkce Semantic Link dostupná ve výchozím runtime při použití Fabric, a proto není nutné ji instalovat. Pokud používáte Spark 3.3 nebo novější nebo pokud chcete aktualizovat na nejnovější verzi sémantického odkazu, můžete tento příkaz spustit: python %pip install -U semantic-link
  • Přidejte Lakehouse do svého poznámkového bloku.

Sémantický odkaz je k dispozici ve výchozím runtime Fabric. Pokud chcete aktualizovat na nejnovější verzi sémantického odkazu, spusťte tento příkaz:

%pip install -U semantic-link

Vyhledání funkčních závislostí v datech

Funkce SemPy find_dependencies detekuje funkční závislosti mezi sloupci objektu FabricDataFrame. Funkce používá prahovou hodnotu pro podmíněnou entropii ke zjišťování přibližných funkčních závislostí, kde nízká podmíněná entropie označuje silnou závislost mezi sloupci. Pokud chcete, aby find_dependencies byla funkce selektivní, nastavte nižší prahovou hodnotu pro podmíněnou entropii. Nižší prahová hodnota znamená, že se zjistí pouze silnější závislosti.

Tento fragment kódu Python ukazuje, jak používat find_dependencies:

from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
import pandas as pd


df = FabricDataFrame(pd.read_csv("your_data.csv"))

deps = df.find_dependencies()

Funkce find_dependencies vrátí fabricDataFrame se zjištěnými závislostmi mezi sloupci. Seznam představuje sloupce, které mají mapování 1:1. Funkce také odebere tranzitivní hrany, aby se pokusila vyřadit potenciální závislosti.

Když zadáte dropna=True možnost, funkce eliminuje řádky, které mají hodnotu NaN v obou sloupcích z vyhodnocení. Toto odstranění může vést k netransitivním závislostem, jak je znázorněno v následujícím příkladu:

A B C
1 1 1
1 1 1
1 Není číslo 9
2 Není číslo 2
2 2 2

V některých případech může řetěz závislostí při zadávání dropna=True možnosti vytvořit cykly, jak je znázorněno v následujícím příkladu:

A B C
1 1 Není číslo
2 1 Není číslo
Není číslo 1 1
Není číslo 2 1
1 Není číslo 1
1 Není číslo 2

Vizualizace závislostí v datech

Jakmile zjistíte funkční závislosti v datové sadě pomocí find_dependencies, můžete vizualizovat tyto závislosti pomocí funkce plot_dependency_metadata. Tato funkce přebírá výsledný objekt FabricDataFrame find_dependencies a vytvoří vizuální znázornění závislostí mezi sloupci a skupinami sloupců.

Tento fragment kódu Python ukazuje, jak používat plot_dependencies:

from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

deps = df.find_dependencies()
plot_dependency_metadata(deps)

Funkce plot_dependency_metadata vygeneruje vizualizaci, která zobrazuje seskupení sloupců 1:1. Sloupce, které patří do jedné skupiny, se umístí do jedné buňky. Pokud funkce nenajde žádné vhodné kandidáty, vrátí prázdný objekt FabricDataFrame. Snímek obrazovky znázorňující výstup funkce plot_dependencies

Snímek obrazovky znázorňující výstup funkce plot_dependencies

Identifikace problémů s kvalitou dat

Problémy s kvalitou dat můžou mít mnoho forem – například chybějící hodnoty, nekonzistence nebo nepřesnosti. Pokud chcete zajistit spolehlivost a platnost jakékoli analýzy nebo modelu založeného na datech, je důležité tyto problémy identifikovat a řešit. Jedním ze způsobů, jak detekovat problémy s kvalitou dat, je zkoumat porušení funkčních závislostí mezi sloupci v datové sadě.

Tato list_dependency_violations funkce vám pomůže najít porušení funkčních závislostí mezi sloupci datové sady. Když zadáte determinantní sloupec a závislý sloupec, funkce zobrazí hodnoty, které porušují funkční závislost, spolu s počtem jejich příslušných výskytů. Tyto informace vám můžou pomoct při kontrole přibližných závislostí a identifikaci problémů s kvalitou dat.

Následující fragment kódu ukazuje, jak používat list_dependency_violations funkci:

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

violations = df.list_dependency_violations(determinant_col="ZIP", dependent_col="CITY")

V tomto příkladu funkce předpokládá funkční závislost mezi sloupci ZIP (determinant) a CITY (závislé). Pokud datová sada obsahuje problémy s kvalitou dat – například stejné PSČ přiřazené více městům – funkce vypíše data s problémy:

ZIP MĚSTO počítat
12345 Boston 2
12345 Seattle 1

Tento výstup označuje, že dvě různá města (Boston a Seattle) mají stejnou hodnotu PSČ (12345). Tento výsledek naznačuje problém s kvalitou dat v datové sadě.

Funkce list_dependency_violations poskytuje další možnosti, které můžou zpracovávat chybějící hodnoty, zobrazovat hodnoty mapované na porušující hodnoty, omezit počet vrácených porušení a řadit výsledky podle počtu nebo determinantního sloupce.

Výstup list_dependency_violations vám může pomoct identifikovat problémy s kvalitou dat datové sady. Měli byste však pečlivě prozkoumat výsledky a zvážit kontext vašich dat, abyste zjistili nejvhodnější postup pro řešení zjištěných problémů. Tento přístup může zahrnovat více čištění, ověřování nebo zkoumání dat, aby se zajistila spolehlivost a platnost analýzy nebo modelu.

Vizualizace problémů s kvalitou dat

Problémy s kvalitou dat můžou poškodit spolehlivost a platnost jakékoli analýzy nebo modelu založeného na těchto datech. Identifikace a řešení těchto problémů je důležité k zajištění přesnosti výsledků. Pokud chcete zjistit problémy s kvalitou dat, prověřte porušení funkčních závislostí mezi sloupci v datové sadě. Vizualizace těchto porušení může jasněji ukázat problémy a pomůže vám je efektivněji řešit.

Tato plot_dependency_violations funkce může pomoct vizualizovat porušení funkčních závislostí mezi sloupci v datové sadě. Vzhledem k determinantní sloupci a závislému sloupci tato funkce zobrazuje porušení hodnot v grafickém formátu, aby bylo snazší pochopit povahu a rozsah problémů s kvalitou dat.

Tento fragment kódu ukazuje, jak používat plot_dependency_violations funkci:

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

df.plot_dependency_violations(determinant_col="ZIP", dependent_col="CITY")

V tomto příkladu funkce předpokládá existující funkční závislost mezi sloupci ZIP (determinant) a CITY (závislé). Pokud datová sada obsahuje problémy s kvalitou dat , například stejný PSČ přiřazený k více městům, funkce vygeneruje graf chybných hodnot.

Funkce plot_dependency_violations poskytuje další možnosti, které můžou zpracovávat chybějící hodnoty, zobrazovat hodnoty mapované na porušující hodnoty, omezit počet vrácených porušení a řadit výsledky podle počtu nebo determinantního sloupce.

Funkce plot_dependency_violations vygeneruje vizualizaci, která může pomoct identifikovat problémy s kvalitou dat datové sady. Měli byste však pečlivě prozkoumat výsledky a zvážit kontext vašich dat, abyste zjistili nejvhodnější postup pro řešení zjištěných problémů. Tento přístup může zahrnovat více čištění, ověřování nebo zkoumání dat, aby se zajistila spolehlivost a platnost analýzy nebo modelu.

Snímek obrazovky znázorňující výstup funkce plot_dependency_violations

Vynucení funkčních omezení

Kvalita dat je zásadní pro zajištění spolehlivosti a platnosti jakékoli analýzy nebo modelu založeného na datové sadě. Vynucení funkčních omezení mezi sloupci v datové sadě může pomoct zlepšit kvalitu dat. Funkční omezení zajišťují, že relace mezi sloupci mají přesnost a konzistenci, což může vést k přesnější analýze nebo výsledkům modelu.

Funkce drop_dependency_violations vynucuje funkční omezení mezi sloupci v datové sadě. Odebere řádky, které porušují dané omezení. Vzhledem k determinantnímu sloupci a závislému sloupci tato funkce odebere řádky s hodnotami, které neodpovídají funkčnímu omezení mezi těmito dvěma sloupci.

Tento fragment kódu ukazuje, jak používat drop_dependency_violations funkci:

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

cleaned_df = df.drop_dependency_violations(determinant_col="ZIP", dependent_col="CITY")

V tomto příkladu funkce vynucuje funkční omezení mezi sloupci ZIP (determinant) a CITY (závislé). Pro každou hodnotu determinantu funkce vybere nejběžnější hodnotu závislého sloupce a zahodí všechny řádky s jinými hodnotami. Například vzhledem k této datové sadě se řádek s CITY=Seattle zahodí a funkční závislost ZIP -> CITY se uchovává ve výstupu.

ZIP MĚSTO
12345 Seattle
12345 Boston
12345 Boston
98765 Baltimore
00000 San Francisco

Funkce drop_dependency_violations poskytuje verbose možnost řídit úroveň podrobností výstupu. Nastavením verbose=1můžete zobrazit počet vynechaných řádků. Hodnota verbose=2 zobrazuje celý obsah vynechaných řádků.

Funkce drop_dependency_violations může vynutit funkční omezení mezi sloupci v datové sadě, což může pomoct zlepšit kvalitu dat a vést k přesnějším výsledkům analýzy nebo modelu. Pečlivě ale zvažte kontext dat a funkční omezení, která se rozhodnete vynutit, abyste zajistili, že z datové sady omylem neodeberete cenné informace.