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 se hodnoty v jednom sloupci používají k určení hodnot v jiném sloupci. Porozumění těmto závislostem vám může pomoct odhalit vzory a vztahy v datech, které vám pak můžou pomoct s technikou funkcí, čištěním dat a úlohami 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.
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ě
Požadavky
Získejte předplatné Microsoft Fabric. Nebo si zaregistrujte bezplatnou zkušební verzi Microsoft Fabricu.
Přihlaste se k Microsoft Fabric.
Pomocí přepínače prostředí na levé straně domovské stránky přepněte na prostředí Synapse Datová Věda.
- Přejděte do Datová Věda prostředí, které najdete v Microsoft Fabric.
- Vytvořte nový poznámkový blok pro zkopírování nebo vložení kódu do buněk.
- Pro Spark 3.4 a vyšší je sémantický odkaz dostupný ve výchozím modulu runtime při použití prostředků infrastruktury a není potřeba ho nainstalovat. 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 do poznámkového bloku Lakehouse.
Pro Spark 3.4 a vyšší je sémantický odkaz dostupný ve výchozím modulu runtime při použití prostředků infrastruktury a není potřeba ho nainstalovat. Pokud používáte Spark 3.3 nebo novější nebo pokud chcete aktualizovat na nejnovější verzi sémantického odkazu, spusťte tento příkaz:
%pip install -U semantic-link
```
## Find functional dependencies in data
The SemPy `find_dependencies` function detects functional dependencies between the columns of a FabricDataFrame. The function uses a threshold on conditional entropy to discover approximate functional dependencies, where low conditional entropy indicates strong dependence between columns. To make the `find_dependencies` function more selective, you can set a lower threshold on conditional entropy. The lower threshold means that only stronger dependencies will be detected.
This Python code snippet demonstrates how to use `find_dependencies`:
```python
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, řádky, které mají hodnotu NaN v obou sloupcích, se z vyhodnocení eliminují. Výsledkem můžou být nepřenosné závislosti, jak je znázorněno v tomto 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ání dropna=True
možnosti vytvořit cykly, jak je znázorněno v tomto 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 vizualizovat plot_dependency_metadata
závislosti s funkcí. 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 Pythonu ukazuje, jak používat 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 umístí 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 mít různé formy – například chybějící hodnoty, nekonzistence nebo nepřesnosti. Identifikace a řešení těchto problémů je důležité k 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 prozkoumat porušení funkčních závislostí mezi sloupci v datové sadě.
Tato list_dependency_violations
funkce může pomoct identifikovat porušení funkčních závislostí mezi sloupci datové sady. 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 pomoct při kontrole přibližných závislostí a identifikaci problémů s kvalitou dat.
Tento fragment kódu ukazuje, jak používat list_dependency_violations
funkci:
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á 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 vypíše data s problémy:
ZIP | CITY | count |
---|---|---|
12345 | Boston | 2 |
12345 | Seattle | 0 |
Tento výstup označuje, že dvě různá města (Boston a Seattle) mají stejnou hodnotu PSČ (12345). To naznačuje problém s kvalitou dat v datové sadě.
Funkce list_dependency_violations
poskytuje další možnosti, které můžou zpracovat chybějící hodnoty, zobrazit hodnoty mapované na porušení hodnot, omezit počet vrácených porušení a řadit výsledky podle počtu nebo determinantního sloupce.
Výstup list_dependency_violations
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.
Problémy s vizualizací kvality 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, můžete prozkoumat 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, což usnadňuje pochopení povahy a rozsahu problémů s kvalitou dat.
Tento fragment kódu ukazuje, jak používat plot_dependency_violations
funkci:
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á 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 zpracovat chybějící hodnoty, zobrazit hodnoty mapované na porušení hodnot, 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.
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í můžou pomoct zajistit, aby relace mezi sloupci měly přesnost a konzistenci, což může vést k přesnější analýze nebo výsledkům modelu.
Funkce drop_dependency_violations
může pomoct vynutit funkční omezení mezi sloupci v datové sadě. Jedná se o řá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
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")
Funkce zde 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 vzhledem k této datové sadě se řádek s CITY=Seattle zahodí a funkce závislosti ZIP –> CITY se uchovává ve výstupu:
ZIP | CITY |
---|---|
12345 | Seattle |
12345 | Boston |
12345 | Boston |
98765 | Baltimore |
00000 | San Francisco |
Funkce drop_dependency_violations
poskytuje verbose
možnost řídit výstupní úroveň podrobností. Nastavením verbose=1
můžete zobrazit počet vynechaných řádků. Hodnota verbose=2
zobrazuje celý obsah řádků 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. Musíte však pečlivě zvážit kontext dat a funkční omezení, která se rozhodnete vynutit, abyste zajistili, že z datové sady omylem neodeberete cenné informace.