Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zależności funkcjonalne to relacje między kolumnami w tabeli, gdzie wartości w jednej kolumnie określają wartości w innej kolumnie. Zrozumienie tych zależności może pomóc w odkryciu wzorców i relacji w danych. To zrozumienie może pomóc w zakresie inżynierii cech, czyszczenia danych i zadań tworzenia modelu. Zależności funkcjonalne działają jako efektywna niezmienność, która pomaga znaleźć i rozwiązać problemy z jakością danych, które mogą być trudne do wykrycia w inny sposób.
W tym artykule użyjesz linku semantycznego do:
- Znajdowanie zależności między kolumnami elementu FabricDataFrame
- Wizualizowanie zależności
- Identyfikowanie problemów z jakością danych
- Wizualizowanie problemów z jakością danych
- Wymuszanie ograniczeń funkcjonalnych między kolumnami w zestawie danych
Wymagania wstępne
Pobierz subskrypcję Microsoft Fabric. Możesz też utworzyć bezpłatne konto Microsoft Fabric wersji próbnej.
Zaloguj się do Microsoft Fabric.
Przełącz się na Fabric, używając przełącznika nawigacji w lewej dolnej części strony głównej.
- Przejdź do środowiska nauki o danych znalezionego w Microsoft Fabric.
- Utwórz nowy notatnik, aby kopiować i wklejać kod do komórek.
- W przypadku platformy Spark w wersji 3.4 lub nowszej link semantyczny jest dostępny w domyślnym środowisku uruchomieniowym podczas korzystania z Fabric i nie ma potrzeby go instalować. Jeśli używasz platformy Spark 3.3 lub nowszej albo chcesz zaktualizować do najnowszej wersji narzędzia Semantic Link, możesz uruchomić polecenie:
python %pip install -U semantic-link - Dodaj Lakehouse do notebooka.
Link semantyczny jest dostępny w domyślnym uruchomieniowym środowisku Fabric. Aby zaktualizować link semantyczny do najnowszej wersji, uruchom następujące polecenie:
%pip install -U semantic-link
Znajdowanie zależności funkcjonalnych w danych
Funkcja SemPy find_dependencies wykrywa zależności funkcjonalne między kolumnami elementu FabricDataFrame. Funkcja używa progu na entropii warunkowej do odnajdywania przybliżonych zależności funkcjonalnych, gdzie niska entropia warunkowa wskazuje silną zależność między kolumnami. Aby funkcja find_dependencies była bardziej selektywna, ustaw niższy próg entropii warunkowej. Niższy próg oznacza, że wykrywane są tylko silniejsze zależności.
Ten fragment kodu Python pokazuje, jak używać 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()
Funkcja find_dependencies zwraca element FabricDataFrame z wykrytymi zależnościami między kolumnami.
Lista reprezentuje kolumny, które mają mapowanie 1:1. Funkcja usuwa również przejściowe krawędzie, aby spróbować przyciąć potencjalne zależności.
Po określeniu dropna=True opcji funkcja eliminuje wiersze, które mają wartość NaN w jednej kolumnie z oceny. To usunięcie może spowodować nietranzatywne zależności, jak pokazano w poniższym przykładzie.
| A | B | C |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | NaN | 9 |
| 2 | NaN | 2 |
| 2 | 2 | 2 |
W niektórych przypadkach łańcuch zależności może tworzyć cykle po określeniu dropna=True opcji, jak pokazano w poniższym przykładzie:
| A | B | C |
|---|---|---|
| 1 | 1 | NaN |
| 2 | 1 | NaN |
| NaN | 1 | 1 |
| NaN | 2 | 1 |
| 1 | NaN | 1 |
| 1 | NaN | 2 |
Wizualizowanie zależności w danych
Po znalezieniu zależności funkcjonalnych w zestawie danych przy użyciu programu find_dependenciesmożna wizualizować zależności przy użyciu plot_dependency_metadata funkcji . Ta funkcja pobiera wynikowy obiekt FabricDataFrame z find_dependencies i tworzy wizualną reprezentację zależności między kolumnami a grupami kolumn.
Ten fragment kodu Python pokazuje, jak używać 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)
Funkcja plot_dependency_metadata generuje wizualizację, która pokazuje grupowanie kolumn 1:1. Kolumny należące do jednej grupy są umieszczane w jednej komórce. Jeśli funkcja nie znajdzie żadnych odpowiednich kandydatów, zwraca pusty element FabricDataFrame.
Identyfikowanie problemów z jakością danych
Problemy z jakością danych mogą mieć wiele form — na przykład brakujące wartości, niespójności lub niedokładności. Aby zapewnić niezawodność i ważność każdej analizy lub modelu utworzonego na podstawie danych, ważne jest zidentyfikowanie i rozwiązanie tych problemów. Jednym ze sposobów wykrywania problemów z jakością danych jest zbadanie naruszeń zależności funkcjonalnych między kolumnami w zestawie danych.
Funkcja list_dependency_violations może pomóc w znalezieniu naruszeń zależności funkcjonalnych między kolumnami zestawu danych. Po podaniu kolumny determinant i kolumny zależnej funkcja wyświetla wartości naruszające zależność funkcjonalną wraz z liczbą ich wystąpień. Te informacje mogą pomóc w sprawdzeniu przybliżonych zależności i zidentyfikowaniu problemów z jakością danych.
Poniższy fragment kodu pokazuje, jak używać list_dependency_violations funkcji:
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")
W tym przykładzie funkcja przyjmuje zależność funkcjonalną między kolumnami ZIP (determinant) i CITY (zależnymi). Jeśli zestaw danych ma problemy z jakością danych — na przykład ten sam kod pocztowy przypisany do wielu miast — funkcja generuje dane z problemami:
| ZIP | MIASTO | liczyć |
|---|---|---|
| 12345 | Boston | 2 |
| 12345 | Seattle | 1 |
Te dane wyjściowe wskazują, że dwa różne miasta (Boston i Seattle) mają taką samą wartość kodu pocztowego (12345). Ten wynik sugeruje problem z jakością danych w zestawie danych.
Funkcja list_dependency_violations udostępnia więcej opcji, które mogą obsługiwać brakujące wartości, wyświetlać wartości mapowane na naruszające wartości, ograniczyć liczbę zwróconych naruszeń oraz posortować wyniki według liczby lub kolumny determinanty.
Wynik list_dependency_violations może pomóc w zidentyfikowaniu problemów z jakością danych. Należy jednak dokładnie zbadać wyniki i rozważyć kontekst danych, aby określić najbardziej odpowiedni przebieg działania w celu rozwiązania zidentyfikowanych problemów. Takie podejście może obejmować więcej czyszczenia, walidacji lub eksploracji danych w celu zapewnienia niezawodności i poprawności analizy lub modelu.
Wizualizowanie problemów z jakością danych
Problemy z jakością danych mogą uszkodzić niezawodność i ważność dowolnej analizy lub modelu utworzonego na tych danych. Identyfikowanie i rozwiązywanie tych problemów jest ważne, aby zapewnić dokładność wyników. Aby wykryć problemy z jakością danych, sprawdź naruszenia zależności funkcjonalnych między kolumnami w zestawie danych. Wizualizowanie tych naruszeń może wyraźniej pokazać problemy i pomóc w ich bardziej efektywnym rozwiązywaniu.
Funkcja plot_dependency_violations może pomóc w wizualizacji naruszeń zależności funkcjonalnych między kolumnami w zestawie danych. Biorąc pod uwagę kolumnę determinant i kolumnę zależną, ta funkcja pokazuje naruszające wartości w formacie graficznym, aby ułatwić zrozumienie charakteru i zakresu problemów z jakością danych.
Ten fragment kodu pokazuje, jak używać plot_dependency_violations funkcji:
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")
W tym przykładzie funkcja przyjmuje istniejącą zależność funkcjonalną między kolumnami ZIP (determinant) i CITY (zależnymi). Jeśli zestaw danych ma problemy z jakością danych — na przykład ten sam kod POCZTOWY przypisany do wielu miast — funkcja generuje graf naruszających wartości.
Funkcja plot_dependency_violations udostępnia więcej opcji, które mogą obsługiwać brakujące wartości, wyświetlać wartości zmapowane do wartości naruszających, ograniczyć liczbę zwróconych naruszeń oraz posortować wyniki według liczby lub kolumny determinującej.
Funkcja plot_dependency_violations generuje wizualizację, która może pomóc zidentyfikować problemy z jakością danych zestawu danych. Należy jednak dokładnie zbadać wyniki i rozważyć kontekst danych, aby określić najbardziej odpowiedni przebieg działania w celu rozwiązania zidentyfikowanych problemów. Takie podejście może obejmować więcej czyszczenia, walidacji lub eksploracji danych w celu zapewnienia niezawodności i poprawności analizy lub modelu.
Wymuszanie ograniczeń funkcjonalnych
Jakość danych ma kluczowe znaczenie dla zapewnienia niezawodności i poprawności dowolnej analizy lub modelu utworzonego na podstawie zestawu danych. Wymuszanie ograniczeń funkcjonalnych między kolumnami w zestawie danych może pomóc poprawić jakość danych. Ograniczenia funkcjonalne zapewniają, że relacje między kolumnami mają dokładność i spójność, co może prowadzić do dokładniejszej analizy lub wyników modelu.
Funkcja drop_dependency_violations wymusza ograniczenia funkcjonalne między kolumnami w zestawie danych. Usuwa wiersze naruszające określone ograniczenie. Biorąc pod uwagę kolumnę determina i kolumnę zależną, ta funkcja usuwa wiersze z wartościami, które nie są zgodne z ograniczeniem funkcjonalnym między dwiema kolumnami.
Ten fragment kodu pokazuje, jak używać drop_dependency_violations funkcji:
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")
W tym przykładzie funkcja wymusza ograniczenie funkcjonalne między kolumnami ZIP (determinant) i CITY (zależne). Dla każdej wartości determinatora funkcja wybiera najbardziej typową wartość kolumny zależnej i usuwa wszystkie wiersze z innymi wartościami. Na przykład, biorąc pod uwagę ten zestaw danych, wiersz z CITY=Seattle jest usunięty, a zależność funkcyjna ZIP -> CITY jest zachowana w danych wyjściowych.
| ZIP | MIASTO |
|---|---|
| 12345 | Seattle |
| 12345 | Boston |
| 12345 | Boston |
| 98765 | Baltimore |
| 00000 | San Francisco |
Funkcja drop_dependency_violations umożliwia kontrolowanie szczegółowości danych wyjściowych za pomocą opcji verbose. Ustawiając wartość verbose=1, można zobaczyć liczbę porzuconych wierszy. Wartość verbose=2 przedstawia całą zawartość wierszy porzuconych.
Funkcja drop_dependency_violations może wymuszać ograniczenia funkcjonalne między kolumnami w zestawie danych, co może pomóc poprawić jakość danych i prowadzić do bardziej dokładnych wyników analizy lub modelu. Należy jednak uważnie rozważyć kontekst danych i ograniczenia funkcjonalne, które chcesz wymusić, aby upewnić się, że nie usuniesz przypadkowo cennych informacji z zestawu danych.