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

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.

  1. Asenna SemPy PyPI: %pip stä muistikirjan sisäisen asennustoiminnon avulla:

    %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 artikkelissa Asiakkaan tuottavuuden malli Power BI:lle.

  1. Lataa Power BI -tiedot FabricDataFrames-kehyksiin SemPy-funktion read_table avulla:

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

  3. Tarkista :n customertietotyyppi.

    type(customer)
    

    Tuloste vahvistaa, että sen customer tyyppi sempy.fabric._dataframe._fabric_dataframe.FabricDataFrameon .'

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

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

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

    plot_dependency_metadata(dependencies)
    

    Näyttökuva, jossa näkyy riippuvuustietojen metatietojen piirto.

    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 -ja-kohteen välillä City Postal Code, luultavasti siksi, että sarakkeiden välisissä suhteissa on monia rikkomuksia. SemPy-funktiolla plot_dependency_violations voit visualisoida tiettyjen sarakkeiden välisten riippuvuussuhteiden rikkomuksia.

Tietojen tutkiminen laatuongelmien vuoksi

  1. Piirrä kaavio SemPy:n visualisointifunktiolla plot_dependency_violations .

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

    Näyttökuva, jossa näkyy riippuvuusrikkomusten kaavio.

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

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

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

    Postinumerolla 50 rivillä on NA.

  3. Pudota rivejä, joissa on tyhjiä arvoja. Etsi sitten riippuvuussuhteet -funktion find_dependencies avulla. Huomaa ylimääräinen parametri verbose=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 ja City on 0.049. Tämä arvo ilmaisee, että toiminnallisia riippuvuusrikkomuksia on. Ennen kuin korjaat rikkomukset, nosta ehdollisen entropyn raja-arvo oletusarvosta arvoon 0.01 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 arvoon 0.05:

    plot_dependency_metadata(customer_state_df2.find_dependencies(threshold=0.05))
    

    Riippuvuusmetatietojen kaavio, jossa on suurempi entropy-raja-arvo.

    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 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')
    
  6. 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.

  7. Tutustu Fremontin kaupunkiin:

    customer_state_df[customer_state_df.City=='Fremont']
    

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

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

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

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