پانڈا پروفائلنگ لائبریری کا استعمال کرتے ہوئے ریسرچ ڈیٹا کے تجزیہ کو تیز کریں۔

ایک نئے ڈیٹا سیٹ کے ساتھ کام شروع کرنے کا پہلا قدم اسے سمجھنا ہے۔ ایسا کرنے کے لیے، آپ کو، مثال کے طور پر، متغیرات کے ذریعے قبول کردہ اقدار کی رینجز، ان کی اقسام، اور گمشدہ اقدار کی تعداد کے بارے میں بھی معلوم کرنے کی ضرورت ہے۔

پانڈا لائبریری ہمیں ایکسپلوریٹری ڈیٹا اینالیسس (EDA) انجام دینے کے لیے بہت سے مفید ٹولز فراہم کرتی ہے۔ لیکن اس سے پہلے کہ آپ ان کو استعمال کریں، آپ کو عام طور پر مزید عام فنکشنز جیسے df.describe() سے شروع کرنے کی ضرورت ہوتی ہے۔ تاہم، یہ غور کرنا چاہیے کہ اس طرح کے فنکشنز کے ذریعے فراہم کردہ صلاحیتیں محدود ہیں، اور EDA کو انجام دیتے وقت کسی بھی ڈیٹا سیٹ کے ساتھ کام کرنے کے ابتدائی مراحل اکثر ایک دوسرے سے ملتے جلتے ہوتے ہیں۔

پانڈا پروفائلنگ لائبریری کا استعمال کرتے ہوئے ریسرچ ڈیٹا کے تجزیہ کو تیز کریں۔

آج ہم جو مواد شائع کر رہے ہیں اس کے مصنف کا کہنا ہے کہ وہ بار بار کام کرنے کا پرستار نہیں ہے۔ نتیجے کے طور پر، تلاشی ڈیٹا کے تجزیہ کو تیزی سے اور مؤثر طریقے سے انجام دینے کے لیے آلات کی تلاش میں، اس نے لائبریری کو تلاش کیا۔ پانڈوں کی پروفائلنگ. اس کے کام کے نتائج کا اظہار کچھ انفرادی اشارے کی شکل میں نہیں کیا جاتا ہے، بلکہ ایک کافی تفصیلی HTML رپورٹ کی شکل میں ہوتا ہے جس میں تجزیہ شدہ ڈیٹا کے بارے میں زیادہ تر معلومات ہوتی ہیں جو آپ کو اس کے ساتھ مزید قریب سے کام کرنا شروع کرنے سے پہلے جاننے کی ضرورت ہوتی ہے۔

یہاں ہم مثال کے طور پر ٹائٹینک ڈیٹاسیٹ کا استعمال کرتے ہوئے پانڈوں کی پروفائلنگ لائبریری کے استعمال کی خصوصیات کو دیکھیں گے۔

پانڈا کا استعمال کرتے ہوئے ریسرچ ڈیٹا کا تجزیہ

میں نے ٹائٹینک ڈیٹاسیٹ پر پانڈا پروفائلنگ کے ساتھ تجربہ کرنے کا فیصلہ کیا کیونکہ اس میں موجود مختلف قسم کے ڈیٹا اور اس میں موجود اقدار کی کمی ہے۔ مجھے یقین ہے کہ پانڈا پروفائلنگ لائبریری خاص طور پر ایسے معاملات میں دلچسپ ہے جہاں ڈیٹا کو ابھی تک صاف نہیں کیا گیا ہے اور اس کی خصوصیات کے لحاظ سے مزید کارروائی کی ضرورت ہے۔ اس طرح کی پروسیسنگ کو کامیابی سے انجام دینے کے لیے، آپ کو یہ جاننے کی ضرورت ہے کہ کہاں سے آغاز کرنا ہے اور کس چیز پر توجہ دینی ہے۔ یہ وہ جگہ ہے جہاں پانڈوں کی پروفائلنگ کی صلاحیتیں کام آتی ہیں۔

سب سے پہلے، ہم ڈیٹا درآمد کرتے ہیں اور وضاحتی اعدادوشمار حاصل کرنے کے لیے پانڈا استعمال کرتے ہیں:

# импорт необходимых пакетов
import pandas as pd
import pandas_profiling
import numpy as np

# импорт данных
df = pd.read_csv('/Users/lukas/Downloads/titanic/train.csv')

# вычисление показателей описательной статистики
df.describe()

کوڈ کے اس ٹکڑے پر عمل کرنے کے بعد، آپ کو وہی ملے گا جو درج ذیل تصویر میں دکھایا گیا ہے۔

پانڈا پروفائلنگ لائبریری کا استعمال کرتے ہوئے ریسرچ ڈیٹا کے تجزیہ کو تیز کریں۔
معیاری پانڈا ٹولز کا استعمال کرتے ہوئے حاصل کردہ وضاحتی اعدادوشمار

اگرچہ یہاں بہت ساری مفید معلومات موجود ہیں، لیکن اس میں وہ سب کچھ نہیں ہے جو زیر مطالعہ ڈیٹا کے بارے میں جاننا دلچسپ ہوگا۔ مثال کے طور پر، کوئی یہ فرض کر سکتا ہے کہ ڈیٹا فریم میں، کسی ڈھانچے میں DataFrame891 لائنیں ہیں۔ اگر اسے چیک کرنے کی ضرورت ہے، تو فریم کے سائز کا تعین کرنے کے لیے کوڈ کی ایک اور لائن کی ضرورت ہے۔ اگرچہ یہ حسابات خاص طور پر وسائل پر مبنی نہیں ہیں، لیکن انہیں ہر وقت دہرانے سے وقت ضائع ہوتا ہے جو شاید ڈیٹا کو صاف کرنے میں بہتر طور پر خرچ کیا جا سکتا ہے۔

پانڈا پروفائلنگ کا استعمال کرتے ہوئے ریسرچ ڈیٹا کا تجزیہ

اب pandas-profiling کا استعمال کرتے ہوئے ایسا ہی کرتے ہیں:

pandas_profiling.ProfileReport(df)

کوڈ کی مندرجہ بالا لائن پر عمل درآمد ڈیٹا کے تجزیہ کے اشارے کے ساتھ ایک رپورٹ تیار کرے گا۔ اوپر دکھایا گیا کوڈ ملے ڈیٹا کو آؤٹ پٹ کرے گا، لیکن آپ اسے ایک HTML فائل بنا سکتے ہیں جسے آپ کسی کو دکھا سکتے ہیں، مثال کے طور پر۔

رپورٹ کا پہلا حصہ جائزہ سیکشن پر مشتمل ہوگا، جس میں ڈیٹا کے بارے میں بنیادی معلومات (مشاہدات کی تعداد، متغیرات کی تعداد، وغیرہ) دی جائے گی۔ اس میں انتباہات کی ایک فہرست بھی ہوگی، جس میں تجزیہ کار کو ان چیزوں کے بارے میں مطلع کیا جائے گا جن پر خصوصی توجہ دی جائے۔ یہ انتباہات اس بات کا اشارہ فراہم کر سکتے ہیں کہ آپ اپنی ڈیٹا صاف کرنے کی کوششوں پر کہاں توجہ مرکوز کر سکتے ہیں۔

پانڈا پروفائلنگ لائبریری کا استعمال کرتے ہوئے ریسرچ ڈیٹا کے تجزیہ کو تیز کریں۔
جائزہ رپورٹ سیکشن

تلاشی متغیر تجزیہ

رپورٹ کے جائزہ سیکشن کے نیچے آپ ہر متغیر کے بارے میں مفید معلومات حاصل کر سکتے ہیں۔ ان میں دیگر چیزوں کے علاوہ، ہر متغیر کی تقسیم کو بیان کرنے والے چھوٹے چارٹ شامل ہیں۔

پانڈا پروفائلنگ لائبریری کا استعمال کرتے ہوئے ریسرچ ڈیٹا کے تجزیہ کو تیز کریں۔
عمر کے عددی متغیر کے بارے میں

جیسا کہ آپ پچھلی مثال سے دیکھ سکتے ہیں، پانڈا پروفائلنگ ہمیں کئی مفید اشارے فراہم کرتی ہے، جیسے لاپتہ اقدار کی فیصد اور تعداد، نیز اعداد و شمار کے وضاحتی اقدامات جو ہم پہلے دیکھ چکے ہیں۔ کیونکہ Age ایک عددی متغیر ہے، ہسٹوگرام کی شکل میں اس کی تقسیم کا تصور ہمیں یہ نتیجہ اخذ کرنے کی اجازت دیتا ہے کہ ہمارے پاس ایک تقسیم دائیں طرف ہے۔

جب ایک واضح متغیر پر غور کیا جائے تو، آؤٹ پٹ کے نتائج عددی متغیر کے لیے پائے جانے والے نتائج سے قدرے مختلف ہوتے ہیں۔

پانڈا پروفائلنگ لائبریری کا استعمال کرتے ہوئے ریسرچ ڈیٹا کے تجزیہ کو تیز کریں۔
جنس کے زمرہ وار متغیر کے بارے میں

یعنی، اوسط، کم سے کم اور زیادہ سے زیادہ تلاش کرنے کے بجائے، پانڈا پروفائلنگ لائبریری نے کلاسوں کی تعداد تلاش کی۔ کیونکہ Sex - ایک بائنری متغیر، اس کی اقدار کو دو کلاسوں سے ظاہر کیا جاتا ہے۔

اگر آپ کوڈ کی جانچ کرنا پسند کرتے ہیں جیسا کہ میں کرتا ہوں، تو آپ کو اس بات میں دلچسپی ہو سکتی ہے کہ پانڈا پروفائلنگ لائبریری ان میٹرکس کا حساب کتاب کیسے کرتی ہے۔ اس بارے میں جاننا، یہ دیکھتے ہوئے کہ لائبریری کوڈ کھلا ہے اور GitHub پر دستیاب ہے، اتنا مشکل نہیں ہے۔ چونکہ میں اپنے پروجیکٹس میں بلیک باکس استعمال کرنے کا بڑا پرستار نہیں ہوں، اس لیے میں نے لائبریری کے سورس کوڈ پر ایک نظر ڈالی۔ مثال کے طور پر، عددی متغیرات کو پروسیس کرنے کا طریقہ کار ایسا لگتا ہے، جس کی نمائندگی فنکشن سے ہوتی ہے۔ 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)

اگرچہ کوڈ کا یہ ٹکڑا کافی بڑا اور پیچیدہ معلوم ہو سکتا ہے، لیکن حقیقت میں یہ سمجھنا بہت آسان ہے۔ بات یہ ہے کہ لائبریری کے سورس کوڈ میں ایک فنکشن ہوتا ہے جو متغیرات کی اقسام کا تعین کرتا ہے۔ اگر یہ پتہ چلتا ہے کہ لائبریری کو ایک عددی متغیر کا سامنا کرنا پڑا ہے، تو مندرجہ بالا فنکشن وہ میٹرکس تلاش کرے گا جسے ہم دیکھ رہے تھے۔ یہ فنکشن قسم کی اشیاء کے ساتھ کام کرنے کے لیے معیاری پانڈا آپریشنز کا استعمال کرتا ہے۔ Seriesجیسے series.mean(). حساب کتاب کے نتائج لغت میں محفوظ ہیں۔ stats. ہسٹوگرام فنکشن کے موافقت پذیر ورژن کا استعمال کرتے ہوئے بنائے جاتے ہیں۔ matplotlib.pyplot.hist. موافقت کا مقصد اس بات کو یقینی بنانا ہے کہ فنکشن مختلف قسم کے ڈیٹا سیٹ کے ساتھ کام کر سکتا ہے۔

ارتباط کے اشارے اور نمونے کے اعداد و شمار کا مطالعہ کیا گیا۔

متغیرات کے تجزیے کے نتائج کے بعد، پانڈا پروفائلنگ، Correlations سیکشن میں، Pearson اور Spearman کے ارتباطی میٹرکس کو ظاہر کرے گی۔

پانڈا پروفائلنگ لائبریری کا استعمال کرتے ہوئے ریسرچ ڈیٹا کے تجزیہ کو تیز کریں۔
پیئرسن کوریلیشن میٹرکس

اگر ضروری ہو تو، آپ رپورٹ کی تخلیق کو متحرک کرنے والے کوڈ کی لائن میں، ارتباط کا حساب لگاتے وقت استعمال ہونے والی حد کی قدروں کے اشارے مقرر کر سکتے ہیں۔ ایسا کرنے سے، آپ یہ بتا سکتے ہیں کہ آپ کے تجزیے کے لیے ارتباط کی کونسی طاقت اہم سمجھی جاتی ہے۔

آخر میں، پانڈا پروفائلنگ رپورٹ، نمونہ کے حصے میں، مثال کے طور پر، ڈیٹا سیٹ کے آغاز سے لیا گیا ڈیٹا کا ایک ٹکڑا دکھاتا ہے۔ یہ نقطہ نظر ناخوشگوار حیرتوں کا باعث بن سکتا ہے، کیونکہ پہلے چند مشاہدات ایسے نمونے کی نمائندگی کر سکتے ہیں جو پورے ڈیٹا سیٹ کی خصوصیات کی عکاسی نہیں کرتا ہے۔

پانڈا پروفائلنگ لائبریری کا استعمال کرتے ہوئے ریسرچ ڈیٹا کے تجزیہ کو تیز کریں۔
زیر مطالعہ نمونہ ڈیٹا پر مشتمل سیکشن

نتیجے کے طور پر، میں اس آخری حصے پر توجہ دینے کی سفارش نہیں کرتا ہوں۔ اس کے بجائے، کمانڈ استعمال کرنا بہتر ہے۔ df.sample(5)، جو ڈیٹا سیٹ سے تصادفی طور پر 5 مشاہدات کو منتخب کرے گا۔

کے نتائج

خلاصہ کرنے کے لیے، پانڈا پروفائلنگ لائبریری تجزیہ کار کو کچھ کارآمد صلاحیتیں فراہم کرتی ہے جو ان صورتوں میں کام آئے گی جہاں آپ کو فوری طور پر اعداد و شمار کے بارے میں کوئی اندازہ حاصل کرنے یا کسی کو انٹیلی جنس تجزیہ کی رپورٹ دینے کی ضرورت ہوتی ہے۔ ایک ہی وقت میں، اعداد و شمار کے ساتھ حقیقی کام، اس کی خصوصیات کو مدنظر رکھتے ہوئے، کیا جاتا ہے، جیسا کہ دستی طور پر پانڈا پروفائلنگ کا استعمال کیے بغیر۔

اگر آپ ایک نظر ڈالنا چاہتے ہیں کہ تمام انٹیلی جنس ڈیٹا کا تجزیہ ایک Jupyter نوٹ بک میں کیسا لگتا ہے، اس پر ایک نظر ڈالیں۔ یہ میرا پروجیکٹ nbviewer کا استعمال کرتے ہوئے بنایا گیا ہے۔ اور میں یہ آپ GitHub ذخیروں میں متعلقہ کوڈ تلاش کرسکتے ہیں۔

پیارے قارئین! آپ نئے ڈیٹا سیٹس کا تجزیہ کہاں سے شروع کرتے ہیں؟

پانڈا پروفائلنگ لائبریری کا استعمال کرتے ہوئے ریسرچ ڈیٹا کے تجزیہ کو تیز کریں۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں