نرمال سازی داده
آموزش‌های پیشرفته هوش مصنوعیداده کاوی و بیگ دیتا

نرمال سازی داده به کمک کتابخانه scikit-learn

    0
    مدت زمان مطالعه: ۳ دقیقه

    در مقاله آموزشی پیش‌رو، شیوه نرمال سازی داده‌ها در کتابخانه پایتون scikit-learn  را با یکدیگر بررسی می‌کنیم. همان‌گونه که پیش از این نیز گفتیم، نرمال سازی داده به فرایندی گفته می‌شود که طی آن مقیاس داده‌ها یکسان‌سازی می‌شود.

    عملیات نرمال سازی داده فقط بر روی ستون‌هایی اجرا می‌شود که مقادیر عددی را در خود جای داده‌اند. پنج متد نرمال سازی عبارتند از:

    • مقیاس‌بندی ویژگی Single feature scaling
    • کمینه بیشینه Min max
    • نمره Z-score z
    • مقیاس‌بندی لگاریتمی Log scaling
    • کوتاه‌سازی Clipping

    در مقاله آموزشی پیش‌رو برای انجام عملیات نرمال سازی داده از کتابخانه scikit-learn  استفاده می‌کنیم. برای انجام این پروژه از همان دیتاست قبلی استفاده می‌کنیم تا بتوانیم نتایج را با یکدیگر مقایسه کنیم. البته با استفاده از این دو متد به نتایج یکسانی دست پیدا خواهیم کرد.

    در این مقاله دو متد مقیاس‌بندی لگاریتمی و کوتاه‌سازی را معرفی نمی‌کنیم و در مقالات آتی به آن‌ها خواهیم پرداخت.

    همان‌گونه که قبلا توضیح داده شد، از کتابخانه scikit-learnبرای حل مشکل مقادیر گمشده هم می‌توان استفاده کرد.

    تمامی عملیات‌های scikit-learn  که در این مقاله آموزشی توضیح خواهیم داد، طبق مراحل زیر عمل می‌کنند:

    • انتخاب متد پیش‌پردازش
    • برازش آن بر روی تابع ()fit
    • اجرای آن بر روی داده‌ها با استفاده از تابع ()transform

    کتابخانه scikit-learn  فقط با آرایه‌ها کار می‌کند و به همین دلیل در زمان اجرای هر یک از این عملیات‌ها باید ستون دیتافریم را به یک آرایه تبدیل کنیم. برای انجام این کار می‌توانیم از تابع ()numpy.array  استفاده کنیم که ورودی آن ستون‌های دیتافریم است. ورودی تابع ()fit  آرایه‌ای از آرایه‌ها است و هر کدام از این آرایه‌ها نماینده نمونه‌ای از دیتاست است. برای تبدیل یک آرایه استاندارد به آرایه‌ای از آرایه‌ها می‌توانیم از تابع ()reshape  استفاده کنیم.

    بارگذاری داده‌ها

    برای انجام پروژه حاضر از دیتاست ارائه شده از سوی نهاد Protexione Civile (واقع در ایتالیا) استفاده می‌کنیم؛ این دیتاست شامل آمار مبتلایان به ویروس کووید ۱۹ ( از زمان شیوع این ویروس تا به امروز) است. این دیتاست روزانه به‌روز رسانی می‌شود.

    ابتدا باید کتابخانه pandas  را بارگذاری کنیم و دیتاست را به کمک تابع ()read_csv  بخوانیم. در گام بعدی باید تمامی ستون‌های حاوی مقادیر NaN را حذف کنیم. برای این منظور می‌توانیم از تابع ()dropna استفاده کنیم.

    نرمال سازی داده

    مقیاس‌بندی ویژگی

    در روش مقیاس‌بندی ویژگی تمامی مقادیر موجود در یک ستون به اعدادی بین ۰ و یک تبدیل می‌شود. برای محاسبه مقدار جدید، مقدار کنونی را بر مقدار بیشینه (بزرگ‌ترین) ستون تقسیم می‌کنیم. برای انجام این کار می‌توانیم از کلاس MaxAbsScaler استفاده کنیم. مقیاس‌بند (Scaler) را بر روی ستون tamponi اعمال می‌کنیم چرا که باید به یک آرایه تبدیل شود و تغییر شکل دهد.

    در این مرحله می‌توانیم مقیاس‌بند را fit کرده و عملیات transformation را انجام دهیم. با اجرای تابع ()reshape ، مقیاس‌بند را به شکل اصلی تغییر می‌دهیم و نتیجه به دست آمده را در یک ستون جدید از دیتافریم df ذخیره می‌کنیم.

    در ضمن کتابخانه‌ scikit-learn  تابعی دارد که از طریق آن می‌توانیم مقادیر اصلی را، با توجه به تغییراتی که در داده حاصل شده،  بازیابی کنیم. این تابع در عملیات تغییرشکل که در ادامه مقاله به آن خواهیم پرداخت نیز کاربرد دارد.

    و خروجی آن بدین شکل است:

    کمینه بیشینه

    در این متد نیز همانند مقیاس‌بندی ویژگی، تمامی مقادیر یک ستون به اعدادی بین ۰ و ۱ تبدیل می‌شوند. اینگونه که برای محاسبه مقدار جدید، مقدار کمینه  را از مقدار کنونی کم می‌کنیم و سپس مقدار به دست آمده را بر دامنه مقادیر موجود در ستون تقسیم می‌کنیم. در کتابخانه

    scikit-learn  برای انجام این عملیات ریاضی از کلاس MinMaxScaler  استفاده می‌کنیم. برای مثال می‌توانیم این روش را بر روی ستون totale_casi  اعمال و اجرا کنیم.

    نمره z

    نمره z تمامی مقادیر موجود در یک ستون را به عددی در حدود ۰ تبدیل می‌کند. اعداد حاصل از روش نمره z اغلب بین ۳- و ۳ هستند. در این روش برای محاسبه مقدار جدید، مقدار میانگین از مقدار کنونی کم می‌شود و مقدار حاصل بر انحراف معیار تقسیم می‌شود. در کتابخانه scikit-learn  برای انجام این عملیات ریاضی می‌توانیم از تابع StandardScaler  استفاده کنیم. برای مثال فرض کنید می‌خواهیم نمره z ستون deceduti را محاسبه کنیم:

    جمع‌بندی

    در این مقاله به شما نشان دادیم که چگونه می‌توان با استفاده از پکیج preprocessing کتابخانه scikit-learn ، یک دیتاست را نرمال سازی کنیم. اگر تصمیم دارید عملیات نرمال سازی داده را به صورت دستی انجام دهید، می‌توانید از فرمول‌هایی که در مقاله‌های قبلی ارائه شده، استفاده کنید.

    از جمله مزایای استفاده از کتابخانه scikit-learn  می‌توان به موارد زیر اشاره کرد:

    • لازم نیست از قبل فرمول‌ها را یاد بگیرید، چرا که این کتابخانه دارای کلاس‌هایی است که از پیش دسته‌بندی شده‌اند و برای انجام عملیات‌های مختلف می‌توانید از آن‌ها استفاده کنید.
    • با اجرای تابع ()inverse_transform  می‌توانید داده‌های اصلی را بازیابی کنید.
    این مطلب چه میزان برای شما مفید بوده است؟
    [کل: ۱ میانگین: ۱]

    Kaggle و پروژه‌ای یکپارچه برای رقابت‌های آن: پیش‌بینی قیمت املاک با استفاده از یادگیری ماشین

    مقاله قبلی

    آیا توسعه‌دهندگان نرم‌افزارهای هوش مصنوعی یونیکد را در نظر می‌گیرند؟

    مقاله بعدی

    شما همچنین ممکن است دوست داشته باشید

    نظرات

    پاسخ دهید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *