Detekce, zkoumání a ověřování funkčních závislostí v datech pomocí sémantického odkazu (Preview)
Funkční závislosti jsou relace mezi sloupci v tabulce, kde se hodnoty v jednom sloupci používají k určení hodnot v jiném sloupci. Pochopení těchto závislostí vám může pomoct odhalit vzory a vztahy v datech, což může být užitečné pro přípravu funkcí, čištění dat a vytváření modelů. Funkční závislosti fungují jako efektivní invariantní závislosti, které umožňují najít a opravit problémy s kvalitou dat, které by jinak mohly být obtížné rozpoznat.
Důležité
Tato funkce je ve verzi Preview.
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
- Problémy s vizualizací kvality dat
- Vynucení funkčních omezení mezi sloupci v datové sadě
Předpoklady
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 Datová Věda prostředí pomocí ikony přepínače prostředí na levé straně domovské stránky.
- Přejděte do prostředí Datová Věda v Microsoft Fabric.
- Vytvořte nový poznámkový blok pro zkopírování nebo vložení kódu do buněk.
- Nainstalujte knihovnu Pythonu
SemPy
do jádra poznámkového bloku spuštěním tohoto kódu v buňce poznámkového bloku:%pip install semantic-link
- Přidejte do poznámkového bloku Lakehouse.
Vyhledání funkčních závislostí v datech
Funkce find_dependencies
v SemPy 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ější, můžete nastavit nižší prahovou hodnotu pro podmíněnou entropii. Nižší prahová hodnota znamená, že budou zjištěny pouze silnější závislosti.
Následující fragment kódu Pythonu ukazuje, jak se používá 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.
Sloupce s mapováním 1:1 budou reprezentovány jako seznam.
Funkce se také snaží vyřadit potenciální závislosti odebráním tranzitivních hran.
Když zadáte dropna=True
možnost, řádky, které mají hodnotu NaN v obou sloupcích, se z vyhodnocení eliminují.
To může vést k netransitivním závislostem, jako 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 | 0 | Není číslo |
Není číslo | 1 | 1 |
Není číslo | 2 | 0 |
1 | Není číslo | 1 |
1 | Není číslo | 2 |
Vizualizace závislostí v datech
Po nalezení funkčních závislostí v datové sadě (pomocí find_dependencies
) můžete pomocí funkce vizualizovat plot_dependency_metadata
závislosti.
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ů.
Následující fragment kódu Pythonu ukazuje, jak se používá plot_dependencies
.
from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
from sempy.samples import download_synthea
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 vloží do jedné buňky. Pokud nejsou nalezeni žádní vhodný kandidáti, vrátí se prázdný objekt FabricDataFrame.
Identifikace problémů s kvalitou dat
Problémy s kvalitou dat můžou nastat v různých formách, jako jsou chybějící hodnoty, nekonzistence nebo nepřesnosti. Identifikace a řešení těchto problémů je zásadní pro zajištění spolehlivosti a platnosti jakékoli analýzy nebo modelu založeného na datech. Jedním ze způsobů, jak detekovat problémy s kvalitou dat, je prozkoumání porušení funkčních závislostí mezi sloupci v datové sadě.
Tato list_dependency_violations
funkce vám může pomoct identifikovat porušení funkčních závislostí mezi sloupci v datové sadě.
Vzhledem k determinantnímu sloupci a závislému sloupci zobrazuje tato funkce hodnoty, které porušují funkční závislost, spolu s počtem příslušných výskytů.
To může být užitečné při kontrole přibližných závislostí a identifikaci problémů s kvalitou dat.
Následující kód ukazuje příklad použití list_dependency_violations
funkce:
from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
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á, že mezi sloupci ZIP (determinant) a CITY (závislý) existuje funkční závislost. Pokud datová sada obsahuje problémy s kvalitou dat, například stejné PSČ přiřazené k více městům, funkce vypíše porušení hodnot:
ZIP | CITY | count |
---|---|---|
12345 | Boston | 2 |
12345 | Seattle | 0 |
Tento výstup označuje, že stejný PSČ (12345) je připojený ke dvěma různým městům (Boston a Seattle), což naznačuje problém s kvalitou dat v datové sadě.
Funkce list_dependency_violations
poskytuje další možnosti pro zpracování chybějících hodnot, zobrazení hodnot mapovaných na porušení hodnot, omezení počtu vrácených porušení a řazení výsledků podle počtu nebo determinantního sloupce. (TODO: Odkaz na dokumentaci k rozhraní API)
Výstup list_dependency_violations
může pomoct identifikovat problémy s kvalitou dat ve vaší datové sadě.
Je však důležité pečlivě prozkoumat výsledky a zvážit kontext vašich dat a určit nejvhodnější postup pro řešení zjištěných problémů.
Tento postup může zahrnovat další čištění, ověřování nebo zkoumání dat, aby se zajistila spolehlivost a platnost analýzy nebo modelu.
Problémy s vizualizací kvality dat
Problémy s kvalitou dat můžou negativně ovlivnit spolehlivost a platnost jakékoli analýzy nebo modelu založeného na datech. Identifikace a řešení těchto problémů je zásadní pro zajištění přesnosti výsledků. Jedním ze způsobů, jak detekovat problémy s kvalitou dat, je prozkoumání porušení funkčních závislostí mezi sloupci v datové sadě. Vizualizace těchto porušení vám pomůže lépe porozumět problémům a efektivněji je vyř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, což usnadňuje pochopení povahy a rozsahu problémů s kvalitou dat.
Následující kód ukazuje příklad použití plot_dependency_violations
funkce:
from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_violations
from sempy.samples import download_synthea
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á, že mezi sloupci ZIP (determinant) a CITY (závislý) existuje funkční závislost. 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 porušení hodnot.
Funkce plot_dependency_violations
poskytuje další možnosti pro zpracování chybějících hodnot, zobrazení hodnot mapovaných na porušení hodnot, omezení počtu vrácených porušení a řazení výsledků podle počtu nebo determinantního sloupce. (TODO: Odkaz na dokumentaci k rozhraní API)
Vizualizace vygenerovaná plot_dependency_violations
pomocí vám může pomoct identifikovat problémy s kvalitou dat v datové sadě a porozumět jejich povaze a rozsahu.
Prozkoumáním grafu můžete získat přehled o vztazích mezi determinantem a závislými sloupci a identifikovat potenciální chyby nebo nekonzistence ve vašich datech.
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ě. Jedním ze způsobů, jak zlepšit kvalitu dat, je vynucování funkčních omezení mezi sloupci v datové sadě. Funkční omezení můžou pomoct zajistit, aby relace mezi sloupci byly konzistentní a přesné, což může vést k přesnějším výsledkům analýzy nebo modelu.
Funkce drop_dependency_violations
může pomoct vynutit funkční omezení mezi sloupci v datové sadě přetažením řádků, které porušují dané omezení.
Vzhledem k determinantní sloupci a závislému sloupci tato funkce odebere řádky s hodnotami, které nevyhovují funkčnímu omezení mezi těmito dvěma sloupci.
Následující kód ukazuje příklad použití drop_dependency_violations
funkce:
from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
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 se vybere nejběžnější hodnota závislého objektu a všechny řádky s jinými hodnotami se zahodí. Například s ohledem na následující datovou sadu:
ZIP | CITY |
---|---|
12345 | Seattle |
12345 | Boston |
12345 | Boston |
98765 | Baltimore |
00000 | San Francisco |
Řádek s CITY=Seattle by se vynechal a ve výstupu se uchovává funkce ZIP –> CITY.
Funkce drop_dependency_violations
poskytuje verbose
možnost řízení podrobností výstupu. Nastavením verbose=1
můžete zobrazit počet vynechaných řádků a verbose=2
zobrazit celý obsah řádků vynechaných řádků.
Pomocí drop_dependency_violations
funkce můžete 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.
Je ale důležité pečlivě zvážit kontext dat a funkční omezení, která se rozhodnete vynutit, abyste měli jistotu, že z datové sady nechtěně neodeberete cenné informace.
Další kroky
Váš názor
Odeslat a zobrazit názory pro