یادگیری ماشین

آموزش رایگان ماشین لرنینگ جلسه 5

نحوه دسترسی به دیتاست

توی این جلسه قراره درباره این موضوع صحبت کنیم که چطور به دیتاست ها دسترسی پیدا کنیم. همونطور که تا الان زیاد تکرار کردیم، زمینه ماشین لرنینگ به شدت به مجموعه داده‌ها یا همون دیتاست وابسته است، و از این دیتاست ها برای آموزش مدل‌ها و ایجاد پیش‌بینی‌های دقیق استفاده می کنه.

دیتاست ها نقش حیاتی در موفقیت پروژه‌های هوش مصنوعی (همون AI) و ماشین لرنینگ (همون ML) دارند، و برای تبدیل شدن به یه دانشمند داده ماهر ضروری هستند. در این قسمت از دوره ماشین لرنینگ، اولا میخوایم انواع مختلف دیتاست ها که در یادگیری ماشین استفاده می‌شه رو بررسی کنیم، و دوما یه راهنمای دقیق در مورد محل پیدا کردن اونها بهتون بگم.

حالا اول از هر چیزی این سوال رو پاسخ بدیم که دیتاست چیه؟

دیتاست ها مجموعه‌ای از داده‌ها هستند که به شکل خاصی کنار هم مرتب شده اند. دیتاست ها می‌تونن شامل هر نوع داده‌ای باشند، مثلا یک سری اعداد که مرتب پشت سر هم آورده شدن (که بهشون آرایه هم میگن) یا جدولی از داده های مختلف. جدول زیر نمونه‌ای از یک مجموعه داده رو نشون میده:

   Country         Age       Salary     Purchased     ID

1                 India                 38         48000           No

2              France              43        45000           Yes

3               Germany        30        54000            No

4               France             48        65000             No

دیتاست بالا شامل اطلاعات 4 نفر هستن که ویژگی هر یک از اونها رو در یک ردیف قرار داده. مثلا فردی با آیدی شماره 1 ویژگی های کشور (Country)، سن (Age)، درآمد (Salary) و اینکه آیا از یه فروشگاه خاص خرید کرده یا نه (Purchased) آماده شده. جدول بالا شامل 4 ردیف و 5 ستون هست. به هر ردیف، یک سمپل یا نمونه در دیتاست گفته میشه و هر ستون یک ویژگی یا فیچر (Feature) برای این دیتاست هست. پس این دیتاست شامل 4 سمپل با 5 فیچر هست.

فعلا متوجه شدیم که منظور از دیتاست چیه. حالا اینو بررسی کنیم که انواع داده هایی که توی یک دیتاست وجود داره، ممکنه به چه شکل هایی باشه.

انواع داده‌ها در دیتاست

  1. داده‌های عددی یا Numerical Data
    • مانند قیمت خونه (مثلا 20,000,000، که یه داده عددیه و البته کلی صفردیگه!)، دما (مثلا 40، اینم عدده دیگه).
  2. داده‌های دسته‌ای یا Categorical Data
    • مانند بله/خیر(مثل جدول بالا که ستون خرید رو بله و خیر گفته)، مرد/زن، گروه خونی و غیره.
  3. داده‌های ترتیبی یا Ordinal Data
    • این داده‌ها مشابه داده‌های کتگوریکال هستند اما میشه اونارو بر اساس مقایسه اندازه‌گیری کرد. مثلا مدرک تحصیلی ترتیب داره و کتگوریکال ه: دیپلم، فوق دیپلم، لیسانس، فوق لیسانس، دکتری.

حواسمون باشه که یه دیتاست دنیای واقعی اندازه بزرگی داره (و جدول بالا فقط یه قسمت کوچیک بود که درکش کنیم چیه)، و مدیریت و پردازش اون توی نگاه اول خیلی دشوار ه. بنابراین، برای تمرین الگوریتم‌های ماشین لرنینگ، می‌تونیم از هر مجموعه داده ساختگی استفاده کنیم.

انواع دیتاست

ماشین لرنینگ شامل حوزه‌های مختلفیه که هر کدوم به انواع خاصی از دیتاست ها نیاز دارند. برخی از انواع معمول دیتاست ها که در یادگیری ماشین استفاده می‌شن عبارتند از:

مجموعه داده‌های تصویری  (Image Datasets)

مجموعه داده‌های تصویری شامل مجموعه‌ای از تصاویر هستند و معمولاً در وظایف بینایی کامپیوتر (computer vision) مانند طبقه‌بندی تصویر (image classification)، تشخیص اشیاء (object detection)، و تقسیم‌بندی تصویر (image segmentation) استفاده می‌شن. (این مواردی که الان انگلیسیشون رو هم نوشتم که بیشتر باهاشون آشنا بشید، یه سری کارهایی هست که تو زمینه ماشین لرنینگ میتونیم مدل بسازیم براشون، و حتما پس از این دوره با اینا آشنا میشید.)

مثال‌ها:

  • ImageNet: یه دیتاست هست که مجموعه‌ای بزرگ از تصاویر رو برای طبقه‌بندی تصویر فراهم می کنه.
  • CIFAR-10:  دیتاستی شامل 60,000 تصویر رنگی کوچک در 10 کلاس مختلف.
  • MNIST: شامل 70,000 تصویر دست‌نویس از ارقام 0 تا 9.

مجموعه داده‌های متنی (Text Datasets)

مجموعه داده‌های متنی شامل اطلاعات متنی، مانند مقالات، کتاب‌ها، یا پست‌های رسانه‌های اجتماعی هستند. این مجموعه داده‌ها در تکنیک‌های پردازش زبان طبیعی (NLP– Natural Language Processing) مانند تحلیل احساسات (sentiment analysis)، طبقه‌بندی متن (text classification)، و ترجمه ماشینی (machine translation) استفاده می‌شوند. (بازم یادآوری کنم که حوزه های بالایی که گفتم هر کدوم یه داستان داره توی دنیای هوش مصنوعی، که قرار نیست ما توی همه ی اونها متخصص بشیم. باید یه فیلد رو مشخص کنیم و جلو بریم. بعدا بیشتر راجع به اینا صبحت میکنیم. اصلا نترسید از این عبارات اگه واستون جدیده)

مثال‌ها:

  • Gutenberg Task dataset: یه دیتاست شامل کتاب‌های رایگان از پروژه گوتنبرگ.
  • IMDb film reviews dataset: شامل نقدهای فیلم از سایت IMDb برای تحلیل احساسات.

مجموعه داده‌های سری زمانی (Time Series Datasets)

مجموعه داده‌های سری زمانی شامل نقاط اطلاعاتی جمع‌آوری شده در طول زمان هستند. آنها معمولاً در پیش‌بینی، تشخیص ناهنجاری و تحلیل الگو استفاده می‌شن.

مثال‌ها:

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

مجموعه داده‌های جدولی (Tabular Datasets)

مجموعه داده‌های جدولی شامل اطلاعات سازمان‌یافته در قالب جداول یا صفحات گسترده هستند. دقیقا مثل همون مثال اول که یه جدول کشیدم. این مجموعه داده‌ها شامل سطرهایی هستند که نمونه‌ها یا آزمایش‌ها رو نشون می‌دن و ستون‌هایی که ویژگی‌ها یا مقادیر رو مشخص می کنه. مجموعه داده‌های جدولی برای وظایفی مانند رگرسیون (Regression) و طبقه‌بندی (Clasification) استفاده می‌شن.

حالا یه سوال (شاید تکراری): چه نیازی به دیتاست داریم؟

همون طور که فک کنم هزاربار گفتم، مجموعه داده‌های آماده و پیش‌پردازش شده برای پروژه‌های ماشین لرنینگ بسیار مهم هستند. این مجموعه داده‌ها پایه‌ای برای آموزش مدل‌های دقیق و قابل اعتماد فراهم می‌کنند. با این حال، کار با مجموعه داده‌های بزرگ میتونه چالش‌هایی از نظر مدیریت و پردازش ایجاد کنه. برای مقابله با این چالش‌ها، باید یه سری تاکتیک ها روی دیتاست انجام بدیم.

پیش‌پردازش داده‌ها

پیش‌پردازش داده‌ها یک مرحله اساسی در آماده‌سازی دیتاست ها برای ماشین لرنینگ ه. بخوام کلی بگم: این مرحله شامل تغییر داده‌های خام به یک قالب مناسب برای آموزش مدل ه؛ یعنی بلایی سر این دیتا بیاریم که برای آموزش مدل مناسب و سازگار باشه، و این نیست که دیتا رو هرچی داشتیم و پیدا کردیم به خورد الگوریتم ها بدیم تا مدل ساخته بشه.

 تکنیک‌های معمول پیش‌پردازش شامل: تمیز کردن داده‌ها برای حذف خطاها، استانداردسازی برای مقیاس‌بندی داده‌ها در یک محدوده خاص، مقیاس‌بندی ویژگی‌ها برای اطمینان از داشتن محدوده‌های مشابه ویژگی‌ها، و مدیریت مقادیر گم‌شده از طریق انتساب یا حذف آنها است. (هر یکی از این وارد که اسم بردم رو کامل جلسه بعد توضیح میدم)

تقسیم مجموعه داده‌ها

وقتی میخوایم یه پروژه ماشین لرنینگ انجام بدیم، مجموعه داده هایی که در اختیار داریم رو معمولاً (بعدا میگم چرا معمولا!) به دو بخش تقسیم می‌کنیم: مجموعه داده‌های آموزشی (Training Dataset) و مجموعه داده‌های تست (Test Dataset).

مجموعه داده‌های آموزشی، برای آموزش مدل یادگیری ماشین استفاده می‌شن؛ یعنی از کل داده ها قراره بخشی رو بزاریم که ازون طریق مدل رو آموزش بدیم (وقتی می گم مدل رو آموزش بدیم، یعنی اصل داستان ماشین لرنینگ رو انجام بدیم، که اینم به وقتش می رسیم یعنی چی)

مجموعه داده‌های تست، برای ارزیابی عملکرد مدل استفاده می‌شن؛ یعنی از کل داده ها یه بخشش رو میزاریم کنار و ازشون برای یاد دادن مدل استفاده نمیکنیم، تا وقتی مدل ساخته شد بیایم با این دیتا ها مدل رو بسنجیم، ببینیم مدلی که ساخته شده اصلا دقیق هست یا نه.

منابع معروف برای دیتاست های ماشین لرنینگ

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

  1. مجموعه داده‌های  Kaggle
    • Kaggle یکی از بهترین منابع برای ارائه مجموعه داده‌ها برای دانشمندان داده و یادگیرندگان ماشین ه. این سایت به کاربران اجازه می‌ده مجموعه داده‌ها رو به راحتی پیدا، دانلود و منتشر کنند. همچنین فرصتی برای همکاری با دیگر مهندسان یادگیری ماشین و حل مسائل دشوار علم داده فراهم می‌کنه تا کدها رو به اشتراک بزارن و ازش استفاده کنن.
    • برای رفتن به این سایت از این لینک استفاده کنید.
  2. مخزن یادگیری ماشین UCI
    • مخزن یادگیری ماشین UCI از سال 1987 به عنوان منبع مهمی برای محققان و مهندسان استفاده می‌شه. این مخزن شامل مجموعه بزرگی از دیتاست ها برای وظایف مختلف ماشین لرنینگ مانند رگرسیون، طبقه‌بندی و خوشه‌بندی ه.
    • لینک
  3. مجموعه داده‌ها از طریق AWS
    • میتونیم مجموعه داده‌های عمومی موجود از طریق منابع AWS را جستجو، دانلود و به اشتراک بزاریم. این دیتاست ها توسط سازمان‌های دولتی، پژوهشگران، کسب‌وکارها یا افراد مختلف فراهم شده و نگهداری می‌شن.
    • لینک
  4. موتور جستجوی دیتاست های گوگل:
    • مثل همیشه گوگل اینجا هم هست. یه موتور جستجوی دیتاست داره، که می تونید ازونجا دیتاست های مرتبط رو از منابع مختلف وب پیدا و به اونا دسترسی پیدا کنید.
    • لینک
  5. مجموعه داده‌های مایکروسافت:
    • مایکروسافت هم که نباید کم بیاره تو این بازی ها. مخزن “Microsoft Research Open Data” را با مجموعه‌ای از داده‌های رایگان در زمینه‌های مختلف از جمله پردازش زبان طبیعی، بینایی کامپیوتر و علوم خاص دامنه راه‌اندازی کرده.
    • لینک
  6. مجموعه داده‌های عمومی شگفت‌انگیز:
    • توی گیت هاب میتونید از آدرس زیر استفاده کنید. این منبع دیتاست های با کیفیت بالا رو به صورت مرتب که بر اساس موضوعات مختلف سازماندهی شده‌، فراهم می‌کنه. (البته این شگفت انگیر رو برای ترجمه awesome گذاشتم)
    • لینک
  7. مجموعه داده‌های دولتی:
  8. مجموعه داده‌های بینایی کامپیوتر:
    • وبسایت Visual data دیتاست های بزرگی رو که به صورت خاص برای بینایی کامپیوتر (Computer Vision) طراحی شده‌اند، ارائه می‌ده.
    • لینک
  9. مجموعه داده‌های Scikit-learn:
    • Scikit-learn، یک کتابخانه معروف ماشین لرنینگ در پایتون ه، که چندین دیتاست درون‌ساخته برای تمرین و آزمایش ارائه می‌ده. و البته کتابخونه های دیگه ای هم هستند که دیتاست آماده تو خودشون رو دارن که میتونیم بعدا استفاده کنیم. اینجا فقط اسم این کتابخونه معروف رو آوردم که وبسایتش رو ببینید.
    • لینک

این همه منبع بالا که گفتم جهت آشنایی با محیط های دانلود دیتاست های آماده بودند، و نیاز نیست همه اینارو تو ذهنتون نگه دارید. کافیه اگه دنبالش بودید بیاید و روی لینک ها کلیک کنید تا بهشون دسترسی پیدا کنید. کگل گزینه خوبیه معمولا و حتما بهش سر میزنید در ادامه. پس در حد یه بار خوندن و سر زدن به وبسایت های بالا رو تو این جلسه داشته باشید کافیه.

امیدوارم این جلسه هم براتون مفید بوده باشه.

برای یادگیری و دسترسی بهتر، فایل پی دی اف جلسه پنجم رو دانلود کنید.

تا جلسه بعد…

4 فکر در مورد “ آموزش رایگان ماشین لرنینگ جلسه 5

  1. زهرا گفت:

    عااالی بود. ممنون از این آموزش عالیتون. ممنونم که ادامه میدین این دوره رو

    1. cometomachine گفت:

      خوشحالم براتون مفید بوده. با انرژی که شما بدین قطعا ادامه میدیم

  2. hmd-dsht67 گفت:

    عافرین همین طور با زبان خودت اموزش میدی قابل فهم تر و جذاب تره.و قابلیت یادگیری در بهترین سطحه.اینجوری برو جلو دمت گرم.

    1. cometomachine گفت:

      خواهش میکنم. خوشحالم مفید بوده و تونستید باهاش ارتباط بگیرید

دیدگاهتان را بنویسید

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