புதிய தரவுத் தொகுப்புடன் வேலை செய்யத் தொடங்கும் போது முதல் படி அதைப் புரிந்து கொள்ள வேண்டும். இதைச் செய்ய, எடுத்துக்காட்டாக, மாறிகளால் ஏற்றுக்கொள்ளப்பட்ட மதிப்புகளின் வரம்புகள், அவற்றின் வகைகள் மற்றும் விடுபட்ட மதிப்புகளின் எண்ணிக்கையைக் கண்டறியவும்.
பாண்டாஸ் நூலகம் ஆய்வு தரவு பகுப்பாய்வு (EDA) செய்வதற்கு பல பயனுள்ள கருவிகளை நமக்கு வழங்குகிறது. ஆனால் அவற்றைப் பயன்படுத்துவதற்கு முன், நீங்கள் பொதுவாக df.describe() போன்ற பொதுவான செயல்பாடுகளுடன் தொடங்க வேண்டும். இருப்பினும், அத்தகைய செயல்பாடுகளால் வழங்கப்படும் திறன்கள் குறைவாகவே உள்ளன என்பதைக் கவனத்தில் கொள்ள வேண்டும், மேலும் EDA ஐச் செய்யும்போது எந்தவொரு தரவுத் தொகுப்புகளுடனும் பணிபுரியும் ஆரம்ப நிலைகள் ஒருவருக்கொருவர் மிகவும் ஒத்ததாக இருக்கும்.
இன்று நாம் வெளியிடும் பொருளின் ஆசிரியர், அவர் மீண்டும் மீண்டும் செயல்களைச் செய்வதில் ரசிகர் அல்ல என்று கூறுகிறார். இதன் விளைவாக, ஆய்வு தரவு பகுப்பாய்வுகளை விரைவாகவும் திறமையாகவும் செய்வதற்கான கருவிகளைத் தேடி, அவர் நூலகத்தைக் கண்டுபிடித்தார்
டைட்டானிக் தரவுத்தொகுப்பை உதாரணமாகப் பயன்படுத்தி பாண்டாஸ்-புரொஃபைலிங் லைப்ரரியைப் பயன்படுத்துவதற்கான அம்சங்களை இங்கே பார்ப்போம்.
பாண்டாக்களைப் பயன்படுத்தி ஆய்வு தரவு பகுப்பாய்வு
டைட்டானிக் தரவுத்தொகுப்பில் உள்ள பல்வேறு வகையான தரவுகள் மற்றும் அதில் விடுபட்ட மதிப்புகள் இருப்பதால் அதில் பாண்டாஸ்-புரொஃபைலிங்கைப் பரிசோதிக்க முடிவு செய்தேன். தரவு இன்னும் சுத்தம் செய்யப்படாத சந்தர்ப்பங்களில் பாண்டாஸ்-புரொஃபைலிங் லைப்ரரி மிகவும் சுவாரஸ்யமானது மற்றும் அதன் பண்புகளைப் பொறுத்து மேலும் செயலாக்கம் தேவைப்படும் என்று நான் நம்புகிறேன். அத்தகைய செயலாக்கத்தை வெற்றிகரமாகச் செய்ய, எங்கு தொடங்குவது மற்றும் எதில் கவனம் செலுத்துவது என்பதை நீங்கள் அறிந்து கொள்ள வேண்டும். இங்குதான் பாண்டாக்கள்-விவரப்படுத்தல் திறன்கள் கைக்கு வரும்.
முதலில், நாங்கள் தரவை இறக்குமதி செய்து, விளக்கமான புள்ளிவிவரங்களைப் பெற பாண்டாக்களைப் பயன்படுத்துகிறோம்:
# импорт необходимых пакетов
import pandas as pd
import pandas_profiling
import numpy as np
# импорт данных
df = pd.read_csv('/Users/lukas/Downloads/titanic/train.csv')
# вычисление показателей описательной статистики
df.describe()
இந்த குறியீட்டை இயக்கிய பிறகு, பின்வரும் படத்தில் காட்டப்பட்டுள்ளதைப் பெறுவீர்கள்.
நிலையான பாண்டாக் கருவிகளைப் பயன்படுத்தி பெறப்பட்ட விளக்கமான புள்ளிவிவரங்கள்
இங்கே நிறைய பயனுள்ள தகவல்கள் இருந்தாலும், ஆய்வின் கீழ் உள்ள தரவைப் பற்றி தெரிந்துகொள்ள ஆர்வமாக இருக்கும் அனைத்தையும் இது கொண்டிருக்கவில்லை. எடுத்துக்காட்டாக, ஒரு தரவு சட்டத்தில், ஒரு கட்டமைப்பில் என்று ஒருவர் கருதலாம் DataFrame
, 891 வரிகள் உள்ளன. இது சரிபார்க்கப்பட வேண்டும் என்றால், சட்டத்தின் அளவை தீர்மானிக்க மற்றொரு வரி குறியீடு தேவைப்படுகிறது. இந்தக் கணக்கீடுகள் குறிப்பாக வளம்-தீவிரமானவை அல்ல என்றாலும், எல்லா நேரத்திலும் அவற்றைத் திரும்பத் திரும்பச் செய்வது நேரத்தை வீணடிக்கும்.
Pandas-profiling பயன்படுத்தி ஆய்வு தரவு பகுப்பாய்வு
இப்போது pandas-profiling ஐப் பயன்படுத்தி அதையே செய்வோம்:
pandas_profiling.ProfileReport(df)
மேலே உள்ள குறியீட்டை செயல்படுத்துவது ஆய்வு தரவு பகுப்பாய்வு குறிகாட்டிகளுடன் ஒரு அறிக்கையை உருவாக்கும். மேலே காட்டப்பட்டுள்ள குறியீடு கண்டறியப்பட்ட தரவை வெளியிடும், ஆனால் நீங்கள் அதை ஒரு HTML கோப்பை வெளியிடலாம், எடுத்துக்காட்டாக நீங்கள் ஒருவருக்குக் காட்டலாம்.
அறிக்கையின் முதல் பகுதி மேலோட்டப் பகுதியைக் கொண்டிருக்கும், இது தரவு பற்றிய அடிப்படைத் தகவலைக் கொண்டிருக்கும் (கவனிப்புகளின் எண்ணிக்கை, மாறிகளின் எண்ணிக்கை போன்றவை). இது விழிப்பூட்டல்களின் பட்டியலைக் கொண்டிருக்கும், சிறப்பு கவனம் செலுத்த வேண்டிய விஷயங்களை ஆய்வாளருக்கு அறிவிக்கும். இந்த விழிப்பூட்டல்கள் உங்கள் தரவு சுத்திகரிப்பு முயற்சிகளை எங்கு கவனம் செலுத்தலாம் என்பதற்கான தடயங்களை வழங்க முடியும்.
மேலோட்ட அறிக்கை பகுதி
ஆய்வு மாறி பகுப்பாய்வு
அறிக்கையின் மேலோட்டப் பகுதிக்குக் கீழே ஒவ்வொரு மாறியைப் பற்றிய பயனுள்ள தகவலைக் காணலாம். மற்றவற்றுடன், ஒவ்வொரு மாறியின் விநியோகத்தையும் விவரிக்கும் சிறிய விளக்கப்படங்கள் இதில் அடங்கும்.
வயது எண் மாறி பற்றி
முந்தைய எடுத்துக்காட்டில் இருந்து நீங்கள் பார்க்கக்கூடியது போல, பாண்டாஸ்-புரொஃபைலிங் எங்களுக்கு பல பயனுள்ள குறிகாட்டிகளை வழங்குகிறது, அதாவது விடுபட்ட மதிப்புகளின் சதவீதம் மற்றும் எண்ணிக்கை, அத்துடன் நாம் ஏற்கனவே பார்த்த விளக்கமான புள்ளிவிவர நடவடிக்கைகள். ஏனெனில் Age
ஒரு எண்ணியல் மாறி, ஒரு ஹிஸ்டோகிராம் வடிவில் அதன் பரவலைக் காட்சிப்படுத்துவது, வலப்புறம் வளைந்திருக்கும் விநியோகம் என்று முடிவு செய்ய அனுமதிக்கிறது.
ஒரு வகை மாறியைக் கருத்தில் கொள்ளும்போது, வெளியீட்டு முடிவுகள் எண் மாறியில் இருந்து சற்று வித்தியாசமாக இருக்கும்.
பாலின வகைப்படுத்தல் மாறி பற்றி
அதாவது, சராசரி, குறைந்தபட்சம் மற்றும் அதிகபட்சம் ஆகியவற்றைக் கண்டுபிடிப்பதற்குப் பதிலாக, பாண்டாக்கள்-விவரக்குறிப்பு நூலகம் வகுப்புகளின் எண்ணிக்கையைக் கண்டறிந்தது. ஏனெனில் Sex
- ஒரு பைனரி மாறி, அதன் மதிப்புகள் இரண்டு வகுப்புகளால் குறிக்கப்படுகின்றன.
நான் செய்வது போல் குறியீட்டை நீங்கள் ஆராய விரும்பினால், பாண்டாஸ்-புரொஃபைலிங் லைப்ரரி இந்த அளவீடுகளை எவ்வாறு சரியாகக் கணக்கிடுகிறது என்பதில் நீங்கள் ஆர்வமாக இருக்கலாம். இதைப் பற்றி கண்டுபிடிப்பது, நூலகக் குறியீடு திறந்திருக்கும் மற்றும் கிட்ஹப்பில் கிடைக்கும் என்பதால், அவ்வளவு கடினம் அல்ல. எனது திட்டப்பணிகளில் கருப்புப் பெட்டிகளைப் பயன்படுத்துவதில் நான் பெரிய ரசிகன் இல்லை என்பதால், நூலகத்தின் மூலக் குறியீட்டைப் பார்த்தேன். எடுத்துக்காட்டாக, எண் மாறிகளை செயலாக்குவதற்கான பொறிமுறையானது செயல்பாட்டால் குறிப்பிடப்படும்
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
. பல்வேறு வகையான தரவுத் தொகுப்புகளுடன் செயல்பாடு செயல்படுவதை உறுதி செய்வதே தழுவல் நோக்கமாக உள்ளது.
தொடர்பு குறிகாட்டிகள் மற்றும் மாதிரி தரவு ஆய்வு செய்யப்பட்டது
மாறிகளின் பகுப்பாய்வின் முடிவுகளுக்குப் பிறகு, பாண்டாஸ்-புரொஃபைலிங், தொடர்புகள் பிரிவில், பியர்சன் மற்றும் ஸ்பியர்மேன் தொடர்பு மெட்ரிக்ஸைக் காண்பிக்கும்.
பியர்சன் தொடர்பு அணி
தேவைப்பட்டால், அறிக்கையின் உருவாக்கத்தைத் தூண்டும் குறியீட்டு வரிசையில், தொடர்பைக் கணக்கிடும்போது பயன்படுத்தப்படும் வாசல் மதிப்புகளின் குறிகாட்டிகளை அமைக்கலாம். இதைச் செய்வதன் மூலம், உங்கள் பகுப்பாய்விற்கு முக்கியமானதாகக் கருதப்படும் தொடர்புகளின் வலிமையை நீங்கள் குறிப்பிடலாம்.
இறுதியாக, pandas-profiling அறிக்கை, மாதிரிப் பிரிவில், தரவுத் தொகுப்பின் தொடக்கத்திலிருந்து எடுக்கப்பட்ட தரவின் ஒரு பகுதியை உதாரணமாகக் காட்டுகிறது. இந்த அணுகுமுறை விரும்பத்தகாத ஆச்சரியங்களுக்கு வழிவகுக்கும், ஏனெனில் முதல் சில அவதானிப்புகள் முழு தரவுத் தொகுப்பின் பண்புகளை பிரதிபலிக்காத மாதிரியைக் குறிக்கலாம்.
ஆய்வின் கீழ் மாதிரித் தரவுகளைக் கொண்ட பிரிவு
இதன் விளைவாக, இந்த கடைசி பிரிவில் கவனம் செலுத்த நான் பரிந்துரைக்கவில்லை. அதற்கு பதிலாக, கட்டளையைப் பயன்படுத்துவது நல்லது df.sample(5)
, இது தரவுத் தொகுப்பிலிருந்து 5 அவதானிப்புகளைத் தோராயமாகத் தேர்ந்தெடுக்கும்.
முடிவுகளை
சுருக்கமாக, பாண்டாஸ்-புரொஃபைலிங் லைப்ரரி ஆய்வாளருக்கு சில பயனுள்ள திறன்களை வழங்குகிறது, அவை தரவு பற்றிய தோராயமான யோசனையை விரைவாகப் பெற அல்லது ஒருவருக்கு உளவுத்துறை பகுப்பாய்வு அறிக்கையை அனுப்ப வேண்டிய சந்தர்ப்பங்களில் கைக்குள் வரும். அதே நேரத்தில், தரவுகளுடன் உண்மையான வேலை, அதன் அம்சங்களை கணக்கில் எடுத்துக்கொண்டு, பாண்டாஸ்-புரொஃபைலிங்கைப் பயன்படுத்தாமல், கைமுறையாக செய்யப்படுகிறது.
ஒரு ஜூபிடர் நோட்புக்கில் அனைத்து நுண்ணறிவு தரவு பகுப்பாய்வு எப்படி இருக்கும் என்பதை நீங்கள் பார்க்க விரும்பினால், பாருங்கள்
அன்புள்ள வாசகர்கள்! புதிய தரவுத் தொகுப்புகளை எங்கு பகுப்பாய்வு செய்யத் தொடங்குவீர்கள்?
ஆதாரம்: www.habr.com