6 مهر 1402
تهران، خیابان آزادی، تقاطع قریب
یادگیری ماشین

برگه تقلب الگوریتم‌های یادگیری ماشین

برگه تقلب ML

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

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

برگه تقلب یادگیری ماشین
برگه تقلب الگوریتم های یادگیری ماشین ارائه شده توسط LatinX در AI™. برای دانلود فایل پی دی اف کلیک کنید:
 https://github.com/latinxinai/AI-Educational-Resources/raw/master/CheatSheets/Machine%20Learning%20Cheat%20Sheet.pdf

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

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

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

از سوی دیگر، در یادگیری تحت نظارت یک “معلم” حضور دارد که با برچسب گذاری داده‌ها  برای کار، مسئول آموزش دادن ماشین است. در مرحله بعد، ماشین چند نمونه دریافت می‌کند که به آن اجازه می دهد نتیجه درستی ایجاد کند.

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

برای شروع، باید تعداد ابعادی را که با آنها درگیر هستید بدانید. این به معنی تعداد ورودی های مشکل شماست. (که به عنوان ویژگی‌ها  نیز شناخته می شوند). اگر با مجموعه داده بزرگ یا ویژگی‌های زیادی کار می‌کنید، می‌توانید الگوریتم کاهش ابعاد (Dimension Reduction algorithm ) را انتخاب کنید.

یادگیری بدون نظارت: کاهش ابعاد

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

تکنیک‌های به حداقل رساندن تعداد متغیرهای ورودی در داده‌های آموزشی، «کاهش ابعاد» نامیده می‌شود.

اکنون برای ادامه کار، باید با مفهوم استخراج ویژگی و انتخاب ویژگی آشنا شوید.

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

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

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

الگوریتم PCA (تجزیه و تحلیل مؤلفه اصلی)

PCA یک الگوریتم ریاضی برای کاهش ابعاد مجموعه داده‌ها، به منظور ساده‌سازی تعداد متغیرها و در عین حال حفظ هر چه بیشتر اطلاعات است. این «مبادله دقت» برای سادگی یافتن الگوهای گسترده در مجموعه داده‌ها ی بزرگ استفاده می‌شود.

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

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

اگر با داده‌ها ی غیر احتمالی کار می کنید، باید از الگوریتم تجزیه ارزش واحد (Singular Value Decomposition algorithm  ) استفاده کنید.

الگوریتم SVD (تجزیه ارزش واحد)

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

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

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

الگوریتم LDA (تحلیل تشخیص خطی)

تحلیل تشخیص خطی (LDA) یک رویکرد طبقه‌بندی است که در آن دو یا چند گروه از قبل شناسایی شده‌اند. و مشاهدات جدید، بر اساس ویژگی‌هایشان در یکی از آن‌ها دسته‌بندی می‌شود.

این رویکرد با PCA متفاوت است. زیرا LDA یک فضای فرعی از ویژگی را کشف می‌کند که جداسازی گروه را بهینه می‌کند. در حالی که PCA لیبل کلاس را نادیده می‌گیرد و بر گرفتن بالاترین جهت واریانس در مجموعه داده تمرکز می‌کند.

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

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

الگوریتم LDA (تحلیل تشخیص خطی)
توزیع 170 تصویر چهره از پنج موضوع (کلاس) که به طور تصادفی از دیتابیس UMIST در (الف) فضای فرعی مبتنی بر PCA، (ب) فضای فرعی مبتنی بر D-LDA، و فضای فرعی مبتنی بر DF-LDA © انتخاب شده‌اند. منبع: (PDF) Face recognition using LDA-based algorithms (researchgate.net)

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

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

این فرآیند شامل روش‌های خوشه‌بندی، Regression و طبقه‌بندی است.

یادگیری بدون نظارت: خوشه‌بندی

خوشه‌بندی  تکنیکی برای جداسازی گروه‌های با ویژگی‌ها ی مشابه و تخصیص آنها به خوشه ها است.

اگر به دنبال یک الگوریتم سلسله مراتبی هستید:

الگوریتم خوشه‌بندی سلسله مراتبی

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

خوشه‌بندی تجمیعی (Agglomerative) یک رویکرد «از پایین به بالا» است. به بیان دیگر، ابتدا هر مورد به عنوان یک خوشه (leaf) تک عنصری در نظر گرفته می‌شود. دو خوشه که بیشترین شباهت را دارند، در هر مرحله از روش (nodes) به یک خوشه جدید بزرگ‌تر ملحق می شوند. این روش تا زمانی تکرار می‌شود که همه نقاط به یک خوشه بزرگ (root) تعلق داشته باشند.

خوشه‌بندی تقسیمی (Divisive) با روش «بالا به پایین» کار می‌کند. از ریشه شروع می‌شود، جایی که همه آیتم‌ها در یک خوشه گروه‌بندی می‌شوند، سپس در هر مرحله تکرار، متنوع‌ترین موارد را به دو دسته تقسیم می‌کند. این روش را تا زمانی تکرار کنید که همه موارد در گروه خود قرار بگیرند.

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

الگوریتم DBSCAN (خوشه‌بندی فضایی اپلیکیشن‌ها با Noise مبتنی بر چگالی)

وقتی صحبت از خوشه های دلخواه یا تشخیص داده‌های پرت می‌شود، بهتر است از خوشه‌بندی  مبتنی بر چگالی استفاده کنید. DBSCAN روشی برای تشخیص خوشه های arbitrary-shaped و خوشه های دارای Noise با گروه‌بندی  نقاط نزدیک به یکدیگر بر اساس دو پارامتر است: eps و minPoints.

eps گویای فاصله‌ای است که باید بین دو نقطه باشد تا به عنوان یک خوشه در نظر گرفته شوند. در حالی که minPoints حداقل تعداد نقاط برای ایجاد یک خوشه است.

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

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

در صورت نیاز به تعیین تعداد خوشه ها، سه الگوریتم وجود دارد که می توانید از آنها استفاده کنید: K-Modes، K-Means و Gaussian Mixture Model. در مرحله بعد، باید بدانید که آیا می‌خواهید با متغیرهای طبقه‌بندی کار کنید یا خیر. این متغیرها، متغیرهای گسسته‌ای هستند که پیامدهای کیفی را با گروه‌بندی مشاهدات (یا سطوح) دریافت می‌کنند. اگر می خواهید از آنها استفاده کنید، ممکن است K-Modes را انتخاب کنید.

الگوریتم K-Modes

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

تفاوت اصلی بین K-Modes و K-Means در این است که برای نقاط داده طبقه‌ای نمی‌توانیم فاصله را محاسبه کنیم. زیرا آنها مقادیر عددی نیستند.

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

برای داده‌ها ی عددی، باید از خوشه‌بندی  K-Means استفاده کنید.

الگوریتم K-Means

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

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

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

الگوریتم GMM (مدل مخلوط گاوسی)

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

GMM با K-means متفاوت است. زیرا در GMM نمی دانیم که یک نقطه داده متعلق به یک خوشه مشخص است یا خیر. از احتمال برای بیان عدم قطعیت استفاده می‌کنیم. در حالی که روش K-means در مورد مکان یک نقطه داده مطمئن است و شروع به تکرار در کل مجموعه داده می‌کند.

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

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

یادگیری تحت نظارت: Regression

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

در اینجا، باید تصمیم بگیرید که آیا سرعت را می‌خواهید یا دقت. اگر به دنبال سرعت هستید، می توانید از الگوریتم درخت تصمیم (Decision Tree) یا الگوریتم Regression خطی استفاده کنید.

الگوریتم درخت تصمیم (Decision Tree)

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

درخت‌های طبقه‌بندی  (Yes/No types) ، در اینجا متغیر تصمیم، طبقه‌بندی  شده است.

درخت‌های Regression (Continuous data types) ، که در آن تصمیم یا متغیر نتیجه، پیوسته است.

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

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

الگوریتم Regression خطی

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

Regression خطی برای مجموعه داده‌هایی که در آن ویژگی‌ها  و متغیر خروجی رابطه خطی دارند، ایده آل است.

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

از طرف دیگر، اگر برای الگوریتم خود نیاز به دقت دارید، می توانید از سه الگوریتم زیر استفاده کنید: شبکه Neural ، درخت تقویت کننده Gradient و جنگل تصادفی (Random Forest).

شبکه Neural

یک شبکه Neural برای یادگیری رابطه غیرخطی پیچیده بین ویژگی‌ها  و هدف مورد نیاز است. این الگوریتم عملکرد نورون‌ها را در مغز انسان شبیه‌سازی می‌کند. انواع مختلفی از شبکه‌های عصبی وجود دارند، از جمله شبکه Vanilla Neural (که فقط داده‌های ساختار‌یافته را مدیریت می‌کند)، و همچنین شبکه‌های Recurrent Neural و Convolutional Neural که هر دو می‌توانند با داده‌های بدون ساختار کار کنند.

هنگامی که داده‌ها ی زیادی دارید (و ظرفیت پردازش) و دقت برای شما مهم است، مطمئناً باید از یک شبکه Neural استفاده کنید.

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

الگوریتم درخت تقویت کننده Gradient

Gradient Boosting Tree روشی برای ادغام خروجی درخت‌های جداگانه برای انجام Regression یا طبقه‌بندی است. هر دو یادگیری تحت نظارت، برای کاهش خطر Overfitting از تعداد زیادی درخت تصمیم استفاده می‌کنند. (یک اشتباه مدل‌سازی آماری. این اشتباه زمانی اتفاق می‌افتد که یک تابع با تعداد به شدت کمی از نقاط داده تطبیق داده می‌شود و باعث کاهش قدرت پیش‌بینی مدل می‌شود). که هر درخت به تنهایی با آن روبرو می‌شود. این الگوریتم از Boosting استفاده می‌کند، که مستلزم ترکیب متوالی یادگیرندگان ضعیف (معمولاً درخت‌های تصمیم‌گیری تنها با یک تقسیم، معروف به کنده تصمیم) است، به طوری که هر درخت جدید عیوب درخت قبلی را تصحیح کند.

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

وقتی ابعاد کمتری در داده‌ها وجود دارد، یک مدل خطی پایه ضعیف عمل می‌کند، یا تفسیرپذیری حیاتی نیست، و یا این‌که محدودیت تأخیر دقیقی وجود ندارد، تقویت Gradient بسیار سودمند است.

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

الگوریتم Random Forest

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

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

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

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

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

یادگیری تحت نظارت : Classification

همانند روش های Regression، باید انتخاب کنید که بین سرعت یا دقت، کدام را برای نتایج خود ترجیح می دهید.

اگر به دنبال دقت هستید، علاوه بر Kernel Support-Vector Machine ، می‌توانید از الگوریتم‌های دیگری که پیشتر ذکر شد، مانند شبکه Neural ، درخت تقویت کننده Gradient و جنگل تصادفی استفاده کنید. حالا بیایید این الگوریتم جدید را معرفی کنیم.

الگوریتم Kernel Support-Vector Machine

برای زدن پلی میان خطی بودن و غیرخطی بودن، تکنیک Kernel  معمولاً در مدل Support-Vector Machine استفاده می‌شود. برای درک این موضوع، دانستن این نکته ضروری است که روش SVM یاد می‌گیرد که چگونه گروه‌های مختلف را با تشکیل مرزهای تصمیم جدا کند.

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

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

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

الگوریتم Logistic Regression

Logistic Regression زمانی استفاده می‌شود که متغیر وابسته Categorical باشد. این روش از طریق برآورد احتمالات، به درک ارتباط بین متغیرهای وابسته و یک یا چند متغیر مستقل کمک می‌کند.

سه نوع مختلف از Logistic Regression  وجود دارد:

  • 1- Logistic Regression  باینری، که در آن پاسخ فقط دو مقدار ممکن دارد.
  • 2- Logistic Regression  چندجمله‌ای، با سه یا چند نتیجه بدون ترتیب.
  • 3- Logistic Regression ترتیبی، با سه یا چند دسته ترتیب‌بندی شده.

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

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

الگوریتم Linear Support-Vector Machine

SVM خطی برای داده‌های قابل جداسازی خطی استفاده می‌شود. این روش در داده‌هایی با متغیرهای مختلف (داده‌های قابل جداسازی خطی) کار می‌کند که می‌توان آنها را با یک خط مستقیم ساده (linear SVM classifier) از هم جدا کرد. این خط مستقیم رفتار یا نتیجه کاربر را از طریق یک مشکل بیان شده نشان می‌دهد.

از آنجایی که متون اغلب به صورت خطی قابل تفکیک هستند و ویژگی‌های زیادی دارند، Linear SVM بهترین گزینه برای استفاده در طبقه‌بندی آن‌ها است.

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

الگوریتم Naïve Bayes

این الگوریتم بر اساس قضیه Bayes است. این روش شامل پیش‌بینی‌هایی از طریق احتمالات اشیاء است و به این دلیل Naïve یا ساده‌لوح نامیده می‌شود که فرض می‌کند ظاهر یک ویژگی با ظاهر ویژگی‌های دیگر ارتباطی ندارد.

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

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

تشخیص اسپم Gmail مجموعه‌ای از کلمات یا «توکن‌ها» را برای شناسایی ایمیل‌های اسپم انتخاب می‌کند (این روش در طبقه‌بندی متن نیز استفاده می‌شود و معمولاً به عنوان کیسه کلمات شناخته می‌شود). در مرحله بعد، آنها از آن توکن‌ها استفاده می‌کنند و آنها را با ایمیل‌های اسپم و غیر اسپم مقایسه می‌کنند. در نهایت با استفاده از الگوریتم Naive Bayes، احتمال اسپم بودن یا نبودن ایمیل محاسبه می‌شود.

نتیجه‌گیری

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

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

منبع: Medium     نویسنده: آنتونی باریوس

Leave feedback about this

  • کیفیت
  • قیمت
  • خدمات

PROS

+
Add Field

CONS

+
Add Field
Choose Image
Choose Video
X