مراحل اصلی آمادهسازی دادهها چیست؟
هنگامی که صحبت از آمادهسازی دادهها به میان میآید با مجموعه مراحل و فرآیندهایی روبهرو هستیم که باید پشتسرهم انجام شوند تا بتوانیم بهشکل درستی دادهها را تحلیل کنیم. این فرآیندها بهشرح زیر است.
جمعآوری دادهها
جمعآوری دادهها (Data Collecting) به معنای گردآوری، حفظ و ذخیرهسازی اطلاعات و دادههای مربوط به یک سیستم، فرآیند یا پدیده است. جمعآوری دادهها یکی از مراحل اصلی در فرآیند تحلیل دادهها و استفاده از آنها است و مهمترین مرحله برای دستیابی به دادههای قابل استفاده و مفید است. جمعآوری دادهها از منابع مختلفی مثل سنسورها، پایگاههای داده، فایلهای متنی، وبسایتها، شبکههای اجتماعی و غیره انجام میشود. هدف اصلی جمعآوری دادهها، فراهم کردن اطلاعات قوی برای تحلیل، استنتاج و انتقال دانش است. با جمعآوری دادههای کافی و مناسب، میتوان الگوها، روابط و اطلاعات مفید را شناسایی کرده و از آنها برای اتخاذ تصمیمات بهتر و ارائه پیشبینیها و تحلیلهای دقیقتر استفاده کرد.
تمیزکاری دادهها
تمیزکاری دادهها (Data Cleaning) یا پاکسازی دادهها (Data Cleansing)، مرحله مهم دیگری در فرآیند تحلیل دادهها است. تمیزکاری دادهها شامل تشخیص، بررسی و اصلاح دادههای ناقص، اشتباه، نامتناسب یا ناهمخوان است. هدف اصلی این فرآیند بهدستآوردن دادههایی است که درست، قابل اعتماد و استفاده باشند. در این فرآیند، دادههایی که ممکن است بهعلت خطاهای انسانی، عدم دقت دستگاهها یا فرآیندها، خطای ذخیرهسازی یا انتقال و غیره، با مشکلاتی همراه باشند، شناسایی و تصحیح شوند. تمیزکاری خود شامل مراحل مختلفی بهشرح زیر است:
- تشخیص دادههای ناقص: در این مرحله، دادههایی که مقادیر ناقص، خالی یا غیرمعتبر دارند، شناسایی میشوند. این مرحله شامل تشخیص و جایگزینی مقادیر خالی (مثل NULL)، شناسایی و حذف دادههای ازدسترفته، تشخیص و جایگزینی مقادیر پیشفرض و غیره است.
- تصحیح دادههای اشتباه: در این مرحله، دادههایی که مقادیر غیرمعتبر، ناهمخوان یا نامناسب دارند، شناسایی و اصلاح میشوند. این فرآیند شامل تصحیح اشتباهات تایپی، تصحیح ارقام اشتباه، تبدیل و تصحیح فرمتها، اصلاح مقادیر خارج از محدوده معتبر و غیره است.
- حذف دادههای تکراری: در برخی موارد، دادههای تکراری ممکن است در مجموعه دادهها وجود داشته باشند که میتوانند منجر به تحریف نتایج تحلیل شوند. در این مرحله، دادههای تکراری شناسایی و حذف میشوند.
- هماهنگسازی دادهها: در برخی موارد، دادهها از منابع مختلف جمعآوری میشوند و ممکن است در ساختار و فرمت متفاوتی باشند. در این مرحله، دادهها تبدیل به فرمت یکنواخت میشوند.
- اعتبارسنجی دادهها: در این مرحله، دادهها بررسی میشوند تا اعتبار آنها تایید شود. این فرآیند شامل بررسی دامنهها، صحت ساختاری (مانند تطابق الگوها، فرمتها و قوانین) و بررسی هماهنگ بودن دادهها با اهداف کسبوکار است.
تبدیل دادهها
تبدیل دادهها (Data Transformation) پس از تمیزکاری دادهها انجام میشود. در این مرحله، دادهها به صورتی تغییر میکنند تا بهترین شکل و ساختار برای تحلیل و مدلسازی دادهها فراهم شود. تبدیل دادهها شامل تغییر فرمت، مقیاسبندی، تبدیل متغیرها و ایجاد ویژگیهای جدید است. برخی از روشهای معمول برای تبدیل دادهها بهشرح زیر هستند:
- تغییر فرمت: در صورتی که دادهها در فرمت غیرمناسبی ذخیره شده باشند، ممکن است نیاز به تغییر فرمت داشته باشند که از آن جمله باید به تغییر فرمت تاریخ از رشته به معادل عددی، تغییر فرمت اعداد از رشته به عدد، تبدیل فرمت فایلهای دادهای مانند CSV یا Excel به فرمت دیگری مانند JSON و غیره اشاره کرد.
- مقیاسبندی: در برخی موارد، متغیرهای دادهای ممکن است مقیاسهای مختلفی داشته باشند. برای مقایسه و تحلیل بهتر، انجام عملیات مقیاسبندی روی دادهها مفید است. بهطور مثال، مقیاسبندی دادهها بین 0 و 1 با استفاده از روش نرمالسازی (Normalization) یا مقیاسبندی دادهها بر اساس میانگین و انحراف معیار با استفاده از روش استانداردسازی (Standardization) از رویکردهای پرکاربرد از سوی متخصصان علم دادهها است.
- تبدیل متغیرها: در برخی موارد، ممکن است نیاز به تبدیل متغیرهای دادهای ضروری باشد. بهعنوان مثال، تبدیل متغیرهای طبقهای (Categorical) به متغیرهای دودویی (Binary) با استفاده از روش کدگذاری برچسب (Label Encoding)
- یا تبدیل بردار ویژگی (Feature Vectorization) از جمله این موارد است. همچنین، تبدیل متغیرهای متنی به بردارهای ویژگی عددی با استفاده از روشهایی مانند کدگذاری برت (BERT Encoding) یا TF-IDF سرنام Term Frequency-Inverse Document Frequency نیز انجام میگیرد.
- ایجاد ویژگیهای جدید: در بسیاری از موارد، تعریف ویژگیهای جدید باعث بهبود فرآیند تحلیل و مدلسازی میشود که پرکاربردترین تکنیک در این زمینه ترکیب ویژگیهای موجود است.
ادغام دادهها
ادغام دادهها (Data Integration) به مرحلهای اشاره دارد که دو یا چند منبع داده مختلف را با هم ترکیب میکنیم تا یک مجموعه داده جامع و یکپارچه ایجاد شود. هدف از ادغام دادهها، تولید مجموعهای از دادهها است که شامل اطلاعات کامل و جامع از منابع مختلف است و قابلیت استفاده از آنها در تحلیلها، مدلسازی و اتخاذ تصمیمات وجود دارد. در فرآیند ادغام دادهها، دادههایی که از منابع مختلف بهدست میآیند، با توجه به یک یا چند ویژگی مشترک در هم ترکیب میشوند. این ویژگی مشترک معمولا یک شناسه یا کلید اصلی است که نقش رابط بین دادهها را دارد. ادغام دادهها ممکن است بهصورت عمودی (Vertical Integration) یا افقی (Horizontal Integration) انجام شود. در ادغام دادههای عمودی، دادهها بر اساس ستونهای مشترک ترکیب میشوند. به عبارت دیگر، دادههایی که ویژگیهای مشابه دارند، در یک ستون جدید قرار میگیرند و در نهایت مجموعه دادهها بهصورت یکپارچهتری ترکیب میشوند. مثالی از ادغام دادههای عمودی میتواند ادغام دادههای مشابه از چند جدول پایگاه داده باشد. در ادغام دادههای افقی، دادهها بر اساس ردیفهای مشترک ترکیب میشوند. به عبارت دیگر، دادههایی که موضوع مشابه دارند در ردیفهای مشترک قرار میگیرند تا مجموعه دادهها بهصورت یکپارچهتری ترکیب شوند. مثالی از ادغام دادههای افقی میتواند ادغام دادههای جغرافیایی مختلف مربوط به یک موقعیت مکانی باشد، مانند اطلاعات آب و هوا، جمعیت و فعالیتهای اقتصادی در یک منطقه خاص.
آمادهسازی دادهها
آمادهسازی دادهها (Data Preparation) مرحلهای اساسی در فرآیند تحلیل دادهها و مدلسازی است. در این مرحله، دادههای اولیه جمعآوریشده از منابع مختلف را پالایش و تبدیل میکنیم و آنها را برای تحلیل و استفاده در مدلها و الگوریتمهای یادگیری ماشین آماده میکنیم. هدف اصلی آمادهسازی دادهها، ایجاد مجموعهای از دادههای قابل اعتماد، قابل استفاده و مناسب برای تحلیل و مدلسازی است. یکی از کارهای انجامشده در این بخش، نرمالسازی و استانداردسازی دادهها (Data Normalization and Standardization) است. در این مرحله، مقادیر دادهها را به یک مقیاس مشترک تبدیل میکنیم تا تفاوتهای مقیاسی بین ویژگیها را برطرف کنیم. این کار به ما مزیتهایی مانند بهبود عملکرد مدلها و الگوریتمهای یادگیری ماشین، جلوگیری از مشکلات ناشی از تفاوتهای مقیاسی، کاهش تاثیر دادههای پرت و افزایش توان تفسیرپذیری دادهها را میدهد. فرآیند دیگر انجامشده در این بخش جداسازی دادهها (Data Splitting) است که دادهها به دو یا چند بخش مانند مجموعه آموزش، مجموعه اعتبارسنجی و مجموعه آزمون تقسیم میشوند که در ادامه بیشتر درباره این موضوع صحبت خواهیم کرد. این کار امکان ارزیابی و انتخاب بهترین مدل را فراهم میکند و از بروز پدیدههایی مانند بیشبرازش (Overfitting) جلوگیری میکند.
در صورت نیاز، کدگذاری دادهها نیز انجام میشود تا دادههای دستهای یا متنی را به یک نمایش عددی یا باینری تبدیل میکنیم. این عملیات میتواند شامل کدگذاری برچسبها (Label Encoding)، کدگذاری یکبهچند (One-to Many Encoding) یا استفاده از روشهای تبدیل متن به بردارهای عددی مانند روشهای جاسازی کلمات (Word Embedding) است.
تقسیم دادهها به مجموعههای آموزشی و آزمون
تقسیم دادهها به مجموعههای آموزشی و آزمون یکی از مراحل مهم در آمادهسازی دادهها است. روشهای متداول برای تقسیم دادهها به مجموعههای آموزشی و آزمون بهشرح زیر است:
- روش تقسیم تصادفی (Random Split): در این روش، دادهها بهصورت تصادفی بین مجموعه آموزشی و مجموعه آزمون تقسیم میشوند. معمولا نسبتی مشخص بین دو مجموعه تعیین میشود، مانند 70 درصد برای مجموعه آموزش و 30 درصد برای مجموعه آزمون. این روش ساده و سریع است، اما در مواردی ممکن است باعث بیشبرازش یا کمبرازش مدل شود، بهویژه در صورتی که حجم داده کم باشد.
- روش تقسیم متقابل (Cross-Validation): روش تقسیم متقابل، از تمام دادهها برای آموزش و ارزیابی مدل استفاده میشود. در این روش، دادهها به چند بخش تقسیم میشوند و هر بار یکی از بخشها بهعنوان مجموعه آزمون و سایر بخشها بهعنوان مجموعه آموزش استفاده میشوند. این فرایند چند بار تکرار میشود تا همه بخشها بهعنوان مجموعه آزمون استفاده شوند و نتایج بهدستآمده از آزمونها میانگینگیری میشوند. این روش معمولا برای ارزیابی عملکرد مدلها و انتخاب پارامترهای بهینه استفاده میشود.
- روش تقسیم زمانی (Temporal Split): در صورتی که دادهها به ترتیب زمانی مرتب شده باشند، میتوان از روش تقسیم زمانی استفاده کرد. در این روش، دادهها بر اساس زمان تقسیم میشوند، بهطوریکه دادههای قدیمیتر بهعنوان مجموعه آموزشی و دادههای جدیدتر بهعنوان مجموعه آزمون استفاده میشوند. این روش مناسب استفاده در مسائل پیشبینی زمانی و مواردی است که دادهها بر مبنای مهر زمانی جمعآوری شدهاند.
پانداس چه نقشی در فرآیند آمادهسازی دادهها دارد؟
پانداس (Pandas) یک کتابخانه محبوب در زبان برنامهنویسی پایتون است که برای تحلیل و پردازش دادههای جدولی (مانند دادههای داخل یک جدول یا فایل CSV) استفاده میشود. در فرآیند آمادهسازی دادهها، پانداس به کاربران امکانات قدرتمندی برای تبدیل و تنظیم دادهها بهشرح زیر میدهد:
- خواندن و نوشتن دادهها: پانداس قابلیت خواندن و نوشتن دادهها را از فرمتهای مختلف مانند CSV، Excel، SQL، JSON و غیره فراهم میکند. با استفاده از توابعی مثل read_csv و to_csv میتوانید دادهها را بهسادگی از فایلها بخوانید و به فرمتهای دیگر ذخیره کنید.
- انتخاب و فیلتر کردن دادهها: با استفاده از پانداس، میتوانید بهراحتی ستونها و ردیفهای دلخواه خود را انتخاب کنید و تغییرات مورد نیاز را اعمال کنید. با استفاده از عملیات شرطی، میتوانید دادهها را بر اساس شرایط خاصی فیلتر کرده و نتایج مورد نظر را بهدست آورید.
- ترکیب و مرتب کردن دادهها: پانداس امکانات متنوعی برای ترکیب دادهها ارائه میدهد. با استفاده از توابعی مثل concat و merge میتوانید دادهها را افقی یا عمودی ترکیب کنید و جداول جدیدی ایجاد کنید یا بر اساس یک یا چند ستون آنها را مرتب کنید و نتایج دلخواه را بهدست آورید.
- تبدیل و تغییر فرمت دادهها: پانداس امکانات متنوعی برای تبدیل و تغییر فرمت دادهها فراهم میکند. با استفاده از توابعی مثل astype میتوانید نوع دادهها را تغییر داده و با استفاده از توابعی مثل apply و map تبدیلات سفارشی روی دادهها اعمال کنید.
- پردازش دادههای ناقص: پانداس امکاناتی برای حل مشکل دادههای ناقص یا ازدسترفته ارائه میکند. تابع fillna اجازه میدهد مقادیر ازدسترفته را با مقادیر دلخواه یا محاسبهشده جایگزین کنید.
- گروهبندی و تحلیل دادهها: با استفاده از پانداس میتوانید دادهها را بر اساس یک یا چند ستون گروهبندی کرده و محاسبات آماری و تحلیلی روی هر گروه انجام دهید. توابعی مثل groupby و agg امکانات گستردهای برای تحلیل دادهها ارائه میدهند.
- ترسیم نمودارها: پانداس توابعی مثل plot و hist ارائه میکند که اجازه ترسیم دادهها بهصورت نمودارهای خطی، نمودارهای نقطهای، هیستوگرام و سایر نمودارهای تحلیلی را میدهد.
مثالی از نحوه استفاده از پانداس در آمادهسازی دادهها
فرض کنید میخواهیم دادههایی را که شامل اطلاعات یک فروشگاه آنلاین است، پردازش کنیم. دادهها در فرمت CSV قرار دارند و شامل ستونهایی مانند تاریخ، محصول، قیمت و تعداد هستند. فرآیند انجام اینکار بهشرح زیر است:
1. خواندن دادهها
قبل از هر چیز، باید دادهها را از فایل CSV بخوانیم و در یک شیء DataFrame قرار دهیم:
import pandas as pd
# خواندن دادهها از فایل CSV
df = pd.read_csv(‘data.csv’)
2. ارزیابی سریع دادهها
اکنون میتوانیم بهسرعت نمونهای از دادهها را بررسی کنیم تا با ساختار و محتوای آنها آشنا شویم:
# نمایش 5 ردیف اول
print(df.head())
3. فیلتر کردن دادهها
فرض کنید میخواهیم تمام ردیفهایی را که قیمت محصول بیشتر از 100 دلار دارند انتخاب کنیم.
# فیلتر کردن بر اساس شرط
filtered_df = df[df['قیمت'] > 100]
4. ترتیب دادهها
در نظر داریم دادهها را بر اساس ستونی خاصی مانند تاریخ مرتب کنید:
# ترتیب دادهها بر اساس ستون "تاریخ”
sorted_df = df.sort_values(by=’تاریخ’)
5. گروهبندی و محاسبات آماری
اکنون قصد داریم دادهها را بر اساس ستونی مانند محصول گروهبندی کنیم و محاسبات آماری مانند میانگین قیمت هر محصول را انجام دهیم.
# گروهبندی بر اساس ستون "محصول" و محاسبه میانگین قیمت
grouped_df = df.groupby('محصول')['قیمت'].mean()
6. ذخیره دادههای پردازششده
اکنون وقت آن رسیده تا دادههای پردازششده را در یک فایل جدید ذخیره کرد.
# ذخیره کردن دادههای پردازششده در فایل CSV
grouped_df.to_csv(‘processed_data.csv’)
قطعه کد بالا مثالی ساده از نحوه استفاده از پانداس در فرآیند آمادهسازی دادهها است. پانداس امکانات فراوانی برای تحلیل و پردازش دادهها ارائه میکند و میتوانید با استفاده از توابع و قابلیتهای مختلف آن، دادهها را بهصورت گستردهتری پردازش و تحلیل کنید.
چگونه میتوانیم دادههای پردازششده را بررسی کنیم و نتایج را مشاهده کنیم؟
پس از پردازش دادهها با استفاده از پانداس، میتوانید نتایج را بررسی کنید و آنها را مشاهدهپذیر کنید. روشهای مختلفی برای این منظور بهشرح زیر وجود دارد:
1.استفاده از توابع نمایشی
پانداس توابع نمایشی مختلفی دارد که اجازه میدهد دادهها را بهصورت تجمیعشده یا جزئی مشاهده کنیم. برخی از این توابع بهشرح زیر هستند:
- head: نمایش چند ردیف اول دادهها.
- tail: نمایش چند ردیف آخر دادهها.
- sample: نمایش نمونهای تصادفی از دادهها.
- describe: ارائه آمارهای توصیفی برای ستونهای عددی.
- value_counts: شمارش تعداد مقادیر یکتا در یک ستون.
با فرض اینکه دادهها را پردازش کردهایم و به نتیجهای بهنام processed_data رسیدهایم، میتوانیم از توابع نمایشی برای مشاهده نتایج بهشرح زیر استفاده کنیم:
# نمایش چند ردیف اول دادههای پردازششده
print(processed_data.head())
# نمایش آمارههای توصیفی برای ستون قیمت
print(processed_data[‘قیمت’].describe())
2. رسم نمودارها
یک راه موثر برای مشاهده دادههای پردازششده، استفاده از نمودارها است. پانداس امکانات گستردهای برای رسم نمودارهای مختلف ارائه میدهد. برخی از توابع رسم نمودار در پانداس بهشرح زیر هستند:
- plot: رسم نمودارهای خطی.
- bar: رسم نمودارهای میلهای.
- hist: رسم نمودارهای توزیع فراوانی.
- boxplot: رسم نمودارهای جعبهای.
فرض کنید میانگین قیمت هر محصول را در یک DataFrame بهنام grouped_df محاسبه کردهایم و میخواهیم آن را بهصورت نمودار مشاهده کنیم. فرآیند انجام اینکار بهشرح زیر است:
import matplotlib.pyplot as plt
# رسم نمودار میانگین قیمت هر محصول
grouped_df.plot(kind=’bar’)
plt.xlabel(‘محصول’)
plt.ylabel(‘میانگین قیمت’)
plt.title(‘میانگین قیمت هر محصول’)
3. نمایش دادهها در جداول قالببندیشده
میتوانید دادهها را در جداول قالببندی شده مشاهده کنید. برای این کار، میتوانید از توابعی مانند to_string یا to_html استفاده کنید. این توابع دادهها را بهصورت متنی یا HTML قالببندیشده برمیگردانند. فرآیند فوق بهشرح زیر است:
# نمایش دادههای پردازششده در قالب جدول متنی
print(processed_data.to_string())
# نمایش دادههای پردازششده در قالب جدول HTML
html_table = processed_data.to_html()
با استفاده از توابع بالا، میتوانید دادههای پردازششده را بهصورت مشاهدهپذیر و در قالبی مناسب بررسی کنید.
dataframe indexes در پانداس به چه معنا است؟
در پانداس، DataFrame Indexes به معنای ستون یا مجموعهای از برچسبها است که به هر ردیف اختصاص پیدا میکند. هر ردیف در یک DataFrame با استفاده از یک شاخص شناسایی میشود. شاخصها برای دسترسی سریعتر به دادهها، جستوجوها، ترتیببندی و عملیاتهای دیگر روی دادهها استفاده میشوند. در پانداس، هر DataFrame یک شاخص پیشفرض دارد که از اعداد صحیح از 0 تا n-1 (جایی که n تعداد ردیفها است) تشکیل میشود و به آن شاخص عددی ردیفمحور (numeric row-based index) گفته میشود، اما میتوانید یک شاخص سفارشی برای DataFrame خود تعریف کنید که میتواند شامل برچسبهای متنی، تاریخها، شناسهها و غیره باشد. این شاخص سفارشی بهعنوان یک ستون در DataFrame قرار میگیرد و به آن ردیفهای برچسبمحور (label-based rows)
گفته میشود. با استفاده از شاخصها، میتوانید بهصورت مستقیم روی ردیفها عملیات انجام دهید، بهطور مثال، با استفاده از برچسب یا شماره ردیف میتوانید به دادههای مرتبط دسترسی پیدا کنید. همچنین، میتوانید عملیاتهایی مانند ترتیببندی، انتخاب ردیفها بر اساس شرایط خاص، ادغام دادهها بر اساس شاخص و سایر عملیات را انجام دهید.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.


























نظر شما چیست؟