Nyepetake analisis data eksplorasi nggunakake perpustakaan pandas-profiling

Langkah pisanan nalika miwiti nggarap set data anyar yaiku mangertos. Kanggo nindakake iki, sampeyan kudu, umpamane, kanggo ngerteni kisaran nilai sing ditampa dening variabel, jinise, lan uga ngerteni jumlah nilai sing ilang.

Pustaka pandas nyedhiyakake akeh alat sing migunani kanggo nindakake analisis data eksplorasi (EDA). Nanging sadurunge sampeyan nggunakake, sampeyan biasane kudu miwiti karo fungsi liyane umum kayata df.describe (). Nanging, kudu dicathet menawa kemampuan sing diwenehake dening fungsi kasebut diwatesi, lan tahap awal nggarap set data nalika nindakake EDA asring banget padha karo saben liyane.

Nyepetake analisis data eksplorasi nggunakake perpustakaan pandas-profiling

Penulis materi sing diterbitake saiki ujar manawa dheweke ora seneng nindakake tumindak sing bola-bali. AkibatΓ©, kanggo nggoleki alat kanggo nindakake analisis data eksplorasi kanthi cepet lan efisien, dheweke nemokake perpustakaan panda-profiling. Asil karya kasebut ora dituduhake ing wangun indikator individu tartamtu, nanging ing wangun laporan HTML sing cukup rinci sing ngemot sebagian besar informasi babagan data sing dianalisis sing bisa uga sampeyan kudu ngerti sadurunge miwiti nggarap kanthi luwih rapet.

Ing kene kita bakal ndeleng fitur nggunakake perpustakaan profil pandas nggunakake dataset Titanic minangka conto.

Analisis data eksplorasi nggunakake panda

Aku mutusake kanggo eksprimen karo profiling panda ing dataset Titanic amarga macem-macem jinis data sing ana lan ora ana nilai sing ilang. Aku pracaya perpustakaan pandas-profiling utamanΓ© menarik ing kasus ngendi data durung di resiki lan mbutuhake Processing luwih gumantung karakteristik sawijining. Supaya bisa nindakake proses kasebut kanthi sukses, sampeyan kudu ngerti ngendi arep miwiti lan apa sing kudu digatekake. Iki ngendi kapabilitas panda-profiling migunani.

Pisanan, kita ngimpor data lan nggunakake panda kanggo entuk statistik deskriptif:

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

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

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

Sawise nglakokake potongan kode iki, sampeyan bakal entuk apa sing ditampilake ing gambar ing ngisor iki.

Nyepetake analisis data eksplorasi nggunakake perpustakaan pandas-profiling
Statistik deskriptif dijupuk nggunakake alat panda standar

Sanajan ana akeh informasi sing migunani ing kene, nanging ora ngemot kabeh sing menarik kanggo ngerti babagan data sing diteliti. Contone, siji bisa nganggep yen ing pigura data, ing struktur DataFrame, ana 891 larik. Yen perlu dipriksa, banjur baris kode liyane dibutuhake kanggo nemtokake ukuran pigura. Nalika petungan iki ora utamanΓ© sumber-intensif, mbaleni mau kabeh wektu bound kanggo mbuang wektu sing bisa uga luwih apik digunakake kanggo ngresiki data.

Analisis data eksplorasi nggunakake pandas-profiling

Saiki ayo padha nglakoni kanthi nggunakake pandas-profiling:

pandas_profiling.ProfileReport(df)

Nglakokake baris kode ing ndhuwur bakal ngasilake laporan kanthi indikator analisis data eksplorasi. Kode sing ditampilake ing ndhuwur bakal ngasilake data sing ditemokake, nanging sampeyan bisa nggawe file HTML sing bisa dituduhake menyang wong liya, contone.

Bagian pisanan saka laporan bakal ngemot bagean Ringkesan, menehi informasi dhasar babagan data (jumlah pengamatan, jumlah variabel, lsp.). Uga bakal ngemot dhaptar tandha, menehi kabar marang analis babagan apa sing kudu digatekake. Tandha iki bisa menehi pitunjuk babagan ngendi sampeyan bisa fokus upaya ngresiki data.

Nyepetake analisis data eksplorasi nggunakake perpustakaan pandas-profiling
bagean laporan Ringkesan

Analisis Variabel Eksplorasi

Ing ngisor bagean Ringkesan laporan sampeyan bisa nemokake informasi migunani babagan saben variabel. Iki kalebu, ing antarane, grafik cilik sing nggambarake distribusi saben variabel.

Nyepetake analisis data eksplorasi nggunakake perpustakaan pandas-profiling
Babagan Variabel Numerik Umur

Kaya sing sampeyan ngerteni saka conto sadurunge, profil panda menehi sawetara indikator sing migunani, kayata persentase lan jumlah nilai sing ilang, uga ukuran statistik deskriptif sing wis kita deleng. Amarga Age minangka variabel numerik, visualisasi distribusi ing wangun histogram ngidini kita nyimpulake yen kita duwe distribusi miring ing sisih tengen.

Nalika nimbang variabel kategori, asil output rada beda karo sing ditemokake kanggo variabel numerik.

Nyepetake analisis data eksplorasi nggunakake perpustakaan pandas-profiling
Babagan variabel kategoris jinis

Yaiku, tinimbang nemokake rata-rata, minimal lan maksimal, perpustakaan profil panda nemokake jumlah kelas. Amarga Sex - variabel binar, nilai-nilai kasebut diwakili dening rong kelas.

Yen sampeyan seneng mriksa kode kaya aku, sampeyan bisa uga kepengin weruh kepiye perpustakaan profil pandas ngetung metrik kasebut. Nggoleki babagan iki, amarga kode perpustakaan mbukak lan kasedhiya ing GitHub, ora angel banget. Awit aku ora penggemar amba nggunakake kothak ireng ing projects, Aku njupuk dipikir ing kode sumber perpustakaan. Contone, iki minangka mekanisme kanggo ngolah variabel numerik, diwakili dening fungsi kasebut 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)

Senajan iki Piece saka kode bisa katon cukup gedhe lan Komplek, iku bener banget prasaja kanggo ngerti. Intine yaiku ing kode sumber perpustakaan ana fungsi sing nemtokake jinis variabel. Yen ternyata perpustakaan wis nemoni variabel numerik, fungsi ing ndhuwur bakal nemokake metrik sing kita deleng. Fungsi iki nggunakake operasi panda standar kanggo nggarap obyek saka jinis Series, kaya series.mean(). Asil pitungan disimpen ing kamus stats. Histograms digawe nggunakake versi adaptasi saka fungsi matplotlib.pyplot.hist. Adaptasi ditujokake kanggo mesthekake yen fungsi kasebut bisa digunakake karo macem-macem jinis set data.

Indikator korelasi lan data sampel sing ditliti

Sawise asil analisis variabel, pandas-profiling, ing bagean Korelasi, bakal nampilake matriks korelasi Pearson lan Spearman.

Nyepetake analisis data eksplorasi nggunakake perpustakaan pandas-profiling
Matriks korelasi Pearson

Yen perlu, sampeyan bisa, ing baris kode sing micu generasi laporan, nyetel pratondho saka nilai ambang digunakake nalika ngetung korΓ©lasi. Kanthi nindakake iki, sampeyan bisa nemtokake kekuwatan korΓ©lasi sing dianggep penting kanggo analisis sampeyan.

Pungkasan, laporan profil pandas, ing bagean Sampel, nampilake, minangka conto, potongan data sing dijupuk saka wiwitan set data. Pendekatan iki bisa nyebabake kejutan sing ora nyenengake, amarga sawetara pengamatan pisanan bisa makili sampel sing ora nggambarake karakteristik kabeh set data.

Nyepetake analisis data eksplorasi nggunakake perpustakaan pandas-profiling
Bagean ngemot data sampel sing diteliti

AkibatΓ©, aku ora nyaranake nggatekake bagean pungkasan iki. Nanging, iku luwih apik kanggo nggunakake printah df.sample(5), sing bakal milih kanthi acak 5 pengamatan saka kumpulan data.

Hasil

Kanggo ngringkes, perpustakaan pandas-profiling menehi analis sawetara kapabilitas migunani sing bakal migunani ing kasus sing sampeyan kudu cepet-cepet entuk ide kasar babagan data utawa ngirim laporan analisis intelijen menyang wong liya. Ing wektu sing padha, karya nyata karo data, njupuk menyang akun fitur, dileksanakake, minangka tanpa nggunakake pandas-profiling, kanthi manual.

Yen sampeyan pengin ndeleng apa kabeh analisis data intelijen ing siji notebook Jupyter, delengen iki proyekku digawe nggunakake nbviewer. Lan ing iki Sampeyan bisa nemokake kode sing cocog ing repositori GitHub.

Para pamaca ingkang kinurmatan! Ngendi sampeyan miwiti nganalisa set data anyar?

Nyepetake analisis data eksplorasi nggunakake perpustakaan pandas-profiling

Source: www.habr.com

Add a comment