Muistiinpano
Tälle sivulle pääsy edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoja.
Tälle sivulle pääsy edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoja.
Tässä opetusohjelmassa opit suorittamaan valmistelevan tietoanalyysin (EDA), jotta voit tutkia ja tutkia tietoja samalla, kun teet yhteenvedon niiden tärkeimmistä ominaisuuksista tietojen visualisointitekniikoiden avulla.
Käytät seaborn, Python-tietojen visualisointikirjastoa, joka tarjoaa korkean tason käyttöliittymän visualisointien luomiseen tietokehyksissä ja matriiseissa. Lisätietoja seabornon kohdassa Seaborn: Statistical Data Visualization.
Käytät myös Data Wrangler, muistikirjapohjaista työkalua, joka tarjoaa mukaansatempaavan kokemuksen valmistelevan tietoanalyysin ja puhdistuksen suorittamiseen.
Tämän opetusohjelman tärkeimmät vaiheet ovat:
- Lue lakehousessa olevasta delta-taulukosta tallennetut tiedot.
- Muunna Spark DataFrame Pandas DataFrameksi, jota python-visualisointikirjastot tukevat.
- Käytä Data Wrangler -funktiota tietojen ensimmäisen puhdistamisen ja muunnoksen suorittamiseen.
- Suorita valmistelevia tietoanalyyseja käyttämällä
seaborn.
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.
Tämä on opetusohjelmasarjan osa 2/5. Suorita tämä opetusohjelma suorittamalla ensin:
Seuraa mukana muistikirjassa
2-explore-cleanse-data.ipynb on muistikirja, joka 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.
Tärkeä
Liitä sama lakehouse, jota käytit osassa 1.
Raakadata Lakehousesta
Lue raakadataa Lakehousen Files -osiosta. Latasit nämä tiedot edelliseen muistikirjaan. Varmista, että olet kiinnittänyt saman lakehousen, jota käytit osassa 1 tähän muistikirjaan, ennen kuin suoritat tämän koodin.
df = (
spark.read.option("header", True)
.option("inferSchema", True)
.csv("Files/churn/raw/churn.csv")
.cache()
)
Pandas DataFrame -kehyksen luominen tietojoukosta
Muunna spark DataFrame pandas DataFrame -kehykseksi käsittelyn ja visualisoinnin helpottamiseksi.
df = df.toPandas()
Raakatietojen näyttäminen
Tutustu raakatietoihin displayavulla. Voit tehdä joitakin perustilastoja ja näyttää kaavionäkymiä. Huomaa, että sinun on ensin tuotava tarvittavat kirjastot, kuten Numpy, Pnadas, Seabornja Matplotlib tietojen analysointia ja visualisointia varten.
import seaborn as sns
sns.set_theme(style="whitegrid", palette="tab10", rc = {'figure.figsize':(9,6)})
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
from matplotlib import rc, rcParams
import numpy as np
import pandas as pd
import itertools
display(df, summary=True)
Tietojen ensimmäisen puhdistuksen suorittaminen Data Wrangler -funktion avulla
Jos haluat tutkia ja muuntaa mitä tahansa muistikirjasi pandoja Tietokehykset, käynnistä Data Wrangler suoraan muistikirjasta.
Muistiinpano
Data Wrangleria ei voi avata, kun muistikirjan ydin on varattu. Solun suorituksen on oltava valmis ennen Data Wranglerin käynnistämistä.
- Valitse muistikirjan valintanauhan Tiedot -välilehdestä Käynnistä tiedot Wrangler. Näet luettelon aktivoiduista pandas DataFrame -kehyksistä, joita voi muokata.
- Valitse DataFrame, jonka haluat avata Data Wranglerissa. Koska tämä muistikirja sisältää vain yhden DataFrame-kehyksen,
df, valitsedf.
Data Wrangler käynnistyy ja luo tiedoistasi kuvaavan yleiskatsauksen. Keskellä olevassa taulukossa näkyvät kaikki tietosarakkeet. Taulukon vieressä olevassa Summary panelissa näkyy tietoja DataFramesta. Kun valitset sarakkeen taulukossa, yhteenvetoon päivitetään valitun sarakkeen tiedot. Joissakin tapauksissa näytettävät ja yhteenvedetyt tiedot ovat dataframe-kehyksen katkenneet näkymät. Kun näin käy, näet yhteenvetoruudussa varoituskuvan. Pidä hiiren osoitinta tämän varoituksen päällä, kun haluat tarkastella tilannetta kuvattavaa tekstiä.
Kutakin toimintoa voidaan käyttää vain napsautuksella, päivittää reaaliaikaisesti näytettäviä tietoja ja luoda koodi, joka voidaan tallentaa takaisin muistikirjaan uudelleenkäytettävänä funktiona.
Tämän osion muissa osissa käydään läpi tietojen puhdistaminen Data Wranglerilla.
Rivien kaksoiskappaleiden pudottaminen
Vasemmassa paneelissa on luettelo toiminnoista (esimerkiksi Etsi ja korvaa, Format, Formulas, Numeric), jotka voit suorittaa tietojoukolle.
Laajenna Etsi ja korvaa ja valitse Poista rivien kaksoiskappaleet.
Näyttöön tulee paneeli, jossa voit valita vertailtavien sarakkeiden luettelon ja määrittää rivin kaksoiskappaleen. Valitse RowNumber ja CustomerId.
Keskimmäisessä paneelissa on esikatselu tämän toiminnon tuloksista. Esikatselu-kohdassa on koodin, joka suorittaa toiminnon. Tässä esiintymässä tiedot näyttävät muuttumattomina. Mutta koska tarkastelet katkennttua näkymää, toimintoa kannattaa silti käyttää.
Valitse Käytä (joko reunassa tai alareunassa) siirtyäksesi seuraavaan vaiheeseen.
Jätä rivit, joista puuttuu tietoja
Data Wrangler -funktion avulla voit pudottaa rivejä, joista puuttuu tietoja kaikista sarakkeista.
Valitse Poista puuttuvat arvot kohdasta Etsi ja korvaa.
Valitse Valitse kaikkiTarget -sarakkeista.
Valitse Käytä siirtyäksesi seuraavaan vaiheeseen.
Sarakkeiden pudottaminen
Data Wrangler -painikkeilla voit pudottaa sarakkeita, joita et tarvitse.
Laajenna Rakenne- ja valitse Pudota sarakkeet.
Valitse RowNumber, CustomerId, Surname. Nämä sarakkeet näkyvät punaisina esikatselussa, jotta ne näkyvät koodin muuttamia (tässä tapauksessa ne on jätetty pois).
Valitse Käytä siirtyäksesi seuraavaan vaiheeseen.
Koodin lisääminen muistikirjaan
Aina, kun valitset Käytä, alavasemmalla Puhdistusvaiheet -paneeliin luodaan uusi vaihe. Valitse paneelin alareunasta Esikatsele koodia kaikille vaiheille, jos haluat nähdä kaikkien erillisten vaiheiden yhdistelmän.
Valitse Lisää koodi muistikirjaan - vasemmasta yläkulmasta Data Wrangler -kohdan sulkemiseksi ja lisää koodi automaattisesti. Lisää koodi muistikirjaan rivittää koodin funktioon ja kutsuu sitten funktiota.
Juomaraha
Data Wrangler -funktion luomaa koodia ei käytetä, ennen kuin suoritat uuden solun manuaalisesti.
Jos et käyttänyt Data Wrangler -toimintoa, voit käyttää seuraavaa koodisolua.
Tämä koodi on samanlainen kuin Data Wranglerin tuottama koodi, mutta lisää argumentin inplace=True kuhunkin luotuun vaiheisiin. Kun määrität inplace=True, pandas korvaa alkuperäisen DataFramen sen sijaan, että tuotokseksi tuotaisiin uusi DataFrame.
# Modified version of code generated by Data Wrangler
# Modification is to add in-place=True to each step
# Define a new function that include all above Data Wrangler operations
def clean_data(df):
# Drop rows with missing data across all columns
df.dropna(inplace=True)
# Drop duplicate rows in columns: 'RowNumber', 'CustomerId'
df.drop_duplicates(subset=['RowNumber', 'CustomerId'], inplace=True)
# Drop columns: 'RowNumber', 'CustomerId', 'Surname'
df.drop(columns=['RowNumber', 'CustomerId', 'Surname'], inplace=True)
return df
df_clean = clean_data(df.copy())
df_clean.head()
Tietojen tutkiminen
Näyttää joitakin puhdistetun tiedon yhteenvetoja ja visualisointeja.
Luokittaisten, numeeristen ja kohdemääritteiden määrittäminen
Tämän koodin avulla voit määrittää luokittaisia, numeerisia ja kohdemääritteitä.
# Determine the dependent (target) attribute
dependent_variable_name = "Exited"
print(dependent_variable_name)
# Determine the categorical attributes
categorical_variables = [col for col in df_clean.columns if col in "O"
or df_clean[col].nunique() <=5
and col not in "Exited"]
print(categorical_variables)
# Determine the numerical attributes
numeric_variables = [col for col in df_clean.columns if df_clean[col].dtype != "object"
and df_clean[col].nunique() >5]
print(numeric_variables)
Viiden numeron yhteenveto
Näytä numeeristen määritteiden viiden numeron yhteenveto (vähimmäispistemäärä, ensimmäinen louhos, mediaani, kolmas kvartaali, enimmäispistemäärä) ruutukaavioiden avulla.
df_num_cols = df_clean[numeric_variables]
sns.set(font_scale = 0.7)
fig, axes = plt.subplots(nrows = 2, ncols = 3, gridspec_kw = dict(hspace=0.3), figsize = (17,8))
fig.tight_layout()
for ax,col in zip(axes.flatten(), df_num_cols.columns):
sns.boxplot(x = df_num_cols[col], color='green', ax = ax)
fig.delaxes(axes[1,2])
Poistuneiden ja ei-yhdenkään asiakkaan jakelu
Näytä poistuneiden ja ei-yhteensopimattomiin asiakkaisiin verrattuna luokittaisten määritteiden jakauma.
attr_list = ['Geography', 'Gender', 'HasCrCard', 'IsActiveMember', 'NumOfProducts', 'Tenure']
df_clean['Exited'] = df_clean['Exited'].astype(str)
fig, axarr = plt.subplots(2, 3, figsize=(15, 4))
for ind, item in enumerate (attr_list):
sns.countplot(x = item, hue = 'Exited', data = df_clean, ax = axarr[ind%2][ind//2])
fig.subplots_adjust(hspace=0.7)
Numeeristen määritteiden jakauma
Näytä numeeristen määritteiden tiheysjakauma histogrammin avulla.
columns = df_num_cols.columns[: len(df_num_cols.columns)]
fig = plt.figure()
fig.set_size_inches(18, 8)
length = len(columns)
for i,j in itertools.zip_longest(columns, range(length)):
plt.subplot((length // 2), 3, j+1)
plt.subplots_adjust(wspace = 0.2, hspace = 0.5)
df_num_cols[i].hist(bins = 20, edgecolor = 'black')
plt.title(i)
plt.show()
Ominaisuuksien suunnittelun suorittaminen
Luo uusia määritteitä nykyisten määritteiden perusteella suorittamalla ominaisuustekniikka:
df_clean['Tenure'] = df_clean['Tenure'].astype(int)
df_clean["NewTenure"] = df_clean["Tenure"]/df_clean["Age"]
df_clean["NewCreditsScore"] = pd.qcut(df_clean['CreditScore'], 6, labels = [1, 2, 3, 4, 5, 6])
df_clean["NewAgeScore"] = pd.qcut(df_clean['Age'], 8, labels = [1, 2, 3, 4, 5, 6, 7, 8])
df_clean["NewBalanceScore"] = pd.qcut(df_clean['Balance'].rank(method="first"), 5, labels = [1, 2, 3, 4, 5])
df_clean["NewEstSalaryScore"] = pd.qcut(df_clean['EstimatedSalary'], 10, labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Käytä Data Wrangler -funktiota yhden kuuman koodauksen suorittamiseen
Data Wrangler -funktiota voidaan käyttää myös yhden kuuman koodauksen suorittamiseen. Avaa tätä varten Data Wrangler uudelleen. Valitse tällä kertaa df_clean tiedot.
- Laajenna Kaavat- ja valitse yhden kuuman koodin.
- Näyttöön tulee paneeli, jossa on luettelo sarakkeista, joille haluat suorittaa yhden kuuman koodauksen. Valitse Maantiede- ja Gender.
Voit kopioida luodun koodin, sulkea Data Wranglerin palataksesi muistikirjaan ja liittää sitten uuteen soluun. Vaihtoehtoisesti voit valita Lisää koodi muistikirjaan - vasemmasta yläkulmasta Data Wrangler -kohdan sulkemiseksi ja koodin lisäämiseksi automaattisesti.
Jos et käyttänyt Data Wrangler -toimintoa, voit käyttää seuraavaa koodisolua:
# This is the same code that Data Wrangler will generate
import pandas as pd
def clean_data(df_clean):
# One-hot encode columns: 'Geography', 'Gender'
df_clean = pd.get_dummies(df_clean, columns=['Geography', 'Gender'])
return df_clean
df_clean_1 = clean_data(df_clean.copy())
df_clean_1.head()
Yhteenveto valmistelevan tietoanalyysin havainnoista
- Suurin osa asiakkaista on Ranskasta, vertailusta Espanjaan ja Saksaan, kun taas Espanjan vaihtuvuusaste on alhaisin, kun se vertailee Ranskaa ja Saksaa.
- Useimmilla asiakkailla on luottokortit.
- On asiakkaita, joiden ikä ja luottopisteet ovat yli 60 ja alle 400, mutta heitä ei voida pitää poikkeavina arvoina.
- Vain harvoilla asiakkailla on enemmän kuin kaksi pankin tuotetta.
- Asiakkaiden, jotka eivät ole aktiivisia, vaihtuvuusaste on suurempi.
- Sukupuoli- ja virkavuodet eivät näytä vaikuttavan asiakkaan päätökseen sulkea pankkitili.
Delta-taulukon luominen puhdistettuja tietoja varten
Käytät näitä tietoja tämän sarjan seuraavassa muistikirjassa.
table_name = "df_clean"
# Create Spark DataFrame from pandas
sparkDF=spark.createDataFrame(df_clean_1)
sparkDF.write.mode("overwrite").format("delta").save(f"Tables/{table_name}")
print(f"Spark dataframe saved to delta table: {table_name}")
Seuraava vaihe
Opeta ja rekisteröi koneoppimismalleja näiden tietojen avulla: