در دنیایی که تقریباً تمام کارهای دستی اتوماتیک شدهاند، تعریف کارِ دستی در حال تغییر است. اکنون تعداد زیادی الگوریتم یادگیری ماشین وجود دارد که برخی از آنها میتوانند به کامپیوترها در مواردی چون بازی شطرنج، انجام جراحیها، هوشمندسازی و شخصیتر شدن چیزها کمک کنند.
ما در عصر پیشرفت مداوم فناوری زندگی میکنیم و با نگاه به اینکه محاسبات در طول سالها چقدر و چگونه پیشرفت کرده است، میتوانیم پیشبینی کنیم که در روزها و سالهای آینده چه اتفاقی میافتد.
یکی از ویژگیهای اصلی این انقلاب این است که چگونه ابزارها و تکنیکهای محاسباتی دموکراتیک شدهاند. مدیران ارشد داده در 5 سال گذشته با اجرای یکپارچه تکنیکهای پیشرفته، ماشینهای پیچیدهای برای خرد کردن دادهها ساختهاند. نتایج حاصل شگفت انگیز بوده است.
در چنین زمانهای پویایی، انواع مختلفی الگوریتم یادگیری ماشین برای کمک به حل مسائل پیچیده دنیای واقعی طراحی شدهاند. الگوریتمهای یادگیری ماشین در این دوره اتوماتیک و خود-اصلاحگر میشوند، تا در طول زمان به بهبود ادامه دهند. قبل از بررسی 10 الگوریتم برتر یادگیری ماشین که باید بدانید، بیایید نگاهی به انواع الگوریتم های یادگیری ماشین و نحوه طبقهبندی آنها بیاندازیم.
الگوریتم های یادگیری ماشین به 4 دسته طبقه بندی میشوند:
- یادگیری تحت نظارت
- بدون نظارت
- یادگیری نیمه نظارتی
- یادگیری تقویتی
با این حال، این چهار نوع الگوریتم یادگیری ماشین به دستههای بیشتری نیز طبقهبندی میشوند.
10 الگوریتم محبوب و برتر یادگیری ماشین کدامند؟
در زیر لیستی از 10 الگوریتم برتر و رایج یادگیری ماشین (ML) را میبینید:
- رگرسیون خطی (Linear regression)
- رگرسیون لجستیک (Logistic regression)
- درخت تصمیم (Decision tree)
- الگوریتم SVM (SVM algorithm)
- الگوریتم ساده بیز (Naive Bayes algorithm)
- الگوریتم KNN (KNN algorithm)
- K-means
- الگوریتم جنگل تصادفی (Random forest algorithm)
- الگوریتم های کاهش ابعاد (Dimensionality reduction algorithms)
- الگوریتم تقویت گرادیان و الگوریتم AdaBoosting (Dimensionality reduction algorithms)
یادگیری این الگوریتم های حیاتی چگونه میتواند مهارتهای شما را در یادگیری ماشین افزایش دهد؟
اگر مدیر ارشد داده یا علاقهمند به یادگیری ماشین هستید، میتوانید از این تکنیکها برای ایجاد پروژههای کاربردی یادگیری ماشین استفاده کنید.
سه نوع از محبوبترین الگوریتمهای یادگیری ماشین عبارتند از: یادگیری تحت نظارت، یادگیری بدون نظارت و یادگیری تقویتی (Reinforcement Learning). هر سه تکنیک در این لیست از 10 الگوریتم یادگیری ماشین رایج وجود دارند:
لیست الگوریتم های معروف یادگیری ماشین
1. رگرسیون خطی (Linear Regression)
برای درک عملکرد الگوریتم یادگیری ماشین رگرسیون خطی، تصور کنید که چگونه میتوانید تعدادی کندههای چوب تصادفی را به ترتیب وزنشان مرتب کنید. کار سختی نیست. اما این نکته را هم در نظر بگرید که شما نمیتوانید هر کنده را وزن کنید. شما باید وزن آن را فقط با نگاه کردن به ارتفاع و قطر چوب (تحلیل بصری) و مرتب کردن آنها با استفاده از ترکیبی از این پارامترهای قابل مشاهده حدس بزنید. رگرسیون خطی در یادگیری ماشین به این صورت است.
در این فرآیند بین متغیرهای مستقل و وابسته با برازش آنها در یک خط رابطه برقرار میشود. این خط به خط رگرسیون معروف است و با یک معادله خطی Y= a *X + b نشان داده میشود.
در این معادله:
- Y – متغیر وابسته
- a – ضریب انحراف (َشیب خطی)
- X – متغیر مستقل
- b – تابع Intercept
ضرایب a و b با به حداقل رساندن مجذور اختلاف فاصله بین نقاط داده و خط رگرسیون به دست میآیند.
2. رگرسیون لجستیک (Logistic Regression)
الگوریتم یادگیری ماشین رگرسیون لجستیک برای تخمین مقادیر گسسته (معمولا مقادیر باینری مانند 0/1) از مجموعهای از متغیرهای مستقل استفاده میشود. این به پیش بینی احتمال یک رویداد با برازش دادهها به یک تابع logit کمک میکند. به آن رگرسیون logit نیز می گویند.
روشهای ذکر شده در زیر اغلب برای کمک به بهبود مدلهای رگرسیون لجستیک استفاده میشوند:
- شامل اصطلاحات تعاملی (include interaction terms)
- از بین بردن ویژگیها (eliminate features)
- منظم کردن تکنیکها (regularize techniques)
- از مدل غیر خطی استفاده کنید (use a non-linear model)
3. Decision Tree
الگوریتم Decision Tree در یادگیری ماشین یکی از محبوبترین الگوریتمهایی است که امروزه مورد استفاده قرار میگیرد. این یک الگوریتم یادگیری تحت نظارت است که برای classify کردن مسائل استفاده میشود. این الگوریتم در classify کردن متغیرهای وابسته categorical و پیوسته به خوبی عمل میکند. این الگوریتم جامعه آماری را به دو یا چند مجموعه همگن بر اساس مهم ترین ویژگی ها/متغیرهای مستقل تقسیم میکند.
4. الگوریتم SVM (Support Vector Machine)
الگوریتم یادگیری ماشین SVM روشی از الگوریتم classification است که در آن دادههای خام را به صورت نقاطی در یک فضای n بعدی رسم میکنید. (که در آن n تعداد ویژگیهایی است که دارید). سپس ارزش هر ویژگی به یک مختصات خاص گره خورده و classification دادهها را آسان میکند. از خطوطی به نام classifier میتوان برای تقسیم دادهها و رسم آنها بر روی یک نمودار استفاده کرد.
5. الگوریتم Naive Bayes
یک Naive Bayes classifier فرض میکند که وجود یک ویژگی خاص در یک کلاس با وجود هیچ ویژگی دیگری ارتباط ندارد.
حتی اگر این ویژگیها به یکدیگر مرتبط باشند، Naive Bayes classifier همه این ویژگیها را در هنگام محاسبه احتمال یک نتیجه خاص به طور مستقل در نظر میگیرد.
یک Naive Bayes classifier فرض میکند که وجود یک ویژگی خاص در یک کلاس با وجود هیچ ویژگی دیگری ارتباطی ندارد.
حتی اگر این ویژگیها به یکدیگر مرتبط باشند، Naive Bayes classifier همه این ویژگیها را به طور مستقل در هنگام محاسبه احتمال یک نتیجه خاص در نظر میگیرد.
ساخت یک مدل Naive Bayes ساده بوده و برای مجموعه دادههای عظیم مفید است. این الگوریتم حتی از متدهای classification بسیار پیچیده نیز بهتر عمل میکند.
6. الگوریتم KNN (K- Nearest Neighbors)
این الگوریتم را میتوان برای مسائل classification و regression اعمال کرد. ظاهراً این الگوریتم در صنعت علم داده، بیشتر برای حل مسائل classification استفاده میشود. این یک الگوریتم ساده است که همه موارد موجود را ذخیره میکند و هر مورد جدید را با کسب اکثریت آرای k neighbor های خود classify میکند. سپس case به کلاسی که بیشترین اشتراک را با آن دارد، اختصاص مییابد. یک تابع فاصله این اندازه گیری را انجام میدهد.
- KNN را می توان با مقایسه آن با زندگی واقعی به راحتی درک کرد. به عنوان مثال، اگر اطلاعاتی در مورد فردی میخواهید، منطقی است که با دوستان و همکاران او صحبت کنید!
- مواردی که باید قبل از انتخاب الگوریتم K Nearest Neighbours در نظر بگیرید:
- KNN از نظر محاسباتی گران است
- متغیرها باید normalized شوند، در غیر این صورت متغیرهای محدوده بالاتر میتوانند منجر به سوگیری الگوریتم شوند
- دادهها هنوز نیاز به پیشپردازش دارند
7. K-Means
این یک الگوریتم یادگیری ماشین بدون نظارت است که مسائل clustering را حل میکند. مجموعه دادهها به تعداد خاصی از cluster ها classify میشوند (بیایید آن عدد را K بنامیم) به گونهای که تمام نقاط داده در یک cluster همگن و ناهمگن از دادههای دیگر cluster ها باشند.
K-means چگونه cluster ها را تشکیل میدهد:
الگوریتم K-means برای هر cluster ، به اندازه k عدد نقطه به نام centroid انتخاب میکند.
هر نقطه داده یک cluster با نزدیکترین centroid ها، K clusters را تشکیل میدهند.
این الگوریتم اکنون centroid های جدید را بر اساس اعضای cluster موجود ایجاد میکند.
با این centroid های جدید، نزدیکترین فاصله برای هر نقطه داده تعیین میشود. این روند تا زمانی که centroid ها تغییر نکنند، تکرار میشود.
8. الگوریتم Random Forest
مجموعه ای از الگوریتمهای Decision Tree را Random Forest می نامند. برای classify کردن یک شی جدید بر اساس ویژگیهای آن، هر درخت به گونهای classify میشود، و درخت به آن کلاس رای میدهد. جنگل آن classification را انتخاب میکند که بیشترین رای را داشته باشد. (از بین همه درختان جنگل).
هر درخت به شرح زیر کاشته و رشد میکند:
- اگر تعداد موارد در مجموعه آموزشی N باشد، نمونه ای از N مورد به صورت تصادفی گرفته میشود. این نمونه مجموعه آموزشی برای رشد درخت خواهد بود.
- اگر به تعداد M عدد متغیرهای ورودی وجود داشته باشد، یک عدد m<<M مشخص میشود. به طوری که در هر گره، به طور تصادفی تعداد m متغیر از M انتخاب میشوند و بهترین تقسیم بر روی این m برای تقسیم گره استفاده میشود. مقدار m در طول این فرآیند ثابت میماند.
هر درخت به بیشترین میزان ممکن رشد میکند. هیچ هرسی وجود ندارد.
9. الگوریتم های کاهش ابعاد (Dimensionality Reduction)
در دنیای امروز، حجم وسیعی از دادهها توسط شرکتها، سازمانهای دولتی و سازمانهای تحقیقاتی ذخیره و تجزیه و تحلیل میشوند. به عنوان یک مدیر ارشد داده، قطعاً میدانید که این دادههای خام حاوی اطلاعات زیادی هستند. چالش این کار در شناسایی الگوها و متغیرهای مهم است.
الگوریتمهای کاهش ابعاد مانند Decision Tree ، Factor Analysis ، Missing Value Ratio و Random Forest میتوانند به شما در یافتن جزئیات مرتبط کمک کنند.
10. الگوریتم Gradient Boosting و الگوریتم AdaBoosting
الگوریتم یادگیری ماشین Gradient Boosting و الگوریتم AdaBoosting الگوریتم های یادگیری ماشین تقویتی هستند که برای پیشبینیهایی با دقت بالا باید حجم زیادی از دادهها را مدیریت کنند. Boosting یک الگوریتم یادگیری گروهی است که قدرت پیشبینی چندین تخمینگر پایه را برای بهبود استحکام ترکیب میکند.
به طور خلاصه، این الگوریتم یادگیری ماشین چندین پیشبینی ضعیف یا متوسط را برای ایجاد یک پیش بینی قوی ترکیب میکند. این الگوریتم های تقویت کننده همیشه در مسابقات علم داده مانند Kaggle، AV Hackathon، CrowdAnalytix به خوبی کار میکنند. اینها ترجیح داده شده ترین الگوریتم های یادگیری ماشین امروزی هستند. از آنها، همراه با کدهای پایتون و R، برای دستیابی به نتایج دقیق استفاده کنید.
نتیجهگیری
اگر می خواهید شغلی در این زمینه داشته باشید، بلافاصله شروع به یادگیری الگوریتم های یادگیری ماشین کنید. این فیلد کاری هر روز در حال گسترش است، و هر چه زودتر دامنه ابزارهای یادگیری ماشین را بیاموزید، زودتر میتوانید راه حلهایی برای مشکلات پیچیده کاری ارائه دهید.
Leave feedback about this