Čítať v angličtine

Zdieľať cez


Zisťovanie, skúmanie a overovanie funkčných závislostí v údajoch pomocou sémantického prepojenia

Funkčné závislosti sú vzťahy medzi stĺpcami v tabuľke, kde sa hodnoty v jednom stĺpci používajú na určenie hodnôt v inom stĺpci. Pochopenie týchto závislostí vám môže pomôcť odhaliť vzory a vzťahy vo vašich údajoch, čo môže pomôcť pri práci s inžiniermi, čistením údajov a tvorbou modelov. Funkčné závislosti slúžia ako efektívna invariantná funkcia, ktorá umožňuje vyhľadať a opraviť problémy s kvalitou údajov, ktoré by mohli byť ťažké zistiť inak.

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

  • Vyhľadanie závislostí medzi stĺpcami prvku FabricDataFrame
  • Vizualizácia závislostí
  • Identifikácia problémov s kvalitou údajov
  • Vizualizujte problémy s kvalitou údajov
  • Vynútenie funkčných obmedzení medzi stĺpcami v množine údajov

Požiadavky

  • Získajte predplatné na Microsoft Fabric. Alebo si zaregistrujte bezplatnú skúšobnú verziu služby Microsoft Fabric.

  • Prihláste sa do služby Microsoft Fabric.

  • Pomocou prepínača skúseností v ľavej dolnej časti domovskej stránky sa prepnete na službu Fabric.

    Snímka obrazovky ponuky prepínača prostredí zobrazujúca, kde vybrať možnosť Dátová veda.

  • Prejdite na skúsenosti z dátovej vedy, ktoré nájdete v službe Microsoft Fabric.
  • Vytvorte nový poznámkový blok na kopírovanie a prilepenie kódu do buniek.
  • V prípade služby Spark 3.4 alebo uvedenej vyššie je sémantické prepojenie k dispozícii v predvolenom režime runtime pri použití služby Fabric a nie je potrebné ho nainštalovať. Ak používate Spark 3.3 alebo nižšie, alebo ak chcete aktualizovať na najnovšiu verziu sémantického prepojenia, môžete spustiť príkaz: python %pip install -U semantic-link  
  • Pridajte do poznámkového bloku lakehouse.

V prípade služby Spark 3.4 alebo uvedenej vyššie je sémantické prepojenie k dispozícii v predvolenom režime runtime pri použití služby Fabric a nie je potrebné ho nainštalovať. Ak používate Spark 3.3 alebo nižšie, alebo ak chcete aktualizovať na najnovšiu verziu sémantického prepojenia, spustite tento príkaz:

Python
%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()

Funkcia find_dependencies vráti fabricDataFrame s zistenými závislosťami medzi stĺpcami. Zoznam predstavuje stĺpce, ktoré majú priradenie 1:1. Funkcia tiež odstraňuje tranzitívne okraje, aby sa pokúsila prerezávať potenciálne závislosti.

Keď zadáte dropna=True možnosť, riadky, ktoré majú v oboch stĺpcoch hodnotu NaN, sa vylúčia z vyhodnotenia. Môže to mať za následok nepreloživých závislostí, ako je to znázornené v tomto príklade:

A B C
1 1 1
1 1 1
1 NaN 9
2 NaN 2
2 2 2

V niektorých prípadoch môže reťazec závislosti tvoriť cykly, keď zadáte dropna=True možnosť, ako je to znázornené v tomto príklade:

A B C
1 1 NaN
2 1 NaN
NaN 1 1
NaN 2 1
1 NaN 1
1 NaN 2

Vizualizácia závislostí v údajoch

Po nájdení funkčných závislostí v množine údajov (pomocou find_dependencies) môžete vizualizovať závislosti pomocou plot_dependency_metadata funkcie. Táto funkcia preberie výsledný prvok FabricDataFrame z find_dependencies aplikácie a vytvorí vizuálne zobrazenie závislostí medzi stĺpcami a skupinami stĺpcov.

Tento zlomok kódu jazyka Python ukazuje, ako používať plot_dependencies:

Python
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)

Funkcia plot_dependency_metadata vygeneruje vizualizáciu, ktorá zobrazuje zoskupenia stĺpcov v číslach 1:1. Stĺpce, ktoré patria do jednej skupiny, sa umiestnia do jednej bunky. Ak sa nenájdu žiadni vhodní kandidáti, vráti sa prázdny prvok FabricDataFrame.

Snímka obrazovky znázorňujúca výstup funkcie plot_dependencies.

Identifikácia problémov s kvalitou údajov

Problémy s kvalitou údajov môžu mať rôzne formuláre – napríklad chýbajúce hodnoty, nekonzistencie alebo nepresnosti. Identifikácia a riešenie týchto problémov je dôležité na zabezpečenie spoľahlivosti a platnosti akejkoľvek analýzy alebo modelu vytvoreného na základe údajov. Jedným zo spôsobov, ako zistiť problémy s kvalitou údajov, je preskúmať porušenia funkčných závislostí medzi stĺpcami v množine údajov.

Funkcia list_dependency_violations môže pomôcť identifikovať porušenia funkčných závislostí medzi stĺpcami množiny údajov. Vzhľadom na determinantný stĺpec a závislý stĺpec táto funkcia zobrazuje hodnoty porušujúce funkčnú závislosť spolu s počtom ich príslušných výskytov. Pomôže to s kontrolou približných závislostí a identifikáciou problémov s kvalitou údajov.

Tento zlomok kódu ukazuje, ako používať list_dependency_violations funkciu:

Python
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 príklade funkcia predpokladá funkčnú závislosť medzi stĺpcami ZIP (determinant) a CITY (závislých). Ak má množina údajov problémy s kvalitou údajov – napríklad rovnaký PSČ priradený k viacerým mestám – funkcia vytvorí výstup údajov s problémami:

ZIPS MESTO počítať
12345 Boston 2
12345 Seattle 1

Tento výstup označuje, že dve rôzne mestá (Boston a Seattle) majú rovnakú hodnotu PSČ (12345). Z toho vyplýva problém s kvalitou údajov v rámci množiny údajov.

Funkcia list_dependency_violations poskytuje viac možností, ktoré dokážu spracovať chýbajúce hodnoty, zobraziť hodnoty mapované na porušenie hodnôt, obmedziť počet vrátených porušení a zoradiť výsledky podľa počtu alebo determinantného stĺpca.

Výstup list_dependency_violations môže pomôcť identifikovať problémy s kvalitou údajov množiny údajov. Mali by ste však dôkladne preskúmať výsledky a zvážiť kontext svojich údajov, aby ste určili najvhodnejší postup na riešenie zistených problémov. Tento prístup môže zahŕňať viac čistenia údajov, overenia alebo prieskumu s cieľom zabezpečiť spoľahlivosť a platnosť vášho modelu alebo analýzy.

Vizualizujte problémy s kvalitou údajov

Problémy s kvalitou údajov môžu poškodiť spoľahlivosť a platnosť akejkoľvek analýzy alebo modelu vytvoreného na týchto údajoch. Identifikácia a riešenie týchto problémov je dôležité na zabezpečenie presnosti vašich výsledkov. Ak chcete zistiť problémy s kvalitou údajov, môžete preskúmať porušenia funkčných závislostí medzi stĺpcami v množine údajov. Vizualizácia týchto porušení môže zobrazovať problémy jasnejšie a pomôcť vám riešiť ich efektívnejšie.

Funkcia plot_dependency_violations môže pomôcť vizualizovať porušenia funkčných závislostí medzi stĺpcami v množine údajov. Vzhľadom na determinantný stĺpec a závislý stĺpec táto funkcia ukazuje porušenie hodnôt v grafickom formáte, aby bola jednoduchšie pochopiteľná povaha a rozsah problémov s kvalitou údajov.

Tento zlomok kódu ukazuje, ako používať plot_dependency_violations funkciu:

Python
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 príklade funkcia predpokladá existujúcu funkčnú závislosť medzi stĺpcami ZIP (determinant) a CITY (závislých). Ak má množina údajov problémy s kvalitou údajov – napríklad s rovnakým PSČ priradeným k viacerým mestám – funkcia vygeneruje graf hodnôt, ktoré porušujú hodnoty.

Funkcia plot_dependency_violations poskytuje viac možností, ktoré dokážu spracovať chýbajúce hodnoty, zobraziť hodnoty mapované na porušenie hodnôt, obmedziť počet vrátených porušení a zoradiť výsledky podľa počtu alebo determinantného stĺpca.

Funkcia plot_dependency_violations vygeneruje vizualizáciu, ktorá môže pomôcť identifikovať problémy s kvalitou údajov množiny údajov. Mali by ste však dôkladne preskúmať výsledky a zvážiť kontext svojich údajov, aby ste určili najvhodnejší postup na riešenie zistených problémov. Tento prístup môže zahŕňať viac čistenia údajov, overenia alebo prieskumu s cieľom zabezpečiť spoľahlivosť a platnosť vášho modelu alebo analýzy.

Snímka obrazovky zobrazujúca výstup funkcie plot_dependency_violations.

Vynútenie funkčných obmedzení

Kvalita údajov je kľúčová na zabezpečenie spoľahlivosti a platnosti akejkoľvek analýzy alebo modelu vytvoreného na množine údajov. Vynútenie funkčných obmedzení medzi stĺpcami v množine údajov môže pomôcť zlepšiť kvalitu údajov. Funkčné obmedzenia môžu pomôcť zabezpečiť, aby vzťahy medzi stĺpcami mali presnosť a konzistentnosť, čo môže viesť k presnejjšej analýze alebo výsledkom modelu.

Funkcia drop_dependency_violations môže pomôcť vynútiť funkčné obmedzenia medzi stĺpcami v množine údajov. Znižuje počet riadkov, ktoré porušujú dané obmedzenie. Vzhľadom na determinantný stĺpec a závislý stĺpec táto funkcia odstráni riadky s hodnotami, ktoré nie sú v súlade s funkčným obmedzením medzi danými dvoma stĺpcami.

Tento zlomok kódu ukazuje, ako používať drop_dependency_violations funkciu:

Python
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")

Tu funkcia vynucuje funkčné obmedzenie medzi stĺpcami ZIP (determinant) a CITY (závislých). Pre každú hodnotu determinanta sa vyberie najbežnejšia hodnota závislého stĺpca a všetky riadky s inými hodnotami sa vyradia. Napríklad vzhľadom na túto množinu údajov by sa riadok s parametrom CITY=Seattle vyradili a funkčná závislosť ZIP –> CITY bude vo výstupe obsahovať:

ZIPS MESTO
12345 Seattle
12345 Boston
12345 Boston
98765 Baltimore
00000 San Francisco

Funkcia drop_dependency_violations poskytuje verbose možnosť ovládať podrobnosť výstupu. Nastavením verbose=1môžete zobraziť počet riadkov, ktoré sa vyradili. Hodnota verbose=2 zobrazuje celý obsah riadkov vynechaných riadkov.

Funkcia drop_dependency_violations môže vynútiť funkčné obmedzenia medzi stĺpcami v množine údajov, čo môže pomôcť zlepšiť kvalitu údajov a viesť k presnejším výsledkom vo vašej analýze alebo modeli. Musíte však starostlivo zvážiť kontext vašich údajov a funkčné obmedzenia, ktoré sa rozhodnete vynútiť, aby ste sa uistili, že náhodne neodstránite hodnotné informácie z množiny údajov.