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
Hanki Microsoft Fabric -tilaus. Voit myös rekisteröityä ilmaiseen Microsoft Fabric -kokeiluversioon.
Siirry Synapse Data Science -käyttökokemukseen aloitussivun vasemmassa reunassa olevan käyttökokemuksen vaihtajan avulla.
- 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.
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.
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.