Jaa


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 .

  • Kirjaudu sisään Microsoft Fabric .

  • Vaihda Fabriciin aloitussivun vasemmassa alakulmassa olevan käyttökokemuksen vaihtajan avulla.

    Näyttökuva käyttökokemuksen vaihtajavalikosta, jossa näkyy, missä datatiede valitaan.

  • 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.

Muistikirjan asettaminen

Tässä osiossa määrität muistikirjaympäristön, joka sisältää tarvittavat moduulit ja tiedot.

  1. Asenna SemPy PyPI:stä käyttämällä muistikirjassa olevaa %pip asennusominaisuutta:

    %pip install semantic-link
    
  2. 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.

  1. Lataa Power BI -tiedot FabricDataFrames-kehyksiin SemPy:n read_table-funktiolla:

    dataset = "Customer Profitability Sample"
    customer = fabric.read_table(dataset, "Customer")
    customer.head()
    
  2. 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ä.

  3. Tarkista customertietotyyppi:

    type(customer)
    

    Tuloste vahvistaa, että customer tyyppiä on sempy.fabric._dataframe._fabric_dataframe.FabricDataFrame.

  4. Liity DataFrame-customer- ja state-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.

  1. Suorita SemPy-find_dependencies funktio yhdistetyssä DataFrame-kehyksessä tunnistaaksesi olemassa olevat toiminnalliset riippuvuudet sarakkeiden arvojen välillä:

    dependencies = customer_state_df.find_dependencies()
    dependencies
    
  2. Visualisoi tunnistetut riippuvuudet SemPy:n plot_dependency_metadata funktiolla:

    plot_dependency_metadata(dependencies)
    

    Näyttökuva, joka näyttää riippuvuustietojen piirtotiedot.

    Toiminnallisten riippuvuuksien kaavio näyttää odotetusti, että Customer-sarake määrittää jotkin sarakkeet, kuten City, Postal Codeja Name.

    Yllättäen kaavio ei näytä toiminnallista riippuvuutta City ja Postal Codevä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

  1. Piirrä kaavio SemPyn plot_dependency_violations visualisointifunktiolla.

    customer_state_df.plot_dependency_violations('Postal Code', 'City')
    

    Näyttökuva, joka näyttää riippuvuusrikkomusten kaavion.

    Riippuvuusrikkomusten kaaviossa näkyvät vasemmalla puolella Postal Code arvot ja oikealla puolella City arvot. Reuna liittää vasemmalla puolella olevan Postal Code ja oikealla puolella olevan City, 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.

  2. Vahvista tyhjien arvojen määrä Postal Code:

    customer_state_df['Postal Code'].isna().sum()
    

    Postinumerolla 50 rivillä on NA.

  3. Pudota rivejä, joissa on tyhjiä arvoja. Etsi sitten riippuvuussuhteet käyttämällä find_dependencies-funktiota. Huomaa ylimääräinen parametri verbose=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 ja City ehdollinen entropy on 0,049. Tämä arvo ilmaisee, että toiminnallisia riippuvuusrikkomuksia on. Ennen kuin korjaat rikkomukset, nosta ehdollisen entropyn raja-arvo 0.01 oletusarvosta 0.05, vain nähdäksesi riippuvuudet. Pienemmät raja-arvot aiheuttavat vähemmän riippuvuuksia (tai suuremman valikoivuuden).

  4. Nosta ehdollisen entropyn raja-arvo 0.01 oletusarvosta 0.05:

    plot_dependency_metadata(customer_state_df2.find_dependencies(threshold=0.05))
    

    Riippuvuuden metatietojen kaavio, jossa on suurempi entropy-kynnysarvo.

    Jos käytät toimialueen tietämystä siitä, mikä entiteetti määrittää muiden entiteettien arvot, tämä riippuvuuskaavio vaikuttaa oikein.

  5. Tutki lisää havaittuja tietojen laatuun liittyviä ongelmia. Esimerkiksi katkoviivanuoli liittää City ja 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')
    
  6. 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.

  7. Tutustu Fremontkaupunkiin:

    customer_state_df[customer_state_df.City=='Fremont']
    

    Kaliforniassa on kaupunki nimeltä Fremont. Texasissa hakukone kuitenkin palauttaa Premont, ei Fremont.

  8. On myös epäilyttävää nähdä Name ja Country/Regionvä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:

  9. 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.

Katso muut opetusohjelmat semanttisesta linkistä /SemPy:stä: