Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
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 są używane do określania wartości w innej kolumnie. Zrozumienie tych zależności może pomóc w odkryciu wzorców i relacji w danych, co z kolei może pomóc w inżynierii cech, czyszczeniu danych i tworzeniu modeli. Zależności funkcjonalne działają jako efektywna niezmienność, która pozwala znaleźć i rozwiązać problemy z jakością danych, które mogą być trudne do wykrycia w przeciwnym razie.
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
Uzyskaj subskrypcję usługi Microsoft Fabric. Możesz też utworzyć konto bezpłatnej wersji próbnej usługi Microsoft Fabric.
Zaloguj się do usługi Microsoft Fabric.
Przełącz się na Fabric, używając przełącznika nawigacji w lewej dolnej części strony głównej.
- Przejdź do środowiska Nauka o danych znalezionego w usłudze Microsoft Fabric.
- Utwórz nowy notes , aby skopiować/wkleić 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 sieci szkieletowej i nie ma potrzeby jej instalowania. 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 usługę Lakehouse do notesu.
W przypadku platformy Spark w wersji 3.4 lub nowszej link semantyczny jest dostępny w domyślnym środowisku uruchomieniowym podczas korzystania z sieci szkieletowej i nie ma potrzeby jej instalowania. Jeśli używasz platformy Spark 3.3 lub nowszej lub chcesz zaktualizować do najnowszej wersji narzędzia Semantic Link, 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 zwiększyć selektywność find_dependencies funkcji, można ustawić niższy próg dla entropii warunkowej. Niższy próg oznacza, że zostaną wykryte tylko silniejsze zależności.
Ten fragment kodu w języku Python pokazuje, jak używać polecenia 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 wiersze, które mają wartość NaN w jednej kolumnie, zostaną wyeliminowane z oceny. Może to spowodować nietransitive zależności, jak pokazano w tym 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 tym 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 polecenia ) można zwizualizować zależności za pomocą find_dependenciesplot_dependency_metadata funkcji . Ta funkcja pobiera wynikowy element FabricDataFrame z find_dependencies elementu i tworzy wizualną reprezentację zależności między kolumnami i grupami kolumn.
Ten fragment kodu w języku Python pokazuje, jak używać polecenia 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)
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 nie znaleziono odpowiednich kandydatów, zostanie zwrócony pusty element FabricDataFrame.
Identyfikowanie problemów z jakością danych
Problemy z jakością danych mogą mieć różne formy — na przykład brakujące wartości, niespójności lub niedokładności. Identyfikowanie i rozwiązywanie tych problemów jest ważne, aby zapewnić niezawodność i ważność każdej analizy lub modelu utworzonego na danych. 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 zidentyfikować naruszenia zależności funkcjonalnych między kolumnami zestawu danych. Biorąc pod uwagę kolumnę determinant i kolumnę zależną, ta funkcja pokazuje wartości naruszające zależność funkcjonalną wraz z liczbą ich wystąpień. Może to pomóc w sprawdzeniu przybliżonych zależności i zidentyfikowaniu problemów z jakością danych.
Ten fragment kodu pokazuje, jak używać list_dependency_violations funkcji:
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")
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). Sugeruje to 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ń i posortować wyniki według liczby lub kolumny determinant.
Dane wyjściowe mogą pomóc w zidentyfikowaniu list_dependency_violations problemów 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.
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, można sprawdzić 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ę determina 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.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")
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 mapowane na naruszające wartości, ograniczyć liczbę zwróconych naruszeń i posortować wyniki według liczby lub kolumny determinant.
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 mogą pomóc w zapewnieniu, ż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 może pomóc w wymuszaniu ograniczeń funkcjonalnych między kolumnami w zestawie danych. Porzuca 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
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 miejscu funkcja wymusza ograniczenie funkcjonalne między kolumnami ZIP (determinant) i CITY (zależnymi). Dla każdej wartości determinatora jest wybierana najbardziej typowa wartość zależna, a wszystkie wiersze z innymi wartościami są porzucane. Na przykład, biorąc pod uwagę ten zestaw danych, wiersz z CITY=Seattle zostanie porzucony, a funkcjonalna zależność ZIP —> CITY przechowuje w danych wyjściowych:
| ZIP | MIASTO |
|---|---|
| 12345 | Seattle |
| 12345 | Boston |
| 12345 | Boston |
| 98765 | Baltimore |
| 00000 | San Francisco |
Funkcja drop_dependency_violations udostępnia verbose opcję kontrolowania szczegółowości danych wyjściowych. 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 dokładnie rozważyć kontekst danych i ograniczenia funkcjonalne, które chcesz wymusić, aby upewnić się, że nie usuniesz przypadkowo cennych informacji z zestawu danych.