Opetusohjelma: Semanttisen mallin toiminnallisten riippuvuuksien analysointi
Tässä opetusohjelmassa käytiin läpi Power BI -analyytikon aiempia työkertoja, jotka on tallennettu semanttisten mallien (Power BI -tietojoukkojen) muodossa. Käyttämällä SemPyä (esikatselu) Synapse Data Science -kokemuksessa Microsoft Fabricissa voit analysoida dataframen sarakkeissa olevia toiminnallisia riippuvuuksia. Tämä analyysi auttaa havaitsemaan tietojen laatuun liittyviä ei-vähäpätöisiä ongelmia, jotta saat tarkempia merkityksellisiä tietoja.
Tässä opetusohjelmassa opit:
- Käytä toimialuetietoa semanttisen mallin toiminnallisia riippuvuuksia koskevien hypoteesien muotoilemiseen.
- Tutustu semanttisen linkin Python-kirjaston (SemPy) komponentteihin, jotka tukevat Power BI -integrointia ja auttavat tietojen laadun analysoinnin automatisoinnissa. Näitä osia ovat seuraavat:
- FabricDataFrame – pandas-kaltainen rakenne, joka on parannettu semanttisten lisätietojen avulla.
- Hyödyllisiä funktioita semanttisten mallien hakemiseen Fabric-työtilasta muistikirjaan.
- Hyödylliset funktiot, jotka automatisoivat oletuksia toiminnallisista riippuvuuksista ja jotka tunnistavat semanttisten mallien suhteiden rikkomuksia.
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.
Etsi ja valitse työtila valitsemalla vasemmasta siirtymisruudusta Työtilat . Tästä työtilasta tulee nykyinen työtilasi.
Lataa asiakkaan tuottavuuden malli.pbix-semanttinen malli Fabric-samples GitHub -säilöstä ja lataa se työtilaasi.
Seuraa mukana muistikirjassa
powerbi_dependencies_tutorial.ipynb-muistikirja on tämän opetusohjelman mukana.
Jos haluat avata tämän opetusohjelman liitteenä olevan muistikirjan, tuo muistikirja työtilaasi noudattamalla ohjeita kohdassa Järjestelmän valmisteleminen datatieteen opetusohjelmia varten.
Jos haluat kopioida ja liittää koodin tältä sivulta, voit luoda uuden muistikirjan.
Muista liittää lakehouse muistikirjaan ennen kuin aloitat koodin suorittamisen.
Muistikirjan asettaminen
Tässä osiossa määrität muistikirjaympäristön, joka sisältää tarvittavat moduulit ja tiedot.
Asenna
SemPy
PyPI:%pip
stä muistikirjan sisäisen asennustoiminnon avulla:%pip install semantic-link
Suorita myöhemmin tarvittavien moduulien tuonti:
import sempy.fabric as fabric from sempy.dependencies import plot_dependency_metadata
Tietojen lataaminen ja esikäsittely
Tässä opetusohjelmassa käytetään vakiomuotoista semanttista mallia Asiakkaan tuottavuuden malli.pbix. Lisätietoja semanttisesta mallista on artikkelissa Asiakkaan tuottavuuden malli Power BI:lle.
Lataa Power BI -tiedot FabricDataFrames-kehyksiin SemPy-funktion
read_table
avulla:dataset = "Customer Profitability Sample" customer = fabric.read_table(dataset, "Customer") customer.head()
State
Lataa taulukko FabricDataFrame-kehykseen:state = fabric.read_table(dataset, "State") state.head()
Vaikka tämän koodin tulos näyttää pandas DataFramelta, olet itse asiassa alustanut tietorakenteen nimeltä ,
FabricDataFrame
joka tukee joitakin hyödyllisiä toimintoja pandojen päällä.Tarkista :n
customer
tietotyyppi.type(customer)
Tuloste vahvistaa, että sen
customer
tyyppisempy.fabric._dataframe._fabric_dataframe.FabricDataFrame
on .'Liity -
customer
jastate
DataFrames-kehyksiin:customer_state_df = customer.merge(state, left_on="State", right_on="StateCode", how='left') customer_state_df.head()
Toiminnallisten riippuvuuksien tunnistaminen
Toiminnallinen riippuvuus ilmenee yksi moneen -suhteena kahden (tai useamman) DataFrame-kehyksen sarakkeen arvojen välillä. Näiden suhteiden avulla voidaan tunnistaa tietojen laatuongelmat automaattisesti.
Suorita SemPy-funktio
find_dependencies
yhdistetyssä DataFrame-kehyksessä tunnistaaksesi sarakkeiden arvojen väliset olemassa olevat toiminnalliset riippuvuudet:dependencies = customer_state_df.find_dependencies() dependencies
Visualisoi tunnistetut riippuvuudet SemPy:n funktiolla
plot_dependency_metadata
:plot_dependency_metadata(dependencies)
Toiminnallisten riippuvuuksien kaavio näyttää odotetusti, että
Customer
sarake määrittää jotkin sarakkeet, kutenCity
,Postal Code
jaName
.Yllättäen kaavio ei näytä toiminnallista riippuvuutta -ja-kohteen välillä
City
Postal Code
, luultavasti siksi, että sarakkeiden välisissä suhteissa on monia rikkomuksia. SemPy-funktiollaplot_dependency_violations
voit visualisoida tiettyjen sarakkeiden välisten riippuvuussuhteiden rikkomuksia.
Tietojen tutkiminen laatuongelmien vuoksi
Piirrä kaavio SemPy:n visualisointifunktiolla
plot_dependency_violations
.customer_state_df.plot_dependency_violations('Postal Code', 'City')
Riippuvuusrikkomusten kaaviossa näkyvät vasemmalla puolella olevat
Postal Code
arvot ja oikealla puolella olevat arvotCity
. Reuna yhdistääPostal Code
vasemmalla puolella olevan reunan oikealla puolella olevallaCity
rivillä, jos rivi sisältää nämä kaksi arvoa. Reunoilla on merkintä tällaisten rivien määrällä. Toisessa on esimerkiksi kaksi riviä, postinumero 20004, toisessa Kaupunki "North Tower" ja toisessa Kaupunki "Washington".Lisäksi piirtokaaviossa näkyy muutamia rikkomuksia ja useita tyhjiä arvoja.
Vahvista tyhjien arvojen määrä parametrille
Postal Code
:customer_state_df['Postal Code'].isna().sum()
Postinumerolla 50 rivillä on NA.
Pudota rivejä, joissa on tyhjiä arvoja. Etsi sitten riippuvuussuhteet -funktion
find_dependencies
avulla. Huomaa ylimääräinen parametriverbose=1
, joka tarjoaa katsauksen SemPy:n sisäisiin tekijöihin:customer_state_df2=customer_state_df.dropna() customer_state_df2.find_dependencies(verbose=1)
Ehdollinen entropy for
Postal Code
jaCity
on 0.049. Tämä arvo ilmaisee, että toiminnallisia riippuvuusrikkomuksia on. Ennen kuin korjaat rikkomukset, nosta ehdollisen entropyn raja-arvo oletusarvosta arvoon0.01
0.05
, vain nähdäksesi riippuvuudet. Pienemmät raja-arvot aiheuttavat vähemmän riippuvuuksia (tai suuremman valikoivuuden).Nosta ehdollisen entropyn raja-arvo
0.01
oletusarvosta arvoon0.05
:plot_dependency_metadata(customer_state_df2.find_dependencies(threshold=0.05))
Jos käytät toimialueen tietämystä siitä, mikä entiteetti määrittää muiden entiteettien arvot, tämä riippuvuuskaavio vaikuttaa oikein.
Tutki lisää havaittuja tietojen laatuun liittyviä ongelmia. Esimerkiksi katkoviivanuoli liitetään ja
City
Region
, mikä ilmaisee, että riippuvuus on vain likimääräinen. Tämä likimääräinen suhde voi tarkoittaa, että toiminnallinen riippuvuus on osittainen.customer_state_df.list_dependency_violations('City', 'Region')
Katso tarkemmin kaikkia tapauksia, joissa ei-pieni
Region
arvo aiheuttaa rikkomuksen:customer_state_df[customer_state_df.City=='Downers Grove']
Tuloksena näkyy Downers Groven kaupunki Illinoisissa ja Nebraskassa. Downer's Grove on kuitenkin kaupunki Illinoisissa, ei Nebraskassa.
Tutustu Fremontin kaupunkiin:
customer_state_df[customer_state_df.City=='Fremont']
Kaliforniassa on kaupunki nimeltä Fremont. Texasissa hakukone kuitenkin palauttaa Premontin, ei Fremontia.
On myös epäilyttävää nähdä - ja
Country/Region
-luokkien välisenName
riippuvuuden rikkomukset, jotka ovat merkiksi katkoviivalla alkuperäisessä riippuvuusrikkomusten kaaviossa (ennen kuin poistat rivit tyhjillä arvoilla).customer_state_df.list_dependency_violations('Name', 'Country/Region')
Vaikuttaa siltä, että kahdella alueella – Yhdysvallat ja Kanadassa, on yksi asiakas, SDI Design. Tämä tapaus ei ehkä ole semanttinen rikkomus, mutta se voi olla vain harvinainen tapaus. Silti kannattaa katsoa tarkemmin:
Tutustu tarkemmin asiakkaan SDI-rakenteeseen:
customer_state_df[customer_state_df.Name=='SDI Design']
Lisätarkastus osoittaa, että kyseessä on itse asiassa kaksi eri asiakasta (eri toimialoilta) samalla nimellä.
Valmisteleva tietoanalyysi on jännittävä prosessi, ja niin on myös tietojen siistiminen. Tiedot piilottelevat aina jotakin sen mukaan, miten niitä tarkastellaan, mitä haluat kysyä ja niin edelleen. Semanttinen linkki tarjoaa uusia työkaluja, joiden avulla voit saavuttaa enemmän tiedoillasi.
Liittyvä sisältö
Katso muut opetusohjelmat semanttisesta linkistä /SemPy:stä:
- Opetusohjelma: Funktionaalisia riippuvuuksia sisältävien tietojen siistiminen
- Opetusohjelma: Poimi ja laske Power BI -mittareita Jupyter-muistikirjasta
- Opetusohjelma: Suhteiden etsiminen semanttisessa mallissa semanttisen linkin avulla
- Opetusohjelma: Synthea-tietojoukon suhteiden etsiminen semanttisen linkin avulla
- Opetusohjelma: Tietojen vahvistaminen käyttämällä SemPy-toimintoa ja suuria odotuksia (GX) (esikatselu)