Jaa


Tietojen toiminnallisten riippuvuuksien havaitseminen, tutkiminen ja vahvistaminen semanttisen linkin avulla

Toiminnalliset riippuvuudet ovat taulukon sarakkeiden välisiä suhteita, joissa yhden sarakkeen arvoja käytetään toisen sarakkeen arvojen määrittämiseen. Näiden riippuvuuksien ymmärtäminen voi auttaa löytämään kuvioita ja suhteita tiedoistasi, mikä puolestaan voi auttaa ominaisuuksien suunnittelussa, tietojen puhdistuksessa ja mallinnuksen tehtävissä. Toiminnalliset riippuvuudet toimivat tehokkaana muuttumattomana ratkaisuna, jonka avulla voit etsiä ja korjata tietojen laatuun liittyviä ongelmia, joita on ehkä vaikea tunnistaa muulla tavoin.

Tässä artikkelissa käytetään semanttista linkkiä seuraavasti:

  • FabricDataFrame-kehyksen sarakkeiden välisten riippuvuuksien etsiminen
  • Visualisoi riippuvuudet
  • Tietojen laatuun liittyvien ongelmien tunnistaminen
  • Tietojen laatuun liittyvien ongelmien visualisointi
  • Ota käyttöön toiminnallisia rajoituksia tietojoukon sarakkeiden välillä

Edellytykset

  • Siirry Microsoft Fabricin datatiedekokemukseen.
  • Luo uusi muistikirja , jonka avulla voit kopioida ja liittää koodia soluihin.
  • Spark 3.4:ssä ja tätä uudemmat versioissa semanttinen linkki on käytettävissä oletusarvoisessa suorituspalvelussa Fabricia käytettäessä, eikä sitä tarvitse asentaa. Jos käytät Spark 3.3:a tai uudempaa versiota tai haluat päivittää semanttisen linkin uusimpaan versioon, voit suorittaa komennon: python %pip install -U semantic-link  
  • Lisää Lakehouse muistikirjaasi.

Spark 3.4:ssä ja tätä uudemmat versioissa semanttinen linkki on käytettävissä oletusarvoisessa suorituspalvelussa Fabricia käytettäessä, eikä sitä tarvitse asentaa. Jos käytät Spark 3.3:a tai uudempaa tai haluat päivittää semanttisen linkin uusimpaan versioon, suorita tämä komento:

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

Funktio find_dependencies palauttaa FabricDataFrame-kehyksen, jonka sarakkeiden välillä on havaittuja riippuvuuksia. Luettelo edustaa sarakkeita, joilla on 1:1-yhdistämismääritys. Funktio poistaa myös siirtymäreunat mahdollisten riippuvuuksien karsimiseksi.

Kun määrität dropna=True asetuksen, rivit, joilla on NaN-arvo kummassakin sarakkeessa, poistetaan arvioinnista. Tämä voi aiheuttaa ei-muuntavia riippuvuuksia, kuten tässä esimerkissä:

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

Joissakin tapauksissa riippuvuusketju voi muodostaa jaksoja, kun määrität dropna=True asetuksen, kuten tässä esimerkissä:

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

Tietojen riippuvuuksien visualisointi

Kun löydät funktionaalisia riippuvuuksia tietojoukosta (käyttäen find_dependencies), voit visualisoida riippuvuuksia funktion plot_dependency_metadata kanssa. Tämä funktio ottaa tulokseksi saatavan FabricDataFrame-kehyksen kohteesta find_dependencies ja luo visuaalisen esityksen sarakkeiden ja sarakeryhmien välisille riippuvuuksista.

Tässä Python-koodikatkelmassa näytetään, miten voit käyttää plot_dependencies:a.

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)

Funktio plot_dependency_metadata luo visualisoinnin, joka näyttää sarakkeiden 1:1-ryhmittelyt. Yhteen ryhmään kuuluvat sarakkeet sijoitetaan yhteen soluun. Jos sopivia ehdokkaita ei löydy, palautetaan tyhjä FabricDataFrame.

Näyttökuva, jossa näkyy plot_dependencies-funktion tulos.

Tietojen laatuun liittyvien ongelmien tunnistaminen

Tietojen laatuun liittyvissä ongelmissa voi olla erilaisia lomakkeita, kuten puuttuvia arvoja, epäyhtenäisyksiä tai epätarkkuuksia. Näiden ongelmien tunnistaminen ja ratkaiseminen on tärkeää, jotta voidaan varmistaa tietoihin perustuvien analyysien ja mallien luotettavuus ja oikeellisuus. Yksi tapa tunnistaa tietojen laatuun liittyviä ongelmia on tarkastella toiminnallisten riippuvuuksien rikkomuksia tietojoukon sarakkeiden välillä.

Funktiolla list_dependency_violations voidaan tunnistaa tietojoukon sarakkeiden välisten toiminnallisten riippuvuuksien rikkomukset. Kun annetaan määräävä sarake ja riippuvainen sarake, tämä funktio näyttää arvot, jotka rikkovat toiminnallista riippuvuutta, sekä niiden esiintymien määrän. Tämä auttaa tarkistamaan likimääräisiä riippuvuuksia ja tunnistamaan tietojen laatuun liittyviä ongelmia.

Tässä koodikatkelmassa näytetään, miten funktiota list_dependency_violations käytetään:

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

Tässä esimerkissä funktiolla oletetaan, että ZIP-sarakkeiden (määräävä tekijä) ja CITY (riippuvainen) sarakkeiden välillä on toiminnallinen riippuvuussuhde. Jos tietojoukossa on tietojen laatuun liittyviä ongelmia – esimerkiksi sama postinumero, joka on määritetty useisiin kaupunkeihin – funktio tulostaa tiedot ongelmitta:

ZIP PAIKKAKUNTA määrä
12345 Boston 2
12345 Seattle 1

Tämä tulos ilmaisee, että kahdessa eri kaupungissa (Bostonissa ja Seattlessa) on sama postinumeroarvo (12345). Tämä viittaa tietojen laatuongelmaan tietojoukossa.

Funktio list_dependency_violations tarjoaa enemmän vaihtoehtoja, jotka voivat käsitellä puuttuvia arvoja, näyttää arvoja, jotka on yhdistetty arvojen rikkomiseen, rajoittaa palautettujen rikkomusten määrää ja lajitella tulokset määrän tai määräävän sarakkeen mukaan.

Tulos list_dependency_violations voi auttaa tunnistamaan tietojoukon tietojen laatuun liittyviä ongelmia. Tarkista kuitenkin tulokset huolellisesti ja tarkastele tietoihisi liittyviä tietoja, jotta voit määrittää sopivimman toiminta suunnan tunnistettujen ongelmien käsittelemiseksi. Tähän lähestymistapaan voi sisältyä enemmän tietojen siistimistä, vahvistusta tai tutkimista analyysin tai mallin luotettavuuden ja oikeellisuuden varmistamiseksi.

Tietojen laatuun liittyvien ongelmien visualisointi

Tietojen laatuun liittyvät ongelmat voivat vahingoittaa tietojen pohjalta rakennettujen analyysien tai mallien luotettavuutta ja oikeellisuutta. Näiden ongelmien tunnistaminen ja ratkaiseminen on tärkeää, jotta voit varmistaa tuloksiesi tarkkuuden. Tietojen laatuun liittyvien ongelmien tunnistamiseksi voit tarkastella toiminnallisten riippuvuuksien rikkomuksia tietojoukon sarakkeiden välillä. Näiden rikkomusten visualisoiminen voi näyttää ongelmat selkeämmin ja auttaa sinua käsittelemään niitä tehokkaammin.

Funktiolla plot_dependency_violations voidaan visualisoida tietojoukon sarakkeiden välisten toiminnallisten riippuvuuksien rikkomuksia. Kun annetaan ratkaiseva sarake ja riippuvainen sarake, tämä funktio näyttää arvojen rikkomisen graafisessa muodossa, jotta on helpompi ymmärtää tietojen laatuun liittyvien ongelmien luonne ja laajuus.

Tässä koodikatkelmassa näytetään, miten funktiota plot_dependency_violations käytetään:

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

Tässä esimerkissä funktiossa oletetaan, että ZIP-sarakkeiden (määräävä tekijä) ja CITY (riippuvainen) sarakkeiden välillä on olemassa oleva toiminnallinen riippuvuussuhde. Jos tietojoukossa on tietojen laatuun liittyviä ongelmia – esimerkiksi sama postinumero, joka on määritetty useisiin kaupunkeihin – funktio luo kaavion rikkovasta arvosta.

Funktio plot_dependency_violations tarjoaa enemmän vaihtoehtoja, jotka voivat käsitellä puuttuvia arvoja, näyttää arvoja, jotka on yhdistetty arvojen rikkomiseen, rajoittaa palautettujen rikkomusten määrää ja lajitella tulokset määrän tai määräävän sarakkeen mukaan.

Funktio plot_dependency_violations luo visualisoinnin, joka auttaa tunnistamaan tietojoukon tietojen laatuun liittyviä ongelmia. Tarkista kuitenkin tulokset huolellisesti ja tarkastele tietoihisi liittyviä tietoja, jotta voit määrittää sopivimman toiminta suunnan tunnistettujen ongelmien käsittelemiseksi. Tähän lähestymistapaan voi sisältyä enemmän tietojen siistimistä, vahvistusta tai tutkimista analyysin tai mallin luotettavuuden ja oikeellisuuden varmistamiseksi.

Näyttökuvassa näkyy plot_dependency_violations funktion tuloste.

Toiminnallisten rajoitusten pakottaminen

Tietojen laatu on erittäin tärkeää, jotta voidaan varmistaa tietojoukkoon perustuvien analyysien tai mallien luotettavuus ja oikeellisuus. Toiminnallisten rajoitusten pakottaminen tietojoukon sarakkeiden välillä voi auttaa parantamaan tietojen laatua. Toiminnalliset rajoitteet voivat auttaa varmistamaan, että sarakkeiden välisissä suhteissa on tarkkuus ja yhdenmukaisuus, mikä voi johtaa tarkempaan analyysiin tai mallin tuloksiin.

Funktio drop_dependency_violations voi auttaa valvomaan toiminnallisia rajoituksia tietojoukon sarakkeiden välillä. Se rivit, jotka rikkovat tiettyä rajoitusta. Kun annetaan määräävä sarake ja riippuvainen sarake, tämä funktio poistaa rivejä, joiden arvot eivät ole kahden sarakkeen toiminnallisen rajoitteen mukaisia.

Tässä koodikatkelmassa näytetään, miten funktiota drop_dependency_violations käytetään:

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

Tässä funktiossa on toiminnallinen rajoitus ZIP-sarakkeiden (määräävä tekijä) ja KAUPUNKI (riippuvainen) sarakkeiden välillä. Kullekin determinaantin arvolle poimitaan riippuvaisen yleisin arvo ja poistetaan kaikki rivit, joilla on muita arvoja. Esimerkiksi tämän tietojoukon takia rivi, jonka arvo on CITY=Seattle , pudotettaisiin pois, ja toiminnallinen riippuvuussuhde ZIP –> KAUPUNKI sisältää tuloksen:

ZIP PAIKKAKUNTA
12345 Seattle
12345 Boston
12345 Boston
98765 Baltimore
00000 San Francisco

Funktio drop_dependency_violations mahdollistaa verbose tulosteen verboteetin hallinnan. Kun määrität arvon verbose=1, näet pudotettavien rivien määrän. Arvo verbose=2 näyttää pudotellisten rivien koko rivin sisällön.

Funktio drop_dependency_violations voi pakottaa funktionaalisia rajoituksia tietojoukkosi sarakkeiden välillä, mikä voi auttaa parantamaan tietojen laatua ja johtaa tarkempiin tuloksiin analyysissa tai mallissa. Sinun on kuitenkin harkittava huolellisesti tietoihisi liittyviä kontekstia ja valitsemiasi toiminnallisia rajoituksia, jotta voit varmistaa, ettet poista arvokkaita tietoja tietojoukosta vahingossa.