Pagpadali sa pagsusi sa datos sa eksplorasyon gamit ang pandas-profiling library

Ang una nga lakang sa pagsugod sa pagtrabaho sa usa ka bag-ong set sa datos mao ang pagsabut niini. Aron mahimo kini, kinahanglan nimo, pananglitan, aron mahibal-an ang mga han-ay sa mga kantidad nga gidawat sa mga variable, ang ilang mga tipo, ug mahibal-an usab ang bahin sa gidaghanon sa nawala nga mga kantidad.

Ang librarya sa pandas naghatag kanato og daghang mapuslanong mga himan alang sa pagpahigayon sa eksploratory data analysis (EDA). Apan sa dili pa nimo gamiton kini, kasagaran kinahanglan nimo nga magsugod sa mas kinatibuk-ang mga gimbuhaton sama sa df.describe(). Bisan pa, kinahanglan nga matikdan nga ang mga kapabilidad nga gihatag sa ingon nga mga gimbuhaton limitado, ug ang mga inisyal nga yugto sa pagtrabaho sa bisan unsang mga set sa datos kung ang pagbuhat sa EDA kanunay nga parehas sa usag usa.

Pagpadali sa pagsusi sa datos sa eksplorasyon gamit ang pandas-profiling library

Ang tagsulat sa materyal nga atong gipatik karon nag-ingon nga siya dili usa ka fan sa pagbuhat sa balik-balik nga mga aksyon. Ingon usa ka sangputanan, sa pagpangita sa mga himan aron dali ug episyente nga himuon ang pagtuki sa datos sa eksplorasyon, nakit-an niya ang librarya pandas-profiling. Ang mga resulta sa iyang trabaho gipahayag dili sa porma sa pipila ka indibidwal nga mga timailhan, apan sa porma sa usa ka patas nga detalyado nga HTML report nga naglangkob sa kadaghanan sa mga impormasyon mahitungod sa analisar data nga kamo kinahanglan nga mahibalo sa dili pa magsugod sa pagtrabaho nga mas suod uban niini.

Dinhi atong tan-awon ang mga bahin sa paggamit sa pandas-profiling library gamit ang Titanic dataset isip pananglitan.

Exploratory data analysis gamit ang mga panda

Nakahukom ko nga mag-eksperimento sa pandas-profiling sa Titanic dataset tungod sa lain-laing matang sa datos nga anaa niini ug ang presensya sa nawala nga mga bili niini. Nagtuo ko nga ang librarya nga nagprofile sa pandas labi ka makapaikag sa mga kaso diin ang datos wala pa malimpyohan ug nanginahanglan dugang nga pagproseso depende sa mga kinaiya niini. Aron malampuson nga mahimo ang ingon nga pagproseso, kinahanglan nimo mahibal-an kung asa magsugod ug kung unsa ang hatagan pagtagad. Dinhi diin magamit ang mga kapabilidad sa pag-profile sa panda.

Una, gi-import namon ang datos ug gigamit ang mga pandas aron makakuha mga deskriptibo nga istatistika:

# ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²
import pandas as pd
import pandas_profiling
import numpy as np

# ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…
df = pd.read_csv('/Users/lukas/Downloads/titanic/train.csv')

# вычислСниС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ статистики
df.describe()

Human sa pagpatuman niini nga piraso sa code, imong makuha ang gipakita sa mosunod nga numero.

Pagpadali sa pagsusi sa datos sa eksplorasyon gamit ang pandas-profiling library
Deskriptibo nga estadistika nga nakuha gamit ang standard nga mga tool sa pandas

Bisan kung adunay daghang mapuslanon nga kasayuran dinhi, wala kini naglangkob sa tanan nga makapaikag nga mahibal-an bahin sa datos nga gitun-an. Pananglitan, ang usa mahimong maghunahuna nga sa usa ka data frame, sa usa ka istruktura DataFrame, adunay 891 ka linya. Kung kini kinahanglan nga susihon, unya lain nga linya sa code ang gikinahanglan aron mahibal-an ang gidak-on sa frame. Bisan kung kini nga mga kalkulasyon dili labi ka kusog sa kapanguhaan, ang pagsubli niini sa tanan nga oras kinahanglan nga mag-usik sa oras nga mahimo’g mas maayo nga gigugol sa paglimpyo sa datos.

Exploratory data analysis gamit ang pandas-profiling

Karon atong buhaton ang parehas gamit ang pandas-profiling:

pandas_profiling.ProfileReport(df)

Ang pagpatuman sa linya sa code sa ibabaw makamugna og usa ka taho nga adunay mga timailhan sa pagtuki sa datos sa eksplorasyon. Ang code nga gipakita sa ibabaw magpagawas sa datos nga nakit-an, apan mahimo nimo kini nga output sa usa ka HTML file nga mahimo nimong ipakita sa usa ka tawo, pananglitan.

Ang una nga bahin sa taho adunay sulud nga seksyon sa Kinatibuk-ang Pagtan-aw, nga naghatag sukaranan nga kasayuran bahin sa datos (gidaghanon sa mga obserbasyon, gidaghanon sa mga variable, ug uban pa). Naglangkob usab kini usa ka lista sa mga alerto, nga nagpahibalo sa analista sa mga butang nga hatagan espesyal nga pagtagad. Kini nga mga alerto makahatag mga timailhan kung asa nimo mapunting ang imong mga paningkamot sa paglimpyo sa datos.

Pagpadali sa pagsusi sa datos sa eksplorasyon gamit ang pandas-profiling library
Kinatibuk-ang pagtan-aw nga seksyon sa taho

Pagtuki sa Variable sa Eksploratory

Ubos sa Overview nga seksyon sa report makit-an nimo ang mapuslanon nga kasayuran bahin sa matag variable. Naglakip kini, taliwala sa ubang mga butang, gagmay nga mga tsart nga naghulagway sa pag-apod-apod sa matag variable.

Pagpadali sa pagsusi sa datos sa eksplorasyon gamit ang pandas-profiling library
Mahitungod sa Age Numeric Variable

Sama sa imong makita gikan sa miaging pananglitan, ang pandas-profiling naghatag kanamo daghang mapuslanon nga mga indikasyon, sama sa porsyento ug gidaghanon sa nawala nga mga kantidad, ingon man ang mga sukod sa deskriptibo nga istatistika nga nakita na namon. Kay Age mao ang usa ka numerical variable, visualization sa iyang apod-apod sa porma sa usa ka histogram nagtugot kanato sa paghinapos nga kita adunay usa ka apod-apod skewed sa tuo.

Kung gikonsiderar ang usa ka categorical variable, ang mga resulta sa output gamay nga lahi sa nakit-an alang sa usa ka variable nga numero.

Pagpadali sa pagsusi sa datos sa eksplorasyon gamit ang pandas-profiling library
Mahitungod sa Sex categorical variable

Sa ato pa, imbes nga makit-an ang average, minimum ug maximum, nakit-an sa pandas-profiling library ang gidaghanon sa mga klase. Kay Sex - usa ka binary variable, ang mga kantidad niini girepresentahan sa duha ka klase.

Kung gusto nimo nga susihon ang code sama sa akong gibuhat, tingali interesado ka kung giunsa ang pagkalkula sa librarya sa profile sa pandas niini nga mga sukatan. Ang pagpangita bahin niini, tungod kay ang code sa librarya bukas ug magamit sa GitHub, dili kaayo lisud. Tungod kay dili ako usa ka dako nga fan sa paggamit sa mga itom nga kahon sa akong mga proyekto, akong gitan-aw ang source code sa librarya. Pananglitan, kini ang hitsura sa mekanismo sa pagproseso sa mga variable nga numero, nga girepresentahan sa function describe_numeric_1d:

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)

Bisan kung kini nga piraso sa code ingon og dako ug komplikado, kini sa tinuud yano kaayo nga sabton. Ang punto mao nga sa source code sa librarya adunay usa ka function nga nagtino sa mga matang sa mga baryable. Kung nahibal-an nga ang librarya nakasugat sa usa ka variable nga numero, ang function sa ibabaw makit-an ang mga sukatan nga among gitan-aw. Kini nga function naggamit sa standard nga mga operasyon sa pandas alang sa pagtrabaho sa mga butang nga lahi Series, sama sa series.mean(). Ang mga resulta sa kalkulasyon gitipigan sa usa ka diksyonaryo stats. Ang mga histogram gihimo gamit ang gipahiangay nga bersyon sa function matplotlib.pyplot.hist. Ang pagpahiangay gitumong sa pagsiguro nga ang function mahimo’g molihok sa lainlaing mga lahi sa mga set sa datos.

Gitun-an ang mga indikasyon sa correlation ug sample data

Pagkahuman sa mga resulta sa pag-analisar sa mga variable, ang pandas-profiling, sa seksyon sa Correlations, magpakita sa Pearson ug Spearman correlation matrices.

Pagpadali sa pagsusi sa datos sa eksplorasyon gamit ang pandas-profiling library
Pearson correlation matrix

Kung gikinahanglan, mahimo nimo, sa linya sa code nga nagpalihok sa henerasyon sa report, ibutang ang mga timailhan sa mga kantidad sa threshold nga gigamit sa pagkalkula sa correlation. Pinaagi sa pagbuhat niini, mahimo nimong mahibal-an kung unsang kusog sa correlation ang giisip nga hinungdanon alang sa imong pag-analisar.

Sa katapusan, ang pandas-profiling report, sa Sample section, nagpakita, isip usa ka pananglitan, usa ka piraso sa datos nga gikuha gikan sa sinugdanan sa data set. Kini nga pamaagi mahimong mosangpot sa dili maayo nga mga sorpresa, tungod kay ang unang pipila ka mga obserbasyon mahimong magrepresentar sa usa ka sample nga wala magpakita sa mga kinaiya sa tibuok data set.

Pagpadali sa pagsusi sa datos sa eksplorasyon gamit ang pandas-profiling library
Seksyon nga adunay sampol nga datos nga gitun-an

Ingon usa ka sangputanan, dili nako girekomenda nga hatagan pagtagad ang katapusan nga seksyon. Hinuon, mas maayo nga gamiton ang sugo df.sample(5), nga random nga mopili sa 5 ka obserbasyon gikan sa data set.

Mga resulta

Sa pag-summarize, ang pandas-profiling library naghatag sa analista sa pipila ka mapuslanon nga kapabilidad nga magamit sa mga kaso diin kinahanglan nimo nga dali nga makakuha usa ka dili maayo nga ideya sa datos o ipasa ang usa ka taho sa pagtuki sa paniktik sa usa ka tawo. Sa parehas nga oras, ang tinuud nga pagtrabaho sa datos, nga gikonsiderar ang mga bahin niini, gihimo, nga wala gigamit ang pandas-profiling, nga mano-mano.

Kung gusto nimo tan-awon kung unsa ang hitsura sa tanan nga pagtuki sa datos sa paniktik sa usa ka notebook sa Jupyter, tan-awa kini ang akong proyekto gihimo gamit ang nbviewer. Ug sa kini Makita nimo ang katugbang nga code sa mga repositoryo sa GitHub.

Minahal nga magbabasa! Asa ka magsugod sa pag-analisar sa bag-ong mga set sa datos?

Pagpadali sa pagsusi sa datos sa eksplorasyon gamit ang pandas-profiling library

Source: www.habr.com

Idugang sa usa ka comment