L-ewwel pass meta tibda taħdem ma 'sett ta' dejta ġdid huwa li tifhimha. Sabiex tagħmel dan, għandek bżonn, pereżempju, li ssir taf il-firxiet ta 'valuri aċċettati mill-varjabbli, it-tipi tagħhom, u wkoll issir taf dwar in-numru ta' valuri neqsin.
Il-librerija tal-pandas tagħtina ħafna għodod utli biex inwettqu analiżi tad-dejta esploratorja (EDA). Iżda qabel ma tużahom, normalment ikollok bżonn tibda b'funzjonijiet aktar ġenerali bħal df.describe(). Madankollu, għandu jiġi nnutat li l-kapaċitajiet ipprovduti minn funzjonijiet bħal dawn huma limitati, u l-istadji inizjali tal-ħidma ma 'kwalunkwe sett ta' dejta meta titwettaq EDA ħafna drabi huma simili ħafna għal xulxin.
L-awtur tal-materjal li qed nippubblikaw illum jgħid li mhux dilettant li jwettaq azzjonijiet ripetittivi. Bħala riżultat, fit-tfittxija ta 'għodod biex iwettaq malajr u b'mod effiċjenti analiżi tad-dejta esploratorja, huwa sab il-librerija
Hawnhekk se nħarsu lejn il-karatteristiċi tal-użu tal-librerija tal-profil tal-pandas billi tuża s-sett tad-dejta Titanic bħala eżempju.
Analiżi esploratorja tad-dejta bl-użu tal-pandas
Iddeċidejt li nesperimenta bil-profil tal-pandas fuq is-sett tad-dejta Titanic minħabba t-tipi differenti ta 'dejta li fih u l-preżenza ta' valuri neqsin fih. Nemmen li l-librerija tal-pandas-profiling hija speċjalment interessanti f'każijiet fejn id-dejta għadha ma tnaddfitx u teħtieġ aktar ipproċessar skont il-karatteristiċi tagħha. Sabiex twettaq dan l-ipproċessar b'suċċess, trid tkun taf minn fejn tibda u għalxiex tagħti attenzjoni. Dan huwa fejn il-kapaċitajiet ta 'profiling tal-pandas jiġu utli.
L-ewwel, aħna importaw id-dejta u nużaw pandas biex niksbu statistika deskrittiva:
# импорт необходимых пакетов
import pandas as pd
import pandas_profiling
import numpy as np
# импорт данных
df = pd.read_csv('/Users/lukas/Downloads/titanic/train.csv')
# вычисление показателей описательной статистики
df.describe()
Wara li tesegwixxi din il-biċċa kodiċi, int se tikseb dak li jidher fil-figura li ġejja.
Statistika deskrittiva miksuba bl-użu ta 'għodod standard pandas
Għalkemm hawn ħafna informazzjoni utli, ma fihiex dak kollu li jkun interessanti li tkun taf dwar id-dejta taħt studju. Pereżempju, wieħed jista' jassumi li f'qafas tad-dejta, fi struttura DataFrame
, hemm 891 linja. Jekk dan jeħtieġ li jiġi ċċekkjat, allura linja oħra ta 'kodiċi hija meħtieġa biex tiddetermina d-daqs tal-qafas. Filwaqt li dawn il-kalkoli mhumiex partikolarment intensivi fir-riżorsi, ir-repetizzjoni tagħhom il-ħin kollu hija marbuta li ħela ta 'ħin li probabbilment jista' jintefaq aħjar biex jitnaddaf id-dejta.
Analiżi esploratorja tad-dejta bl-użu ta' pandas-profiling
Issa ejja nagħmlu l-istess billi tuża pandas-profiling:
pandas_profiling.ProfileReport(df)
L-eżekuzzjoni tal-linja ta 'kodiċi ta' hawn fuq se tiġġenera rapport b'indikaturi esploratorji ta 'analiżi tad-dejta. Il-kodiċi muri hawn fuq se joħroġ id-dejta misjuba, iżda tista 'tagħmilha toħroġ fajl HTML li tista' turi lil xi ħadd, pereżempju.
L-ewwel parti tar-rapport se jkun fiha taqsima Ħarsa ġenerali, li tagħti informazzjoni bażika dwar id-dejta (numru ta’ osservazzjonijiet, numru ta’ varjabbli, eċċ.). Se jkun fih ukoll lista ta 'twissijiet, li tinnotifika lill-analista dwar affarijiet li għandhom jagħtu attenzjoni speċjali għalihom. Dawn it-twissijiet jistgħu jipprovdu ħjiel dwar fejn tista' tiffoka l-isforzi tiegħek għat-tindif tad-dejta.
Taqsima tar-rapport ħarsa ġenerali
Analiżi Varjabbli Esploratorja
Taħt it-taqsima Ħarsa ġenerali tar-rapport tista’ ssib informazzjoni utli dwar kull varjabbli. Dawn jinkludu, fost affarijiet oħra, mapep żgħar li jiddeskrivu d-distribuzzjoni ta 'kull varjabbli.
Dwar il-Varjabbli Numeriku tal-Età
Kif tistgħu taraw mill-eżempju preċedenti, pandas-profiling jagħtina diversi indikaturi utli, bħall-persentaġġ u n-numru ta 'valuri neqsin, kif ukoll il-miżuri tal-istatistika deskrittiva li diġà rajna. Għax Age
hija varjabbli numeriku, il-viżwalizzazzjoni tad-distribuzzjoni tagħha fil-forma ta 'istogramma tippermettilna nikkonkludu li għandna distribuzzjoni distorta lejn il-lemin.
Meta titqies varjabbli kategorika, ir-riżultati tal-output huma kemmxejn differenti minn dawk misjuba għal varjabbli numeriku.
Dwar il-varjabbli kategoriku Sess
Jiġifieri, minflok sabet il-medja, il-minimu u l-massimu, il-librerija tal-profil tal-pandas sabet in-numru ta 'klassijiet. Għax Sex
— varjabbli binarja, il-valuri tagħha huma rappreżentati minn żewġ klassijiet.
Jekk tixtieq teżamina l-kodiċi bħal jien, tista 'tkun interessat dwar kif eżattament il-librerija tal-profil tal-pandas tikkalkula dawn il-metriċi. Li ssir taf dwar dan, peress li l-kodiċi tal-librerija huwa miftuħ u disponibbli fuq GitHub, mhuwiex daqshekk diffiċli. Peress li jien m'iniex fan kbir li nuża kaxxi suwed fil-proġetti tiegħi, tajt ħarsa lejn il-kodiċi tas-sors tal-librerija. Pereżempju, dan huwa kif jidher il-mekkaniżmu għall-ipproċessar tal-varjabbli numeriċi, rappreżentat mill-funzjoni
def describe_numeric_1d(series, **kwargs):
"""Compute summary statistics of a numerical (`TYPE_NUM`) variable (a Series).
Also create histograms (mini an full) of its distribution.
Parameters
----------
series : Series
The variable to describe.
Returns
-------
Series
The description of the variable as a Series with index being stats keys.
"""
# Format a number as a percentage. For example 0.25 will be turned to 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']
# To avoid to compute it several times
_series_no_na = series.dropna()
for percentile in np.array([0.05, 0.25, 0.5, 0.75, 0.95]):
# The dropna() is a workaround for 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)
# Histograms
stats['histogram'] = histogram(series, **kwargs)
stats['mini_histogram'] = mini_histogram(series, **kwargs)
return pd.Series(stats, name=series.name)
Għalkemm din il-biċċa ta 'kodiċi tista' tidher pjuttost kbira u kumplessa, fil-fatt hija sempliċi ħafna biex tinftiehem. Il-punt huwa li fil-kodiċi tas-sors tal-librerija hemm funzjoni li tiddetermina t-tipi ta 'varjabbli. Jekk jirriżulta li l-librerija ltaqgħet ma 'varjabbli numeriku, il-funzjoni ta' hawn fuq issib il-metriċi li konna nħarsu lejhom. Din il-funzjoni tuża operazzjonijiet standard tal-pandas biex taħdem ma 'oġġetti tat-tip Series
, bħal series.mean()
. Ir-riżultati tal-kalkolu huma maħżuna f'dizzjunarju stats
. L-istogrammi huma ġġenerati bl-użu ta' verżjoni adattata tal-funzjoni matplotlib.pyplot.hist
. L-adattament huwa mmirat biex jiżgura li l-funzjoni tista 'taħdem ma' tipi differenti ta 'settijiet ta' dejta.
Indikaturi ta' korrelazzjoni u data tal-kampjuni studjati
Wara r-riżultati tal-analiżi tal-varjabbli, pandas-profiling, fit-taqsima Korrelazzjonijiet, se juri l-matriċi ta 'korrelazzjoni Pearson u Spearman.
Matriċi ta' korrelazzjoni ta' Pearson
Jekk meħtieġ, tista ', fil-linja ta' kodiċi li tixpruna l-ġenerazzjoni tar-rapport, tissettja l-indikaturi tal-valuri tal-limitu użati meta tikkalkula l-korrelazzjoni. Billi tagħmel dan, tista 'tispeċifika liema saħħa ta' korrelazzjoni hija kkunsidrata importanti għall-analiżi tiegħek.
Fl-aħħarnett, ir-rapport tal-pandas-profiling, fit-taqsima tal-Kampjun, juri, bħala eżempju, biċċa dejta meħuda mill-bidu tas-sett tad-dejta. Dan l-approċċ jista' jwassal għal sorpriżi mhux pjaċevoli, peress li l-ewwel ftit osservazzjonijiet jistgħu jirrappreżentaw kampjun li ma jirriflettix il-karatteristiċi tas-sett kollu tad-dejta.
Taqsima li fiha kampjun ta' data taħt studju
Bħala riżultat, ma nirrakkomandax li tagħti attenzjoni għal din l-aħħar taqsima. Minflok, huwa aħjar li tuża l-kmand df.sample(5)
, li se tagħżel b'mod każwali 5 osservazzjonijiet mis-sett tad-dejta.
Riżultati ta '
Fil-qosor, il-librerija tal-profili tal-pandas tagħti lill-analista xi kapaċitajiet utli li jkunu utli f'każijiet fejn ikollok bżonn malajr tieħu idea approssimattiva tad-dejta jew tgħaddi rapport ta 'analiżi ta' intelliġenza lil xi ħadd. Fl-istess ħin, ix-xogħol reali bid-dejta, b'kont meħud tal-karatteristiċi tagħha, jitwettaq, bħal mingħajr ma tuża pandas-profiling, manwalment.
Jekk trid tagħti ħarsa lejn kif tidher l-analiżi kollha tad-dejta tal-intelliġenza f'notebook Jupyter wieħed, agħti ħarsa lejn
Għeżież qarrejja! Fejn tibda tanalizza settijiet ta' data ġodda?
Sors: www.habr.com