مقدمه

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

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

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

یادگیری ماشین چگونه کار می‌کند؟

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

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

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

  1. جمع‌آوری داده‌ها

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

  2. پردازش و آماده‌سازی داده‌ها

    داده‌های خام معمولاً نامرتب، ناقص یا دارای اطلاعات غیرضروری هستند. بنابراین، باید آن‌ها را تمیز، اصلاح و به فرم مناسبی تبدیل کنیم تا مدل بتواند به‌درستی از آن‌ها استفاده کند.

  3. آموزش مدل (Training)

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

  4. ارزیابی و بهبود مدل

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

این چهار گام، اساس کار یادگیری ماشین را تشکیل می‌دهند. در ادامه، جزئیات بیشتری از این جهار گام و روش اجرای آنها بیان خواهیم کرد.

گام اول: جمع‌آوری داده‌ها

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

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

انواع داده‌ها در یادگیری ماشین

داده‌ها در یادگیری ماشین می‌توانند فرمت‌های مختلفی داشته باشند و بسته به نوع مسئله‌ی موردنظر، باید داده‌های مناسب را جمع‌آوری کنیم. این داده‌ها معمولاً به چهار دسته‌ی اصلی تقسیم می‌شوند:

  • داده‌های عددی: مثل دمای هوا، قیمت سهام، فشار خون، سطح کلسترول
  • داده‌های متنی: مثل نظرات کاربران در شبکه‌های اجتماعی، پیام‌های ایمیل، پرونده‌های پزشکی
  • تصاویر و ویدئو: مثل عکس‌های پزشکی برای تشخیص بیماری، تصاویر محصولات در فروشگاه‌های آنلاین
  • صوت و گفتار: مثل فرمان‌های صوتی که در دستیارهای هوشمند ( مانند Siri و Google Assistant) استفاده می‌شوند

روش‌های جمع‌آوری داده‌ها

جمع‌آوری داده‌ها به دو روش کلی انجام می‌شود:

  • جمع‌آوری دستی

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

  • جمع‌آوری خودکار

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

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

مثال: چگونه یک مدل یادگیری ماشین برای پیش‌بینی بیماری قلبی ساخته می‌شود؟

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

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

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

در مراحل بعدی، این مثال را در گام‌های دیگر یادگیری ماشین (پردازش داده‌ها، آموزش مدل و ارزیابی آن) دنبال خواهیم کرد تا ببینیم چگونه این مدل تکمیل می‌شود.

گام دوم؛ پردازش و آماده‌سازی داده‌ها

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

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

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

مثال: پردازش داده‌ها در مدل پیش‌بینی بیماری قلبی

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

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

  • مشکل اول - داده‌های ناقص: برخی بیماران فشار خونشان ثبت نشده است. راه‌حل این است که یا مقدار میانگین فشار خون سایر بیماران را جایگزین کنیم یا این نمونه‌ها را حذف کنیم.
  • مشکل دوم - داده‌های پرت: در میان داده‌ها، یک بیمار ۱۵۰ سال سن دارد! این مقدار غیرمنطقی است و باید حذف شود.
  • مشکل سوم - داده‌های ناسازگار: در برخی موارد، مقدار کلسترول بر حسب میلی‌گرم در دسی‌لیتر و در برخی موارد مول بر لیتر ثبت شده است. برای اینکه مدل بتواند به‌درستی این داده‌ها را پردازش کند، باید همه‌ی این مقادیر را به یک واحد استاندارد تبدیل کنیم.
  • مشکل چهارم - داده‌های تکراری: اطلاعات برخی از بیماران چندین بار تکرار شده‌اند، بنابراین باید این داده‌ها را حذف کنیم تا مدل دچار اشتباه نشود.

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

گام سوم: آموزش مدل

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

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

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

انواع مدل‌های یادگیری ماشین

در یادگیری ماشین، به طور کلی دو روش اصلی برای آموزش مدل وجود دارد که بسته به نوع داده‌ها و نوع مسئله‌ای که می‌خواهیم حل کنیم، یکی از این روش‌ها انتخاب می‌شود. این روش‌ها عبارت‌اند از:

  1. یادگیری نظارت‌شده – (Supervised Learning)

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

    • به مدل هزاران ایمیل نشان می‌دهیم که برخی از آن‌ها برچسب "اسپم" و برخی دیگر برچسب "غیر اسپم" دارند.
    • مدل این ایمیل‌ها را بررسی می‌کند و الگوهایی پیدا می‌کند که نشان می‌دهد چه چیزی یک ایمیل را اسپم می‌کند.
    • مثلاً مدل ممکن است متوجه شود که ایمیل‌هایی که شامل کلماتی مثل "پیشنهاد ویژه!"، "شما برنده شدید!" یا "همین حالا کلیک کنید!" هستند، معمولاً اسپم در نظر گرفته می شوند.
    • پس از آموزش، مدل می‌تواند ایمیل‌های جدیدی که قبلاً ندیده است بررسی کند و پیش‌بینی کند که آیا آن‌ها اسپم هستند یا خیر.

    اسپم چیست؟

    ایمیل‌های اسپم، پیام‌های ناخواسته‌ای هستند که معمولاً تبلیغاتی، کلاهبرداری یا بی‌ربط به کاربر هستند. بسیاری از سرویس‌های ایمیل (مانند Gmail و Yahoo) از یادگیری ماشین برای تشخیص و مسدود کردن این ایمیل‌ها استفاده می‌کنند.

    به طور کلی، یادگیری نظارت‌شده در مواردی کاربرد دارد که داده‌ها دارای برچسب یا خروجی مشخص باشند. مانند:

    • تشخیص ایمیل‌های اسپم
    • پیش‌بینی قیمت خانه بر اساس متراژ و موقعیت مکانی
    • تشخیص بیماری از روی اسکن پزشکی
  2. یادگیری بدون نظارت – (Unsupervised Learning)

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

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

    تفاوت اصلی یادگیری بدون نظارت با یادگیری نظارت‌شده این است که مدل از قبل نمی‌داند که چه گروه‌هایی وجود دارند، بلکه خودش آن‌ها را پیدا می‌کند. در کل یادگیری بدون نظارت در مواردی کاربرد دارد که داده ها دارای برچسب یا لیبل نیستند مانند:

    • دسته‌بندی مشتریان در فروشگاه‌های آنلاین برای ارائه پیشنهادهای مناسب
    • کشف رفتارهای غیرعادی، مثل شناسایی تراکنش‌های تقلبی در بانک‌ها
    • تحلیل و گروه‌بندی مقالات خبری بر اساس موضوعات مشابه

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

انتخاب الگوریتم مناسب برای آموزش مدل

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

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

برخی از الگوریتم‌های پرکاربرد در یادگیری ماشین عبارت‌اند از:

  • الگوریتم‌های رگرسیون (مانند رگرسیون خطی) برای پیش‌بینی مقادیر عددی
  • الگوریتم‌های دسته‌بندی (مانند درخت تصمیم و SVM) برای تعیین گروه‌های داده
  • الگوریتم‌های یادگیری بدون نظارت (مانند K-Means) برای کشف الگوها در داده‌های بدون برچسب
  • الگوریتم‌های یادگیری عمیق (مانند شبکه‌های عصبی مصنوعی) برای حل مسائل پیچیده مثل پردازش تصویر و تشخیص گفتار

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

گام چهارم: ارزیابی مدل

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

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

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

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

سنجش عملکرد مدل (Model Performance Metrics)

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

  • دقت (Accuracy) – درصد پیش‌بینی‌های صحیح

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

  • دقت مثبت (Precision) – درصد پیش‌بینی‌های صحیح از پیش‌بینی‌های مثبت

    دقت مثبت نشان می‌دهد که زمانی که مدل پیش‌بینی می‌کند چیزی "مثبت" است، چقدر از این پیش‌بینی‌ها واقعاً صحیح بوده‌اند. در واقع، این معیار به ما می‌گوید که پیش‌بینی‌های مثبت مدل تا چه حد دقیق بوده‌اند. فرض کنید مدل ۲۰ ایمیل را به عنوان "اسپم" پیش‌بینی کرده است و ۱۸ تای آن‌ها درست بوده‌اند. دقت مثبت مدل نشان می‌دهد که از تمامی پیش‌بینی‌های "اسپم" چقدر از آن‌ها واقعاً اسپم بودند.

  • حساسیت (Recall) – درصد پیش‌بینی‌های صحیح از داده‌های مثبت واقعی

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

  • امتیاز F1 یا (F1-Score)

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

  • میزان خطا (Error Rate) – درصد پیش‌بینی‌های غلط

    میزان خطا معیاری است که نشان می‌دهد مدل چقدر پیش‌بینی‌های غلط انجام داده است. این معیار به ما کمک می‌کند تا بفهمیم که مدل چقدر اشتباه کرده است. مثلا اگر مدل ۱۰۰ پیش‌بینی انجام داده باشد و ۲۵ پیش‌بینی آن اشتباه باشد، میزان خطا به این معناست که ۲۵ درصد از پیش‌بینی‌ها غلط بوده‌اند. برای ارزیابی دقیق‌تر عملکرد مدل، باید از ترکیب این معیارها استفاده کنیم. هر معیار اطلاعات خاصی را به ما می‌دهد و بسته به نوع مسئله، برخی از آن‌ها از دیگران مهم‌تر خواهند بود

  • اگر نیاز داریم که دقت پیش‌بینی‌ها مهم باشد، دقت مثبت را در نظر می‌گیریم.
  • اگر مسئله‌ی ما نیاز به شناسایی همه داده‌های مثبت دارد، حساسیت مهم‌تر خواهد بود.
  • امتیاز F1 در مواقعی که داده‌های مثبت و منفی نابرابر هستند، عملکرد کلی مدل را بهتر نمایش می‌دهد.

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

ارزیابی مدل پیش‌بینی بیماری قلبی

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

  1. تقسیم داده‌ها به مجموعه‌های آموزش و تست

    ابتدا داده‌ها را به دو بخش تقسیم می‌کنیم:

    • مجموعه‌ی آموزش (Train Set): این مجموعه به مدل داده می‌شود تا الگوهای موجود در آن را یاد بگیرد.
    • مجموعه‌ی تست (Test Set): این مجموعه داده‌ها به مدل داده نمی‌شود تا پس از آموزش، عملکرد آن را در پیش‌بینی داده‌هایی که قبلاً ندیده است، ارزیابی کنیم.

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

  2. آموزش مدل با داده‌های آموزش

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

  3. پیش‌بینی مدل روی داده‌های تست

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

  4. مقایسه پیش‌بینی‌ها با واقعیت

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

هدف ارزیابی

برای ارزیابی عملکرد مدل، از معیارهایی مثل دقت (Accuracy)، حساسیت (Recall) و دقت مثبت (Precision) استفاده می‌کنیم تا بررسی کنیم که چقدر مدل پیش‌بینی‌های درستی داشته است.

  • دقت (Accuracy): درصد پیش‌بینی‌های صحیح نسبت به کل پیش‌بینی‌ها
  • حساسیت (Recall): میزان موفقیت مدل در شناسایی موارد مثبت واقعی (مثلاً بیمارانی که واقعاً در معرض بیماری قلبی هستند)
  • دقت مثبت (Precision): درصد پیش‌بینی‌های صحیح از بین پیش‌بینی‌هایی که مدل به عنوان "مثبت" (در معرض بیماری قلبی) شناسایی کرده است.

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

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

  • تغییر الگوریتم یا پارامترهای آن
  • استفاده از داده‌های بیشتر برای آموزش
  • استفاده از تکنیک‌های پیشرفته مانند انتخاب ویژگی‌ها یا تنظیم‌های بیشتر

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

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