Përshpejtimi i analizës eksploruese të të dhënave duke përdorur librarinë pandas-profiling

Gjëja e parë që duhet të bëni kur filloni punën me një grup të ri të dhënash është ta kuptoni atë. Për ta bërë këtë, për shembull, duhet të zbulojmë intervalet e vlerave që merren nga variablat, llojet e tyre, si dhe të informohemi për numrin e vlerave të munguar.

Biblioteka pandas na ofron shumë mjete të dobishme për të kryer analizën eksploruese të të dhënave (Exploratory Data Analysis, EDA). Por para se të përdorim ato, zakonisht duhet të fillojmë me funksione më të përgjithshme, siç është df.describe(). Megjithatë, duhet të theksohet se mundësitë e ofruara nga funksione të tilla janë të kufizuara, dhe fazat fillestare të punës me çdo grup të dhënash në EDA shpesh duken shumë të ngjashme me njëra-tjetrën.

Përshpejtimi i analizës eksploruese të të dhënave duke përdorur librarinë pandas-profiling

Autori i materialit që po publikojmë sot thotë se ai nuk është një adhurues i kryerjes së aktiviteteve të përsëritura. Si rezultat, në kërkim të mjeteve që do të lejojnë të kryejnë analizën eksploruese të të dhënave shpejt dhe efikasitet, ai gjeti librarinë pandas-profiling. Rezultatet e saj shprehen jo në formën e disa treguesve të veçantë, por si një raport HTML të detajuar, që përmban shumicën e informacionit mbi të dhënat e analizuar, të cilat mund të jenë të nevojshme për t'i ditur përpara se të fillojmë punën më të thellë me to.

Këtu do të shqyrtohen veçoritë e përdorimit të bibliotekës pandas-profiling për shembullin e të dhënave Titanic.

Analiza eksploruese e të dhënave me ndihmën e pandas

Kam vendosur të eksperimentoj me pandas-profiling në setin e të dhënave Titanic për shkak se aty ka të dhëna të llojeve të ndryshme dhe gjithashtu ka të dhëna të humbura. Mendoj se biblioteka pandas-profiling është veçanërisht interesante kur të dhënat nuk janë pastruar dhe kërkojnë trajtim të mëtejshëm të varur nga veçoritë e tyre. Për të kryer me sukses një trajtim të tillë, është e nevojshme të dihet se nga ku duhet të fillohet dhe në çfarë është e nevojshme të vihet theksi. Këtu na vijnë në ndihmë mundësitë e pandas-profiling.

Për të filluar, importojmë të dhënat dhe përdorim pandas për të marrë treguesit e statistikës përshkruese:

# ĐžĐŒĐżĐŸŃ€Ń‚ ĐœĐ”ĐŸĐ±Ń…ĐŸĐŽĐžĐŒŃ‹Ń… паĐșĐ”Ń‚ĐŸĐČ
import pandas as pd
import pandas_profiling
import numpy as np

# ĐžĐŒĐżĐŸŃ€Ń‚ ĐŽĐ°ĐœĐœŃ‹Ń…
df = pd.read_csv('/Users/lukas/Downloads/titanic/train.csv')

# ĐČŃ‹Ń‡ĐžŃĐ»Đ”ĐœĐžĐ” ĐżĐŸĐșазатДлДĐč ĐŸĐżĐžŃĐ°Ń‚Đ”Đ»ŃŒĐœĐŸĐč статостоĐșĐž
df.describe()

Pasi të ekzekutohet ky fragment kodi, do të marrim atë që tregohet në figurën e ardhshme.

Përshpejtimi i analizës eksploruese të të dhënave duke përdorur librarinë pandas-profiling
Të dhënat e statistikave përshkruese, të marra me mjete standarde pandas

Pavarësisht se këtu ka shumë informacion të dobishëm, nuk ka gjithçka që do të ishte interesante për të mësuar rreth të dhënave të hulumtuara. Për shembull, mund të supozohet se në kuadër të të dhënave, në strukturën DataFrame, ka 891 rreshta. Nëse duhet të verifikohet kjo, do të nevojitet një linjë tjetër kodi, që përcakton madhësinë e kuadrit. Edhe pse këto llogaritje nuk janë shumë të kërkuara në burime, përsëritja e vazhdueshme e tyre do të çojë patjetër në humbje kohe, e cila ndoshta është më mirë të shpenzohet për pastrimin e të dhënave.

Analiza eksploruese e të dhënave me pandas-profiling

Tani do të bëjmë të njëjtën gjë duke përdorur pandas-profiling:

pandas_profiling.ProfileReport(df)

Kryerja e linjës së kodit të paraqitur më sipër do të lejojë krijimin e një raporti me treguesit e analizës eksploruese të të dhënave. Kodi, i treguar më sipër, do të rezultojë në nxjerrjen e informacioneve të gjetura mbi të dhënat, por mund të bëhet që në rezultatin të del një skedar HTML, i cili, për shembull, mund të tregojë dikujt.

Pjesa e parë e raportit do të përmbajë seksionin Overview (Përmbledhje), që ofron informacione kryesore rreth të dhënave (numri i vëzhgimeve, numri i variablave, dhe kështu me radhë). Për më tepër, ajo do të përmbajë një listë paralajmërimesh, që informon analistin për ato çka duhet t'i kushtohet një vëmendje të veçantë. Këto paralajmërime mund të shërbejnë si sugjerim për atë që mund të përqendrohet gjatë pastrimit të të dhënave.

Përshpejtimi i analizës eksploruese të të dhënave duke përdorur librarinë pandas-profiling
Seksioni i raporteve Overview

Analiza eksploruese e variablave

Pas seksionit Overview në raport, mund të gjenden informacione të dobishme për secilin variabël. Ato përfshijnë, përveç tjerash, diagrame të vogla që përshkruajnë shpërndarjen e secilit variabël.

Përshpejtimi i analizës eksploruese të të dhënave duke përdorur librarinë pandas-profiling
Informacioni në lidhje me variablën numerike Age

Siç mund të shihet nga shembulli paraprak, pandas-profiling na ofron disa tregues të dobishëm, siç janë përqindja dhe numri i vlerave të humbura, si dhe tregues të statistikave përshkruese që kemi parë tashmë. Duke qenë se Age është një variabël numerik, vizualizimi i shpërndarjes së saj në formë histogrami na lejon të nxjerrim përfundimin se kemi të bëjmë me një shpërndarje të të drejtuar në të djathtë.

Kur shqyrtohet një variabël kategorik, treguesit e paraqitur duken paksa ndryshe nga ata që janë gjetur për variablat numerikë.

Përshpejtimi i analizës eksploruese të të dhënave duke përdorur librarinë pandas-profiling
Informacioni mbi variablin kategori Seks

Pra, nĂ« vend tĂ« gjetjes sĂ« mesatares, minimumit dhe maksimumit, biblioteka pandas-profiling gjeti numrin e klasave. Sepse Seks — Ă«shtĂ« njĂ« variabĂ«l binar, vlerat e saj pĂ«rfaqĂ«sohen nga dy klasa.

Nëse ju, ashtu si unë, e doni të eksploroni kodin, mund t'ju interesojë se si biblioteka pandas-profiling llogarit këto tregues. Të mësosh për këtë, duke marrë parasysh se kodi i bibliotekës është i hapur dhe i aksesueshëm në GitHub, nuk është aspak e vështirë. Duke qenë se unë nuk jam një adhurues i madh i përdorimit të 'kutive të zezë' në projektet e mia, unë e shqyrtova kodin burimor të bibliotekës. Për shembull, ja se si duket mekanizmi i përpunimit të variablave numerikë, i paraqitur nga funksioni describe_numeric_1d:

def describe_numeric_1d(series, **kwargs):
    """Llogaritë statistikat përmbledhëse të një variabli numerik (`TYPE_NUM`) (një Seri).
    Po ashtu krijo histograma (mini dhe të plota) të shpërndarjes së tij.
    Parametrat
    ----------
    series : Seri
        Variabli për të cilin do të bëhet përshkrimi.
    Kthen
    -------
    Seri
        Përshkrimi i variablit si një Seri me indeks që janë çelësa statistikash.
    """
    # Formatoni një numër si një përqindje. Për shembull 0.25 do të shndërrohet në 25%.
    _percentile_format = "{:.0%}"
    stats = dict()
    stats['type'] = base.TYPE_NUM
    stats['mean'] = series.mean()
    stats['std'] = series.std()
    stats['variance'] = series.var()
    stats['min'] = series.min()
    stats['max'] = series.max()
    stats['range'] = stats['max'] - stats['min']
    # Për të shmangur llogaritjen e disa herëve
    _series_no_na = series.dropna()
    for percentile in np.array([0.05, 0.25, 0.5, 0.75, 0.95]):
        # Dropna() është një zgjidhje për https://github.com/pydata/pandas/issues/13098
        stats[_percentile_format.format(percentile)] = _series_no_na.quantile(percentile)
    stats['iqr'] = stats['75%'] - stats['25%']
    stats['kurtosis'] = series.kurt()
    stats['skewness'] = series.skew()
    stats['sum'] = series.sum()
    stats['mad'] = series.mad()
    stats['cv'] = stats['std'] / stats['mean'] if stats['mean'] else np.NaN
    stats['n_zeros'] = (len(series) - np.count_nonzero(series))
    stats['p_zeros'] = stats['n_zeros'] * 1.0 / len(series)
    # Histograma
    stats['histogram'] = histogram(series, **kwargs)
    stats['mini_histogram'] = mini_histogram(series, **kwargs)
    return pd.Series(stats, name=series.name)

Edhe pse ky fragment kodi mund të duket mjaft i madh dhe kompleks, në të vërtetë, është shumë e lehtë ta kuptosh. Bëhet fjalë për faktin se në kodin burimor të bibliotekës ka një funksion që përcakton llojet e variablave. Nëse biblioteca has një variabël numëror, funksioni i mësipërm do të gjejë treguesit që kemi shqyrtuar. Ky funksion përdor operacione standarde pandas për të punuar me objekte të tipit Series, të ngjashme me series.mean(). Rezultatet e llogaritjeve ruhen në një fjalor stats. Histogramet formohen duke përdorur versionin e adaptuar të funksionit matplotlib.pyplot.hist. Adaptimi është i orientuar që funksioni të mund të punojë me lloje të ndryshme të grupeve të dhënash.

Treguesit e korrelacionit dhe mostra e të dhënave të shqyrtuara

Pas rezultateve të analizës së variablave, pandas-profiling do të nxjerrë matricat e korrelacionit të Pearson dhe Spearman në seksionin Correlations.

Përshpejtimi i analizës eksploruese të të dhënave duke përdorur librarinë pandas-profiling
Matrica e korrelacionit të Pearson

Nëse është e nevojshme, mund të caktoni parametrat e kufijve në atë rresht kodi që fillon formimin e raportit, të cilat do të përdoren për llogaritjen e korrelacionit. Kështu, mund të tregoni se cilat forca korrelacioni konsiderohen të rëndësishme për analizën tuaj.

Dhe përfundimisht, në raportin pandas-profiling, në seksionin Mostra, del si shembull një fragment të dhënash të marrë nga fillimi i setit të dhënash. Ky qasje mund të çojë në surpriza të pakëndshme, pasi disa vëzhgime të para mund të përfaqësojnë një mostër që nuk pasqyron karakteristikat e gjithë setit të dhënash.

Përshpejtimi i analizës eksploruese të të dhënave duke përdorur librarinë pandas-profiling
Seksioni që përmban një mostër të të dhënave të kërkuara

Si rezultat, unë nuk rekomandoj të kushtoni vëmendje këtij seksioni të fundit. Në vend të kësaj, është më mirë të përdorni komandën df.sample(5), e cila do të zgjedhë rastësisht 5 vëzhgime nga seti i të dhënave.

Përfundimet

Duke përmbledhur atë që u tha më sipër, mund të theksohet se biblioteka pandas-profiling ofron analistëve disa mundësi të dobishme, të cilat do të jenë të dobishme në raste kur është e nevojshme të marresh shpejt një përmbledhje të përgjithshme mbi të dhënat ose të dërgosh dikujt një raport mbi analizën eksploruese të të dhënave. Në të njëjtën kohë, puna reale me të dhënat, që merr parasysh veçoritë e tyre, kryhet, ashtu si pa përdorimin e pandas-profiling, manualisht.

NĂ«se dĂ«shironi tĂ« shihni si duket e gjithĂ« analiza eksploruese e tĂ« dhĂ«nave nĂ« njĂ« Jupyter-notĂ« — shikoni kĂ«tĂ« projekti im, i krijuar me ndihmĂ«n e nbviewer. Dhe nĂ« kĂ«tĂ« repo GitHub mund tĂ« gjeni kodin pĂ«rkatĂ«s.

Të nderuar lexues! Nga ku e filloni analizën e grupeve të reja të të dhënave?

Përshpejtimi i analizës eksploruese të të dhënave duke përdorur librarinë pandas-profiling

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster