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ä voi olla hyödyllistä ominaisuuksien suunnittelussa, tietojen puhdistuksessa ja mallin luomisessa. 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ä seuraaviin:

  • 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 datatieteen kokemukseen.
  • 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 versiota tai haluat päivittää semanttisen linkin uusimpaan versioon, voit suorittaa komennon:

python %pip install -U semantic-link  

Funktionaalisten riippuvuuksien etsiminen tiedoista

SemPy-funktio find_dependencies havaitsee toiminnallisia riippuvuuksia FabricDataFrame-kehyksen sarakkeiden välillä. Funktio käyttää ehdollisen entropyn kynnysarvoa etsiäkseen likimääräisiä toiminnallisia riippuvuuksia, joissa pieni ehdollinen entropy-ominaisuus osoittaa vahvaa riippuvuutta sarakkeiden välillä. Jos haluat tehdä funktiosta find_dependencies valikoivamman, voit määrittää alemman raja-arvon ehdolliselle entropylle. Alempi raja-arvo tarkoittaa, että vain vahvempia riippuvuuksia havaitaan.

Seuraavassa Python-koodikatkelmassa esitellään , miten -koodikatkelmia käytetään 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()

Funktio find_dependencies palauttaa FabricDataFrame-kehyksen, jonka sarakkeiden välillä on havaittuja riippuvuuksia. Sarakkeet, joilla on 1:1-yhdistämismääritys, esitetään luettelona. Funktio yrittää myös karsia mahdollisia riippuvuuksia poistamalla transitatiivisia reunoja.

Kun määrität dropna=True asetuksen, rivit, joilla on NaN-arvo kummassakin sarakkeessa, poistetaan arvioinnista. Tämä voi johtaa siihen, että riippuvuudet eivät ole läpikuultavia, kuten seuraavassa 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 seuraavassa esimerkissä esitetään:

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 olet löytänyt toiminnallisia riippuvuuksia tietojoukosta (käyttäen find_dependencies), voit visualisoida riippuvuuksia -funktion plot_dependency_metadata avulla. Tämä funktio ottaa tulokseksi saatavan FabricDataFrame-kehyksen kohteesta find_dependencies ja luo visuaalisen esityksen sarakkeiden ja sarakeryhmien välisille riippuvuuksista.

Seuraavassa Python-koodikatkelmassa esitellään , miten -koodikatkelmia käytetään 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)

Funktio plot_dependency_metadata luo visualisoinnin, joka näyttää sarakkeiden 1:1-ryhmittelyt. Yhteen ryhmään kuuluvat sarakkeet laitetaan 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 liittyviä ongelmia voi esiintyä eri muodoissa, kuten puuttuvia arvoja, epäyhtenäisyksiä tai epätarkkuuksia. Näiden ongelmien tunnistaminen ja ratkaiseminen on erittäin tärkeää, jotta voidaan varmistaa tietoihin perustuvien analyysien ja mallien luotettavuus ja oikeellisuus. Yksi tapa tunnistaa tietojen laatuun liittyviä ongelmia on tarkastella tietojoukon sarakkeiden välisten toiminnallisten riippuvuuksien rikkomuksia.

Funktion list_dependency_violations avulla voit tunnistaa tietojoukon sarakkeiden välisten toiminnallisten riippuvuuksien loukkaukset. 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ästä voi olla hyötyä likimääräisten riippuvuuksien tarkastamisessa ja tietojen laatuun liittyvien ongelmien tunnistamisessa.

Seuraavassa koodissa on esimerkki funktion list_dependency_violations käyttämisestä:

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ä funktio olettaa, että ZIP-sarakkeiden (määräävä tekijä) ja CITY (riippuvainen) sarakkeiden välillä on toiminnallinen riippuvuussuhde. Jos tietojoukossa on tietojen laatuun liittyviä ongelmia, kuten sama postinumero, joka määritetään useisiin kaupunkeihin, funktio tulostaa rikkovat arvot:

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

Tämä tulos ilmaisee, että sama postinumero (12345) on liitetty kahteen eri kaupunkiin (Boston ja Seattle), mikä viittaa tietojoukon tietojen laatuun liittyvään ongelmaan.

Funktio list_dependency_violations tarjoaa enemmän vaihtoehtoja puuttuvien arvojen käsittelyyn, arvojen näyttämiseen, jotka on yhdistetty arvojen rikkomiseen, palautettujen rikkomusten määrän rajoittamiseen ja tulosten lajittelemiseen määrän tai määräävän sarakkeen mukaan.

Tulos voi auttaa tunnistamaan list_dependency_violations tietojoukon tietojen laatuun liittyvät ongelmat. On kuitenkin tärkeää tarkastella tuloksia huolellisesti ja tarkastella tietoihisi liittyviä tietoja, jotta voidaan määrittää sopivin toimintatapa tunnistettujen ongelmien ratkaisemiseksi. Tämä toiminto voi edellyttää tietojen siistimistä, vahvistusta tai tutkimista analyysin tai mallin luotettavuuden ja oikeellisuuden varmistamiseksi.

Tietojen laatuun liittyvien ongelmien visualisointi

Tietojen laatuun liittyvät ongelmat voivat vaikuttaa kielteisesti minkä tahansa tietoihin perustuvien analyysien tai mallien luotettavuuteen. Näiden ongelmien tunnistaminen ja ratkaiseminen on tärkeää, jotta voit varmistaa tuloksiesi tarkkuuden. Yksi tapa tunnistaa tietojen laatuun liittyviä ongelmia on tarkastella tietojoukon sarakkeiden välisten toiminnallisten riippuvuuksien rikkomuksia. Näiden rikkomusten visualisointi voi auttaa ymmärtämään ongelmia entistä 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, mikä helpottaa tietojen laatuun liittyvien ongelmien luonteen ja laajuuden ymmärtämistä.

Seuraavassa koodissa on esimerkki funktion plot_dependency_violations käyttämisestä:

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ä funktio olettaa, että ZIP-sarakkeiden (määräävä tekijä) ja CITY (riippuvainen) sarakkeiden välillä on toiminnallinen riippuvuussuhde. Jos tietojoukossa on tietojen laatuun liittyviä ongelmia, kuten sama postinumero, joka määritetään useisiin kaupunkeihin, funktio luo kaavion arvojen rikkomisesta.

Funktio plot_dependency_violations tarjoaa enemmän vaihtoehtoja puuttuvien arvojen käsittelyyn, arvojen näyttämiseen, jotka on yhdistetty arvojen rikkomiseen, palautettujen rikkomusten määrän rajoittamiseen ja tulosten lajittelemiseen määrän tai määräävän sarakkeen mukaan.

-sovelluksen luoma plot_dependency_violations visualisointi voi auttaa tunnistamaan tietojoukon tietojen laatuun liittyviä ongelmia ja ymmärtämään niiden luonteen ja laajuuden. Tarkastelemalla kaaviota voit saada merkityksellisiä tietoja määräävän tekijän ja riippuvaisten sarakkeiden välisistä suhteista ja tunnistaa mahdollisia virheitä tai epäjohdonmukaisuuksia tiedoissasi.

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

Toiminnallisten rajoitusten pakottaminen

Tietojen laatu on erittäin tärkeää, jotta voidaan varmistaa tietojoukkoon perustuvien analyysien tai mallien luotettavuus ja oikeellisuus. Yksi tapa parantaa tietojen laatua on pakottaa tietojoukon sarakkeiden väliset toiminnalliset rajoitteet. Toiminnalliset rajoitteet voivat auttaa varmistamaan, että sarakkeiden väliset suhteet ovat yhdenmukaiset ja tarkat, mikä voi johtaa tarkempiin tuloksiin analyysissa tai mallissa.

Funktio drop_dependency_violations voi auttaa valvomaan toiminnallisia rajoituksia tietojoukon sarakkeiden välillä pudottamalla rivejä, jotka rikkovat tiettyä rajoitusta. Kun annetaan määräävä sarake ja riippuvainen sarake, tämä funktio poistaa rivit, joilla on arvoja, jotka eivät ole sopusoinnun mukaisia kahden sarakkeen toiminnallisista rajoitteista.

Seuraavassa koodissa on esimerkki funktion drop_dependency_violations käyttämisestä:

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ä esimerkissä funktiossa on toiminnallinen rajoitus ZIP-sarakkeiden (määräävä tekijä) ja CITY (riippuvainen) sarakkeiden välillä. Kullekin determinaantin arvolle poimitaan riippuvaisen yleisin arvo ja poistetaan kaikki rivit, joilla on muita arvoja. Otetaan esimerkiksi seuraava tietojoukko:

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

Jos rivi, jossa on CITY=Seattle, pudotetaan pois, ja toiminnallinen riippuvuussuhde ZIP –> KAUPUNKI sisältää tuloksen.

- drop_dependency_violations funktio mahdollistaa verbose tulosteen verbositeettien hallinnan. Kun määrität arvon verbose=1, näet pudotettavien rivien määrän, ja verbose=2 sen avulla voit tarkastella pudotettavien rivien koko rivisisältöä.

-funktiolla drop_dependency_violations voit pakottaa toiminnallisia rajoituksia tietojoukkosi sarakkeiden välillä, mikä voi auttaa parantamaan tietojen laatua ja saaden tarkempia tuloksia analyysissa tai mallissa. On kuitenkin tärkeää harkita huolellisesti tietojesi kontekstia ja valitsemiasi toiminnallisia rajoituksia sen varmistamiseksi, ettet vahingossa poista arvokkaita tietoja tietojoukosta.