Kuharakisha uchambuzi wa data ya uchunguzi kwa kutumia maktaba ya wasifu wa panda

Hatua ya kwanza unapoanza kufanya kazi na seti mpya ya data ni kuielewa. Ili kufanya hivyo, unahitaji, kwa mfano, kujua safu za maadili zinazokubaliwa na anuwai, aina zao, na pia kujua juu ya idadi ya maadili yanayokosekana.

Maktaba ya pandas hutupatia zana nyingi muhimu za kufanya uchanganuzi wa data ya uchunguzi (EDA). Lakini kabla ya kuzitumia, kwa kawaida unahitaji kuanza na vitendaji vya jumla zaidi kama vile df.describe(). Hata hivyo, ni lazima ieleweke kwamba uwezo unaotolewa na kazi hizo ni mdogo, na hatua za awali za kufanya kazi na seti yoyote ya data wakati wa kufanya EDA ni mara nyingi sana sawa kwa kila mmoja.

Kuharakisha uchambuzi wa data ya uchunguzi kwa kutumia maktaba ya wasifu wa panda

Mwandishi wa nyenzo tunazochapisha leo anasema kwamba yeye si shabiki wa kufanya vitendo vya kurudia. Matokeo yake, katika kutafuta zana za kufanya haraka na kwa ufanisi uchambuzi wa data ya uchunguzi, alipata maktaba pandas-profiling. Matokeo ya kazi yake hayaonyeshwa kwa njia ya viashiria fulani vya mtu binafsi, lakini katika mfumo wa ripoti ya kina ya HTML iliyo na habari nyingi juu ya data iliyochambuliwa ambayo unaweza kuhitaji kujua kabla ya kuanza kufanya kazi nayo kwa karibu zaidi.

Hapa tutaangalia vipengele vya kutumia maktaba ya wasifu wa panda kwa kutumia hifadhidata ya Titanic kama mfano.

Uchambuzi wa data ya uchunguzi kwa kutumia panda

Niliamua kujaribu kuorodhesha wasifu wa panda kwenye hifadhidata ya Titanic kwa sababu ya aina tofauti za data iliyo nayo na uwepo wa maadili yanayokosekana ndani yake. Ninaamini kuwa maktaba ya wasifu wa pandas inavutia sana katika hali ambapo data bado haijasafishwa na inahitaji usindikaji zaidi kulingana na sifa zake. Ili kufanya usindikaji huo kwa mafanikio, unahitaji kujua wapi kuanza na nini cha kuzingatia. Hapa ndipo uwezo wa kuorodhesha wa pandas huja kwa manufaa.

Kwanza, tunaingiza data na kutumia panda kupata takwimu za maelezo:

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

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

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

Baada ya kutekeleza kipande hiki cha msimbo, utapata kile kinachoonyeshwa kwenye takwimu ifuatayo.

Kuharakisha uchambuzi wa data ya uchunguzi kwa kutumia maktaba ya wasifu wa panda
Takwimu za maelezo zilizopatikana kwa kutumia zana za kawaida za panda

Ingawa kuna taarifa nyingi muhimu hapa, haina kila kitu ambacho kingependeza kujua kuhusu data inayotafitiwa. Kwa mfano, mtu anaweza kudhani kuwa katika sura ya data, katika muundo DataFrame, kuna mistari 891. Ikiwa hii inahitaji kuchunguzwa, basi mstari mwingine wa kanuni unahitajika ili kuamua ukubwa wa sura. Ingawa hesabu hizi hazihitaji rasilimali nyingi, kuzirudia wakati wote ni lazima kupoteza wakati ambao unaweza kutumika vyema kusafisha data.

Uchambuzi wa data ya uchunguzi kwa kutumia pandas-profiling

Sasa tufanye vivyo hivyo kwa kutumia pandas-profiling:

pandas_profiling.ProfileReport(df)

Utekelezaji wa mstari wa juu wa kanuni utazalisha ripoti yenye viashirio vya uchambuzi wa data. Nambari iliyoonyeshwa hapo juu itatoa data iliyopatikana, lakini unaweza kuifanya kutoa faili ya HTML ambayo unaweza kumwonyesha mtu, kwa mfano.

Sehemu ya kwanza ya ripoti itakuwa na sehemu ya Muhtasari, ikitoa maelezo ya msingi kuhusu data (idadi ya uchunguzi, idadi ya vigeu, n.k.). Pia itakuwa na orodha ya arifa, ikimjulisha mchambuzi wa mambo ya kulipa kipaumbele maalum. Arifa hizi zinaweza kutoa vidokezo kuhusu ni wapi unaweza kuelekeza juhudi zako za kusafisha data.

Kuharakisha uchambuzi wa data ya uchunguzi kwa kutumia maktaba ya wasifu wa panda
Sehemu ya ripoti ya muhtasari

Uchambuzi wa Vigezo vya Uchunguzi

Chini ya sehemu ya Muhtasari wa ripoti unaweza kupata taarifa muhimu kuhusu kila kigezo. Wao ni pamoja na, kati ya mambo mengine, chati ndogo zinazoelezea usambazaji wa kila kutofautiana.

Kuharakisha uchambuzi wa data ya uchunguzi kwa kutumia maktaba ya wasifu wa panda
Kuhusu Kigezo cha Nambari cha Umri

Kama unavyoona kutoka kwa mfano uliopita, uwekaji wasifu wa panda hutupa viashirio kadhaa muhimu, kama vile asilimia na idadi ya thamani zinazokosekana, pamoja na hatua za takwimu za maelezo ambazo tayari tumeona. Kwa sababu Age ni kigezo cha nambari, taswira ya usambazaji wake katika mfumo wa histogram huturuhusu kuhitimisha kuwa tuna usambazaji ulioelekezwa kulia.

Wakati wa kuzingatia utofauti wa kategoria, matokeo ya matokeo ni tofauti kidogo na yale yanayopatikana kwa utofauti wa nambari.

Kuharakisha uchambuzi wa data ya uchunguzi kwa kutumia maktaba ya wasifu wa panda
Kuhusu tofauti ya kategoria ya Jinsia

Yaani, badala ya kupata wastani, kiwango cha chini na cha juu zaidi, maktaba ya wasifu wa panda ilipata idadi ya madarasa. Kwa sababu Sex - tofauti ya binary, maadili yake yanawakilishwa na madarasa mawili.

Ikiwa ungependa kuchunguza msimbo kama mimi, unaweza kupendezwa na jinsi maktaba ya wasifu wa pandas inavyokokotoa vipimo hivi. Kujua juu ya hili, kwa kuzingatia kwamba nambari ya maktaba imefunguliwa na inapatikana kwenye GitHub, sio ngumu sana. Kwa kuwa mimi sio shabiki mkubwa wa kutumia sanduku nyeusi kwenye miradi yangu, niliangalia nambari ya chanzo ya maktaba. Kwa mfano, hivi ndivyo utaratibu wa usindikaji wa vigezo vya nambari unavyoonekana, unaowakilishwa na kazi eleza_nambari_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)

Ingawa kipande hiki cha msimbo kinaweza kuonekana kuwa kikubwa na ngumu, kwa kweli ni rahisi sana kuelewa. Jambo ni kwamba katika msimbo wa chanzo wa maktaba kuna kazi ambayo huamua aina za vigezo. Iwapo itabainika kuwa maktaba imekumbana na mabadiliko ya nambari, chaguo la kukokotoa hapo juu litapata vipimo tulivyokuwa tukiangalia. Chaguo hili la kukokotoa hutumia shughuli za kawaida za panda kufanya kazi na vitu vya aina Series, kama series.mean(). Matokeo ya hesabu huhifadhiwa kwenye kamusi stats. Histograms huzalishwa kwa kutumia toleo lililobadilishwa la kazi matplotlib.pyplot.hist. Urekebishaji unalenga kuhakikisha kuwa chaguo la kukokotoa linaweza kufanya kazi na aina tofauti za seti za data.

Viashiria vya uwiano na data ya sampuli iliyosomwa

Baada ya matokeo ya uchambuzi wa vigezo, pandas-profiling, katika sehemu ya Mahusiano, itaonyesha matrices ya uwiano wa Pearson na Spearman.

Kuharakisha uchambuzi wa data ya uchunguzi kwa kutumia maktaba ya wasifu wa panda
Matrix ya uunganisho wa Pearson

Ikiwa ni lazima, unaweza, katika mstari wa msimbo unaosababisha utoaji wa ripoti, kuweka viashiria vya maadili ya kizingiti yanayotumiwa wakati wa kuhesabu uwiano. Kwa kufanya hivyo, unaweza kutaja ni nguvu gani ya uunganisho inachukuliwa kuwa muhimu kwa uchambuzi wako.

Hatimaye, ripoti ya maelezo ya panda, katika sehemu ya Sampuli, inaonyesha, kama mfano, kipande cha data kilichochukuliwa tangu mwanzo wa seti ya data. Mbinu hii inaweza kusababisha mshangao usio na furaha, kwa kuwa uchunguzi wa kwanza unaweza kuwakilisha sampuli isiyoonyesha sifa za seti nzima ya data.

Kuharakisha uchambuzi wa data ya uchunguzi kwa kutumia maktaba ya wasifu wa panda
Sehemu iliyo na sampuli ya data inayochunguzwa

Matokeo yake, siipendekeza kulipa kipaumbele kwa sehemu hii ya mwisho. Badala yake, ni bora kutumia amri df.sample(5), ambayo itachagua uchunguzi 5 kwa nasibu kutoka kwa seti ya data.

Matokeo ya

Kwa muhtasari, maktaba ya wasifu wa pandas humpa mchambuzi uwezo fulani muhimu ambao utakuja katika hali ambapo unahitaji kupata wazo mbaya la data haraka au kupitisha ripoti ya uchambuzi wa akili kwa mtu. Wakati huo huo, kazi halisi na data, kwa kuzingatia vipengele vyake, inafanywa, kama bila kutumia pandas-profiling, manually.

Ikiwa unataka kuangalia jinsi uchambuzi wote wa data ya akili unavyoonekana kwenye daftari moja la Jupyter, angalia hii mradi wangu uliundwa kwa kutumia nbviewer. Na katika hii Unaweza kupata nambari inayolingana katika hazina za GitHub.

Ndugu wasomaji! Unaanza wapi kuchambua seti mpya za data?

Kuharakisha uchambuzi wa data ya uchunguzi kwa kutumia maktaba ya wasifu wa panda

Chanzo: mapenzi.com

Kuongeza maoni