Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben az oktatóanyagban egy szemantikai modellként (Power BI-adathalmazként) tárolt Power BI-elemző munkájára épít. A SemPy (előzetes verzió) használatával a Microsoft Fabric Synapse Data Science felületén elemezheti a DataFrame-oszlopok funkcionális függőségeit. Ez az elemzés segít felderíteni a finom adatminőségi problémákat, hogy pontosabb megállapításokat kapjon.
Ebben az oktatóanyagban a következőket sajátíthatja el:
- Használjon tartományismeretet a szemantikai modell funkcionális függőségeiről szóló hipotézisek megfogalmazásához.
- Megismerkedhet a Szemantic Link Python-kódtárának (SemPy) azon összetevőivel, amelyek integrálhatók a Power BI-val, és segítenek automatizálni az adatminőség-elemzést. Ezek az összetevők a következők:
- FabricDataFrame – további szemantikai információkkal bővített pandas-szerű struktúra
- Olyan függvények, amelyek szemantikai modelleket kérnek le egy Fabric-munkaterületről a jegyzetfüzetbe
- Függvények, amelyek kiértékelik a funkcionális függőségi hipotéziseket, és azonosítják a szemantikai modellek kapcsolati megsértését
Előfeltételek
Microsoft Fabric-előfizetés lekérése. Vagy iratkozzon fel egy ingyenes Microsoft Fabric próba.
Jelentkezzen be a Microsoft Fabric.
Váltson Fabricre a kezdőlap bal alsó részén található élménykapcsolóval.
A munkaterület megkereséséhez és kijelöléséhez válassza ki a munkaterületeket a navigációs panelen. Ez a munkaterület lesz az aktuális munkaterület.
Töltse le a Customer Profitability Sample.pbix fájlt a hálóminták GitHub-adattárából.
A munkaterületen válassza >jelentés vagy lapszámozott jelentés importálása>A számítógépről lehetőséget a Customer Profitability Sample.pbix fájl munkaterületre való feltöltéséhez.
Követés a jegyzetfüzetben
A powerbi_dependencies_tutorial.ipynb jegyzetfüzet kíséri ezt az oktatóanyagot.
Az oktatóanyaghoz mellékelt jegyzetfüzet megnyitásához kövesse az utasításokat a A rendszer előkészítése adatelemzési oktatóanyagokhoz részben, hogy a jegyzetfüzetet importálja a munkaterületére.
Ha inkább erről a lapról másolja és illessze be a kódot, létrehozhat egy új jegyzetfüzetet.
A kód futtatása előtt mindenképpen csatoljon egy lakehouse-t a jegyzetfüzethez.
A jegyzetfüzet beállítása
Állítson be egy jegyzetfüzet-környezetet a szükséges modulokkal és adatokkal.
A SemPy a PyPI-ból való telepítéséhez használható
%pipa jegyzetfüzetben.%pip install semantic-linkImportálja a szükséges modulokat.
import sempy.fabric as fabric from sempy.dependencies import plot_dependency_metadata
Adatok betöltése és előfeldolgozása
Ez az oktatóanyag egy standard szemantikai mintamodellt használ: Customer Profitability Sample.pbix. A szemantikai modell leírását a Power BI
Power BI-adatok betöltése a
FabricDataFramefüggvény használatávalfabric.read_table.dataset = "Customer Profitability Sample" customer = fabric.read_table(dataset, "Customer") customer.head()Töltse be a
Statetáblát egyFabricDataFrame.state = fabric.read_table(dataset, "State") state.head()Bár a kimenet úgy néz ki, mint egy pandas DataFrame, ez a kód inicializál egy úgynevezett adatstruktúrát
FabricDataFrame, amely műveleteket ad hozzá a pandas fölé.Ellenőrizze a következő adattípust
customer: .type(customer)A kimenet azt mutatja, hogy
customeraz .sempy.fabric._dataframe._fabric_dataframe.FabricDataFrameCsatlakozzon az és
customerstateazDataFrameobjektumokhoz.customer_state_df = customer.merge(state, left_on="State", right_on="StateCode", how='left') customer_state_df.head()
Funkcionális függőségek azonosítása
A funkcionális függőség egy egy-a-többhöz kapcsolat az értékek között két vagy több oszlopban egy DataFrameoszlopban. Ezekkel a kapcsolatokkal automatikusan észlelhet adatminőségi problémákat.
Futtassa a SemPy függvényét
find_dependenciesaz egyesítettDataFramerendszeren az oszlopértékek közötti funkcionális függőségek azonosításához.dependencies = customer_state_df.find_dependencies() dependenciesA függőségek vizualizációja a SemPy függvényével
plot_dependency_metadata.plot_dependency_metadata(dependencies)A funkcionális függőségek grafikonja azt mutatja, hogy az oszlop olyan
Customeroszlopokat határoz meg, mint aCity,Postal CodeésName.A gráf nem jelenít meg funkcionális függőséget az és
Citya közöttPostal Code, valószínűleg azért, mert sok szabálysértés van az oszlopok közötti kapcsolatban. A SemPy függvény használatávalplot_dependency_violationsmegjeleníthet függőségi szabálysértéseket adott oszlopok között.
Az adatok megismerése minőségi problémák esetén
Rajzoljunk egy diagramot a(z) SemPy
plot_dependency_violationsvizualizációs függvényével.customer_state_df.plot_dependency_violations('Postal Code', 'City')
A függőségi szabálysértések ábrázolása a bal oldalon lévő értékeket
Postal Code, a jobb oldalon pedig az értékeketCityjeleníti meg. Egy él összekapcsol egyPostal Codea bal oldalon egyCitya jobb oldalon, ha van egy sor, amely tartalmazza ezt a két értéket. Az élek az ilyen sorok számával vannak megjelölve. Van például két sor 20004 irányítószámmal, az egyik az "Északi torony" várossal, a másik pedig "Washington" várossal.A diagramon néhány szabálysértés és sok üres érték is látható.
Ellenőrizze a
Postal Codeüres értékeinek számát:customer_state_df['Postal Code'].isna().sum()50 sorhoz tartoznak a na for
Postal Code.Üres értékeket tartalmazó sorok elvetése. Ezután keresse meg a függőségeket a
find_dependenciesfüggvénnyel. Figyelje meg az extra paramétertverbose=1, amely betekintést nyújt a SemPy belső működésébe:customer_state_df2=customer_state_df.dropna() customer_state_df2.find_dependencies(verbose=1)A
Postal CodeésCityfeltételes entrópia 0,049. Ez az érték azt jelzi, hogy működési függőségi szabálysértések vannak. A szabálysértések kijavítása előtt emelje fel a feltételes entrópia küszöbértékét a0.01alapértelmezett értékéről0.05, csak a függőségek megtekintéséhez. Az alacsonyabb küszöbértékek kevesebb függőséget (vagy nagyobb szelektivitást) eredményeznek.A feltételes entrópia küszöbértékének növelése az alapértelmezett
0.01értékről0.05:plot_dependency_metadata(customer_state_df2.find_dependencies(threshold=0.05))Ha tartományismeretet alkalmaz arra vonatkozóan, hogy melyik entitás határozza meg más entitások értékeit, ez a függőségi gráf pontosnak tűnik.
További, észlelt adatminőségi problémák megismerése. Például egy szaggatott nyíl összekapcsolja
CityésRegion, ami azt jelzi, hogy a függőség csak hozzávetőleges. Ez a közelítő kapcsolat azt jelentheti, hogy részleges funkcionális függőség áll fenn.customer_state_df.list_dependency_violations('City', 'Region')Tekintse meg közelebbről azokat az eseteket, amikor egy érvénytelen
Regionérték szabálysértést okoz:customer_state_df[customer_state_df.City=='Downers Grove']Az eredmény Downers Grove városát mutatja Illinois-ban és Nebraska-ban. Downers Grove azonban illinois-i város, nem Nebraska.
Tekintse meg Fremontvárosát:
customer_state_df[customer_state_df.City=='Fremont']Van egy Fremont nevű város Kaliforniában. Texas esetében azonban a keresőmotor Premont, nem Fremontot adja vissza.
Az is gyanús, hogy a
Nameés aCountry/Regionközötti függőség megsértései láthatók, amit az eredeti függőségi szabálysértések grafikonján a szaggatott vonal jelez (mielőtt eltávolítanánk a sorokat, melyek üres értékeket tartalmaznak).customer_state_df.list_dependency_violations('Name', 'Country/Region')Az egyik ügyfél, az SDI Design két régióban jelenik meg: az Egyesült Államokban és Kanadában. Ez az eset nem lehet szemantikai szabálysértés, csak nem ritka. Mégis érdemes közelebbről megnézni:
Nézze meg közelebbről a SDI Designügyfél:
customer_state_df[customer_state_df.Name=='SDI Design']A további vizsgálatok két különböző, azonos nevű iparágból származó ügyfelet mutatnak be.
A feltáró jellegű adatelemzés és az adattisztítás iteratív. Az, hogy mit talál, a kérdéseitől és perspektívájától függ. A Szemantic Link új eszközöket biztosít az adatok további kinyeréséhez.
Kapcsolódó tartalom
Tekintse meg a szemantikai hivatkozásra és a SemPy-ra vonatkozó egyéb oktatóanyagokat:
- oktatóanyag: Adatok tisztítása funkcionális függőségekkel
- oktatóanyag: Power BI-mértékek kinyerása és kiszámítása Jupyter-jegyzetfüzetből
- oktatóanyag: Kapcsolatok felderítése szemantikai modellben szemantikai hivatkozással
- Oktatóanyag: Kapcsolatok felderítése a Synthea-adatkészletben szemantikai hivatkozás használatával
- Útmutató: Adatok ellenőrzése SemPy és Great Expectations (GX) segítségével