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ä microsoft fabric -kokeiluversion maksuttomaan .
Vaihda Fabriciin aloitussivun vasemmassa alakulmassa olevan käyttökokemuksen vaihtajan avulla.
Valitse Työtilat vasemmasta siirtymisruudusta työtilan hakemiseksi ja valitsemiseksi. Tästä työtilasta tulee nykyinen työtilasi.
Lataa semanttisen mallin Customer Profitability Sample.pbi x kangasmallien GitHub-säilöstä.
Valitse työtilassa Tuo>-raportti tai sivutetun raportin>Tästä tietokoneesta, lataa Asiakkaan tuottavuuden malli.pbix - -tiedosto 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, noudata ohjeita kohdassa Valmistele järjestelmäsi datatiedeopetusohjelmia varten muistikirjan tuomiseksi työtilaasi.
Jos haluat kopioida ja liittää koodin tältä sivulta, voit luoda uuden muistikirjan.
Muista liittää muistikirjaan lakehouse- 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:stä käyttämällä muistikirjassa olevaa%pip
asennusominaisuutta:%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 kohdassa Power BI -Asiakkaan tuottavuuden malli.
Lataa Power BI -tiedot FabricDataFrames-kehyksiin SemPy:n
read_table
-funktiolla:dataset = "Customer Profitability Sample" customer = fabric.read_table(dataset, "Customer") customer.head()
Lataa
State
-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
customer
tietotyyppi:type(customer)
Tuloste vahvistaa, että
customer
tyyppiä onsempy.fabric._dataframe._fabric_dataframe.FabricDataFrame
.Liity DataFrame-
customer
- jastate
-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-
find_dependencies
funktio yhdistetyssä DataFrame-kehyksessä tunnistaaksesi olemassa olevat toiminnalliset riippuvuudet sarakkeiden arvojen välillä:dependencies = customer_state_df.find_dependencies() dependencies
Visualisoi tunnistetut riippuvuudet SemPy:n
plot_dependency_metadata
funktiolla: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
City
jaPostal Code
välillä luultavasti siksi, että sarakkeiden välisissä suhteissa on monia rikkomuksia. Voit käyttää SemPy-plot_dependency_violations
funktiota tiettyjen sarakkeiden välisten riippuvuusrikkomusten visualisointiin.
Tietojen tutkiminen laatuongelmien vuoksi
Piirrä kaavio SemPyn
plot_dependency_violations
visualisointifunktiolla.customer_state_df.plot_dependency_violations('Postal Code', 'City')
Riippuvuusrikkomusten kaaviossa näkyvät vasemmalla puolella
Postal Code
arvot ja oikealla puolellaCity
arvot. Reuna liittää vasemmalla puolella olevanPostal Code
ja oikealla puolella olevanCity
, 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ä
Postal Code
:customer_state_df['Postal Code'].isna().sum()
Postinumerolla 50 rivillä on NA.
Pudota rivejä, joissa on tyhjiä arvoja. Etsi sitten riippuvuussuhteet käyttämällä
find_dependencies
-funktiota. Huomaa ylimääräinen parametriverbose=1
, joka tarjoaa katsauksen SemPy:n sisäiseen käyttöön:customer_state_df2=customer_state_df.dropna() customer_state_df2.find_dependencies(verbose=1)
Postal Code
jaCity
ehdollinen entropy on 0,049. Tämä arvo ilmaisee, että toiminnallisia riippuvuusrikkomuksia on. Ennen kuin korjaat rikkomukset, nosta ehdollisen entropyn raja-arvo0.01
oletusarvosta0.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
oletusarvosta0.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 liittää
City
jaRegion
, 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-
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 Illinoisssa, ei Nebraskassa.
Tutustu Fremontkaupunkiin:
customer_state_df[customer_state_df.City=='Fremont']
Kaliforniassa on kaupunki nimeltä Fremont. Texasissa hakukone kuitenkin palauttaa Premont, ei Fremont.
On myös epäilyttävää nähdä
Name
jaCountry/Region
välisen riippuvuuden rikkomukset, kuten katkoviiva ilmaisee alkuperäisessä riippuvuusrikkomusten kaaviossa (ennen kuin poistat rivit tyhjinä arvoina).customer_state_df.list_dependency_violations('Name', 'Country/Region')
Vaikuttaa siltä, että yhdellä asiakkaalla, SDI Design on kahdella alueella: Yhdysvalloissa ja Kanadassa. Tämä tapaus ei ehkä ole semanttinen rikkomus, mutta se voi olla vain harvinainen tapaus. Silti kannattaa katsoa tarkemmin:
Tutustu tarkemmin asiakkaiden SDI Design:
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.
Aiheeseen liittyvä sisältö
Katso muut opetusohjelmat semanttisesta linkistä /SemPy:stä:
- opetusohjelma: Tietojen siistiminen toiminnallisilla riippuvuuksilla
- opetusohjelma: Poimi ja laske Power BI -mittareita Jupyter-muistikirjasta
- opetusohjelma: Suhteiden etsiminen semanttisesta mallista semanttisen linkin
- opetusohjelma: Suhteiden etsiminen Synthea -tietojoukosta semanttisen linkin
- opetusohjelma: Tietojen vahvistaminen SemPy- ja Great Expectations (GX) -