Ngagancangkeun analisis data éksplorasi ngagunakeun perpustakaan pandas-profiling

Léngkah munggaran nalika ngamimitian damel sareng set data énggal nyaéta ngartos éta. Jang ngalampahkeun ieu, anjeun kudu, contona, pikeun manggihan rentang nilai ditarima ku variabel, jenis maranéhanana, sarta ogé manggihan ngeunaan jumlah nilai leungit.

Perpustakaan pandas nyayogikeun seueur alat anu mangpaat pikeun ngalaksanakeun analisis data éksplorasi (EDA). Tapi saencan Anjeun nganggo aranjeunna, Anjeun biasana kudu mimitian ku fungsi leuwih umum kayaning df.describe (). Nanging, éta kedah diperhatoskeun yén kamampuan anu disayogikeun ku fungsi sapertos kitu terbatas, sareng tahap awal damel sareng set data nalika ngalaksanakeun EDA sering pisan sami sareng anu sanés.

Ngagancangkeun analisis data éksplorasi ngagunakeun perpustakaan pandas-profiling

Panulis bahan anu kami terbitkeun ayeuna nyarios yén anjeunna henteu resep ngalakukeun tindakan anu berulang. Hasilna, dina pilarian sahiji parabot pikeun gancang jeung éfisién ngalakukeun analisis data éksplorasi, anjeunna kapanggih perpustakaan pandas-profiling. Hasil karyana dinyatakeun sanes dina bentuk indikator individu anu tangtu, tapi dina bentuk laporan HTML anu cukup lengkep anu ngandung seueur inpormasi ngeunaan data anu dianalisis anu anjeun kedah terang sateuacan ngamimitian damel langkung raket sareng éta.

Di dieu urang bakal ningali fitur ngagunakeun perpustakaan pandas-profiling ngagunakeun dataset Titanic salaku conto.

Analisis data éksplorasi ngagunakeun panda

Kuring mutuskeun pikeun ékspérimén sareng pandas-profiling dina set data Titanic kusabab rupa-rupa jinis data anu dikandung sareng ayana nilai anu leungit. Kuring yakin yén perpustakaan pandas-profil utamana metot dina kasus dimana data teu acan cleaned sarta merlukeun processing salajengna gumantung kana ciri na. Pikeun suksés ngalaksanakeun pamrosésan sapertos kitu, anjeun kedah terang dimana ngamimitian sareng naon anu kedah diperhatoskeun. Ieu tempat kamampuhan panda-profiling datang dina gunana.

Mimiti, urang ngimpor data sareng nganggo panda pikeun nyandak 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()

Saatos ngaéksekusi sapotong kode ieu, anjeun bakal nampi naon anu dipidangkeun dina gambar di handap ieu.

Ngagancangkeun analisis data éksplorasi ngagunakeun perpustakaan pandas-profiling
Statistik deskriptif diala nganggo alat panda standar

Sanaos seueur inpormasi anu mangpaat di dieu, éta henteu ngandung sadayana anu bakal pikaresepeun pikeun terang ngeunaan data anu ditalungtik. Contona, hiji bisa nganggap yén dina pigura data, dina struktur DataFrame, aya 891 garis. Upami ieu kedah dipariksa, maka baris kode anu sanés diperyogikeun pikeun nangtukeun ukuran pigura. Sanaos itungan ieu henteu langkung intensif sumber daya, ngulang deui saban waktos bakal ngabuang waktos anu sigana langkung saé pikeun ngabersihkeun data.

Analisis data éksplorasi ngagunakeun pandas-profiling

Ayeuna hayu urang lakonan hal anu sami nganggo pandas-profiling:

pandas_profiling.ProfileReport(df)

Ngaéksekusi garis kode di luhur bakal ngahasilkeun laporan kalayan indikator analisis data éksplorasi. Kodeu ditémbongkeun di luhur bakal kaluaran data kapanggih, tapi anjeun bisa nyieun kaluaran hiji file HTML nu bisa nembongkeun ka batur, contona.

Bagian kahiji laporan bakal ngandung bagian Tinjauan, masihan inpormasi dasar ngeunaan data (jumlah observasi, jumlah variabel, jsb.). Éta ogé bakal ngandung daptar panggeuing, ngabéjaan analis ngeunaan hal-hal anu kedah diperhatoskeun. Panggeuing ieu tiasa masihan petunjuk dimana anjeun tiasa museurkeun usaha ngabersihan data anjeun.

Ngagancangkeun analisis data éksplorasi ngagunakeun perpustakaan pandas-profiling
Bagéan laporan Tinjauan

Analisis Variabel Éksplorasi

Di handap bagian Tinjauan laporan anjeun tiasa mendakan inpormasi anu mangpaat ngeunaan unggal variabel. Éta kalebet, diantarana, bagan leutik anu ngajelaskeun distribusi unggal variabel.

Ngagancangkeun analisis data éksplorasi ngagunakeun perpustakaan pandas-profiling
Ngeunaan Variabel Numérik Umur

Sakumaha anjeun tiasa tingali tina conto sateuacana, pandas-profiling masihan kami sababaraha indikator anu mangpaat, sapertos persentase sareng jumlah nilai anu leungit, kitu ogé ukuran statistik deskriptif anu parantos kami tingali. Sabab Age nyaéta variabel numeris, visualisasi distribusina dina bentuk histogram ngamungkinkeun urang pikeun nyimpulkeun yén urang ngagaduhan distribusi anu condong ka katuhu.

Nalika nganggap variabel categorical, hasil kaluaran rada béda ti anu kapanggih pikeun variabel numerik.

Ngagancangkeun analisis data éksplorasi ngagunakeun perpustakaan pandas-profiling
Ngeunaan variabel categorical Sex

Nyaéta, tinimbang manggihan rata-rata, minimum jeung maksimum, perpustakaan pandas-profiling manggihan jumlah kelas. Sabab Sex — variabel binér, nilaina diwakilan ku dua kelas.

Upami anjeun resep mariksa kode sapertos kuring, anjeun tiasa resep kumaha persisna perpustakaan pandas-profil ngitung métrik ieu. Pilarian ngeunaan ieu, nunjukkeun yén kode perpustakaan dibuka sareng sayogi dina GitHub, henteu sesah. Kusabab Kaula mah a kipas badag ngagunakeun kotak hideung dina proyék kuring, Kuring nyandak katingal dina kode sumber perpustakaan urang. Contona, ieu kumaha mékanisme pikeun ngolah variabel numerik Sigana mah, digambarkeun ku fungsi 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)

Sanajan sapotong kode ieu bisa sigana rada badag tur kompléks, éta sabenerna basajan pisan ngartos. Intina nyaéta yén dina kode sumber perpustakaan aya fungsi anu nangtukeun jinis variabel. Upami tétéla yén perpustakaan parantos mendakan variabel numerik, fungsi di luhur bakal mendakan métrik anu urang tingali. Pungsi ieu ngagunakeun operasi pandas standar pikeun gawé bareng objék tina tipe Series, siga series.mean(). Hasil itungan disimpen dina kamus stats. Histograms dihasilkeun ngagunakeun versi diadaptasi tina fungsi matplotlib.pyplot.hist. Adaptasi ditujukeun pikeun mastikeun yén fungsina tiasa dianggo sareng sababaraha jinis set data.

Indikator korelasi jeung data sampel ditalungtik

Sanggeus hasil analisis variabel, pandas-profiling, dina bagian Korélasi, bakal mintonkeun matriks korelasi Pearson jeung Spearman.

Ngagancangkeun analisis data éksplorasi ngagunakeun perpustakaan pandas-profiling
Matriks korelasi Pearson

Upami diperlukeun, anjeun tiasa, dina garis kode nu micu generasi laporan, nyetel indikator tina nilai bangbarung dipaké nalika ngitung korelasi. Ku ngalakukeun ieu, anjeun tiasa nangtukeun naon kakuatan korelasi dianggap penting pikeun analisis anjeun.

Tungtungna, laporan pandas-profiling, dina bagian Sampel, mintonkeun, salaku conto, sapotong data dicokot ti awal set data. Pendekatan ieu tiasa nyababkeun kejutan anu teu pikaresepeun, sabab sababaraha pangamatan anu munggaran tiasa ngawakilan conto anu henteu ngagambarkeun karakteristik sadaya set data.

Ngagancangkeun analisis data éksplorasi ngagunakeun perpustakaan pandas-profiling
Bagian anu ngandung sampel data anu ditalungtik

Hasilna, kuring henteu nyarankeun nengetan bagian anu terakhir ieu. Gantina, eta leuwih hade migunakeun paréntah df.sample(5), anu sacara acak bakal milih 5 observasi tina kumpulan data.

hasil

Pikeun nyimpulkeun, perpustakaan pandas-profiling masihan analis sababaraha kamampuan anu mangpaat anu bakal mangpaat dina kasus dimana anjeun kedah gancang nyandak ide kasar ngeunaan data atanapi ngirimkeun laporan analisa intelijen ka batur. Dina waktu nu sarua, karya nyata jeung data, nyokot kana akun fitur na, dipigawé, sakumaha tanpa ngagunakeun pandas-profiling, sacara manual.

Upami anjeun hoyong ningali kumaha sadayana analisa data intelijen dina hiji notebook Jupyter, tingali ieu proyék abdi dijieun maké nbviewer. Jeung di ieu Anjeun tiasa mendakan kode anu cocog dina repositori GitHub.

Pamiarsa Hadirin! Dimana anjeun ngamimitian nganalisis set data anyar?

Ngagancangkeun analisis data éksplorasi ngagunakeun perpustakaan pandas-profiling

sumber: www.habr.com

Tambahkeun komentar