یادگیری ماشین (Machine Learning) یکی از زیرشاخههای مهم هوش مصنوعی است که به سیستمها امکان میدهد بدون برنامهنویسی مستقیم، از دادهها یاد بگیرند و تصمیمگیری کنند. اما برای ورود به این دنیای پیچیده و جذاب، آشنایی با الگوریتمهای اصلی یادگیری ماشین ضروری است.
در این مطلب از آی لرن قصد داریم شما را با ۱۰ الگوریتم پرکاربرد و معروف یادگیری ماشین آشنا کنیم. این الگوریتمها پایه و اساس بسیاری از سیستمهای هوشمند، از تحلیل دادهها تا تشخیص تصویر و پیشبینی رفتار کاربران را تشکیل میدهند. اگر میخواهید بدانید الگوریتمهایی مثل رگرسیون خطی، درخت تصمیم، K نزدیکترین همسایه (KNN) و شبکههای عصبی مصنوعی چگونه کار میکنند و چه زمانی باید از آنها استفاده کرد، جای درستی آمدهاید.
با آیلرن همراه باشید تا این الگوریتمها را به زبان ساده و همراه با مثالهای کاربردی بررسی کنیم.
الگوریتم (Algorithm) چیست؟
الگوریتم یک دنباله از قوانین است که به یک ماشین هوش مصنوعی داده میشود تا یک کار را انجام دهد یا یک مسئله را حل کند. الگوریتمهای رایج شامل طبقهبندی، رگرسیون و خوشهبندی میشوند.
به عبارت ساده، الگوریتم یادگیری ماشین مانند یک دستور پخت است که به رایانهها اجازه میدهد از دادهها یاد بگیرند و پیشبینی کنند. به جای اینکه به رایانه صریحاً بگوییم چه کاری انجام دهد، حجم زیادی از دادهها را در اختیار آن قرار میدهیم و اجازه میدهیم الگوها، روابط و بینشها را به تنهایی کشف کند.
به عبارت دیگر الگوریتم (Algorithm) در سادهترین تعریف، مجموعهای گامبهگام از دستورالعملهاست که برای حل یک مسئله یا انجام یک وظیفه خاص طراحی میشود. شما میتوانید الگوریتم را بهعنوان یک دستور آشپزی در نظر بگیرید؛ دقیقاً مانند اینکه برای پختن یک غذا باید مراحل خاصی را به ترتیب انجام دهید، در علم داده و هوش مصنوعی هم الگوریتمها مشخص میکنند که دادهها چگونه پردازش شوند تا به نتیجهای مطلوب برسیم.
در حوزهی یادگیری ماشین (Machine Learning)، الگوریتمها نقش مغز سیستم را دارند؛ آنها تعیین میکنند که سیستم چگونه از دادهها یاد بگیرد، الگوها را شناسایی کند و تصمیمگیری کند. هر الگوریتم یادگیری ماشین برای نوع خاصی از مسئله مناسب است؛ مثلاً برخی برای پیشبینی عددی (رگرسیون)، برخی برای دستهبندی دادهها و برخی برای خوشهبندی استفاده میشوند.
1.رگرسیون خطی (Linear regression)
رگرسیون خطی یک تکنیک یادگیری ماشین نظارتشده است که برای پیشبینی و پیشبینی مقادیری که در یک محدوده پیوسته قرار دارند، مانند تعداد فروش یا قیمت مسکن استفاده میشود. این تکنیکی است که از آمار مشتق شده است و معمولاً برای ایجاد رابطه بین یک متغیر ورودی (X) و یک متغیر خروجی (Y) که میتواند با یک خط مستقیم نشان داده شود، استفاده میشود.
به عبارت ساده، رگرسیون خطی مجموعهای از نقاط داده را با مقادیر ورودی و خروجی شناخته شده میگیرد و خطی را پیدا میکند که بهترین تناسب را با آن نقاط دارد. این خط، به نام “خط رگرسیون”، به عنوان یک مدل پیشبینی عمل میکند. با استفاده از این خط، میتوانیم مقدار خروجی (Y) را برای یک مقدار ورودی معین (X) تخمین بزنیم یا پیشبینی کنیم.
رگرسیون خطی در درجه اول برای مدلسازی پیشبینی و نه دستهبندی استفاده میشود. زمانی مفید است که بخواهیم درک کنیم که تغییرات در متغیر ورودی چگونه بر متغیر خروجی تأثیر میگذارد. با تجزیه و تحلیل شیب و عرض از مبدأ خط رگرسیون، میتوانیم بینشهایی در مورد رابطه بین متغیرها به دست آوریم و بر اساس این درک پیشبینی کنیم.
رگرسیون خطی به زبان ساده
تصور کن میخوای قد یه نفر رو بر اساس سنش پیشبینی کنی. میدونی که معمولاً با افزایش سن، قد هم افزایش پیدا میکنه، اما این افزایش همیشه یکسان نیست. رگرسیون خطی بهت کمک میکنه تا بهترین خط مستقیم رو پیدا کنی که این رابطه رو نشون بده. به این شکل کار میکنه:
دادهها: اول یه سری اطلاعات جمع میکنی. مثلاً قد و سن یک گروه از افراد.
خط بهترین برازش: رگرسیون خطی یه خط رو پیدا میکنه که به نزدیکترین شکل ممکن از همه نقاط دادهها عبور کنه. این خط، بهترین تخمین از رابطه بین قد و سن رو بهت میده.
پیشبینی: حالا اگه سن یه نفر رو بدونی، میتونی با استفاده از این خط، تقریباً قدش رو حدس بزنی.
چرا رگرسیون خطی مهمه؟ درک رابطه: بهت کمک میکنه بفهمی بین دو متغیر چه ارتباطی وجود داره.
پیشبینی: میتونی ازش برای پیشبینی مقادیر آینده استفاده کنی.
تصمیمگیری: بهت اطلاعات لازم برای تصمیمگیری بهتر میده.
مثالهای دیگه: پیشبینی قیمت خانه بر اساس متراژ پیشبینی میزان فروش یک محصول بر اساس هزینه تبلیغات پیشبینی میزان آلودگی هوا بر اساس میزان ترافیک به طور خلاصه، رگرسیون خطی یه ابزار قدرتمند برای تحلیل دادهها و پیشبینی مقادیر ناشناخته است.
2.رگرسیون لجستیک (Logistic regression)
رگرسیون لجستیک، همچنین به عنوان “رگرسیون لاجیت” شناخته می شود، یک الگوریتم یادگیری نظارت شده است که در درجه اول برای کارهای طبقه بندی باینری استفاده می شود. معمولاً زمانی استفاده میشود که بخواهیم تعیین کنیم ورودی به یک کلاس یا کلاس دیگر تعلق دارد، مثلاً تصمیم بگیریم که آیا یک تصویر یک گربه است یا نه.
رگرسیون لجستیک این احتمال را پیشبینی میکند که یک ورودی را میتوان در یک کلاس اولیه طبقهبندی کرد. با این حال، در عمل، معمولاً برای گروه بندی خروجی ها به دو دسته استفاده می شود: کلاس اولیه و نه کلاس اولیه. برای انجام این کار، رگرسیون لجستیک یک آستانه یا مرزی برای طبقه بندی باینری ایجاد می کند. به عنوان مثال، هر مقدار خروجی بین 0 و 0.49 ممکن است به عنوان یک گروه طبقه بندی شود، در حالی که مقادیر بین 0.50 و 1.00 به عنوان گروه دیگر طبقه بندی می شوند.
در نتیجه، رگرسیون لجستیک معمولاً برای دستهبندی باینری به جای مدلسازی پیشبینیکننده استفاده میشود. این ما را قادر می سازد تا داده های ورودی را بر اساس تخمین احتمال و یک آستانه تعریف شده به یکی از دو کلاس اختصاص دهیم. این رگرسیون لجستیک را به ابزاری قدرتمند برای کارهایی مانند تشخیص تصویر، شناسایی ایمیلهای هرزنامه یا تشخیص پزشکی تبدیل میکند که در آن باید دادهها را در کلاسهای مجزا دستهبندی کنیم.
رگرسیون لجستیک به زبان ساده
تصور کن میخوای تشخیص بدی که یه ایمیل اسپمه یا نه. تو از کلمات و عبارات خاصی که توی ایمیل به کار رفته استفاده میکنی تا این تصمیم رو بگیری. رگرسیون لجستیک هم همین کار رو میکنه، اما برای مسائل پیچیدهتر.
چطور کار میکنه؟
احتمالدهی: رگرسیون لجستیک به جای اینکه مستقیم بگه “این ایمیل اسپمه”، بهت میگه که احتمال اینکه این ایمیل اسپم باشه چقدره. مثلاً ممکنه بگه احتمال اینکه این ایمیل اسپم باشه 90% است.
دستهبندی: بعد از اینکه احتمال رو محاسبه کرد، یه آستانه تعیین میکنه. مثلاً اگه احتمال بیشتر از 50% بود، ایمیل رو اسپم در نظر میگیره وگرنه نه.
کاربردها: از رگرسیون لجستیک برای خیلی از کارها استفاده میشه، مثل:
تشخیص بیماریها: تشخیص اینکه آیا یک بیمار به یک بیماری خاص مبتلا است یا نه.
تشخیص تصویر: تشخیص اینکه آیا یک تصویر حاوی یک شیء خاص است یا نه.
تشخیص تقلب: تشخیص اینکه آیا یک تراکنش بانکی تقلبی است یا نه.
چرا از رگرسیون لجستیک استفاده میکنیم؟
سادگی: نسبت به خیلی از روشهای دیگه، سادهتره و درک کردنش راحتتره.
کارایی: برای مسائل طبقهبندی دودویی (یعنی دو کلاسه) خیلی خوب جواب میده.
تفسیرپذیری: میشه نتایج رو به راحتی تفسیر کرد و فهمید که چه عواملی باعث شده که یک نمونه به یک کلاس خاص تعلق بگیره.
به طور خلاصه، رگرسیون لجستیک یه ابزار قدرتمند برای طبقهبندی دادهها به دو دسته است.
مثال دیگه:
تصور کن میخوای تشخیص بدی که یه بیمار به دیابت مبتلا است یا نه. رگرسیون لجستیک با استفاده از اطلاعاتی مثل قند خون، فشار خون و سن بیمار، احتمال ابتلا به دیابت رو محاسبه میکنه.
آیا میخواهی مثالهای بیشتری از کاربرد رگرسیون لجستیک را بدانید؟ یا شاید بخواهی در مورد مفاهیم پیچیدهتر آن صحبت کنیم؟
توجه: این توضیح ساده شدهای از رگرسیون لجستیک است. در واقع، این مفهوم در آمار و یادگیری ماشین بسیار گستردهتر و پیچیدهتر است.
3.بایزی ساده (Naive Bayes)
مجموعه ای از الگوریتم های یادگیری نظارت شده است که برای ایجاد مدل های پیش بینی برای وظایف طبقه بندی دودویی یا چند کلاسه استفاده می شود. این الگوریتم بر اساس قضیه بیز عمل می کند و بر احتمالات شرطی استوار است که احتمال یک طبقه بندی را بر اساس عوامل ترکیبی با فرض استقلال بین آنها تخمین می زند.
به عنوان مثال، برنامه ای را در نظر بگیرید که با استفاده از الگوریتم بایزی ساده، گیاهان را شناسایی می کند. این الگوریتم عوامل خاصی مانند اندازه ادراک شده، رنگ و شکل را برای طبقه بندی تصاویر گیاهان در نظر می گیرد. اگرچه هر یک از این عوامل به طور مستقل در نظر گرفته می شوند، اما الگوریتم آنها را برای ارزیابی احتمال اینکه یک شیء یک گیاه خاص باشد، ترکیب می کند.
بایزی ساده از فرض استقلال بین عوامل بهره می برد که محاسبات را ساده می کند و به الگوریتم اجازه می دهد با مجموعه داده های بزرگ به طور کارآمد کار کند. این الگوریتم به ویژه برای وظایفی مانند طبقه بندی اسناد، فیلتر کردن اسپم ایمیل، تحلیل احساسات و بسیاری از کاربردهای دیگر که عوامل می توانند به طور جداگانه در نظر گرفته شوند اما همچنان به طبقه بندی کلی کمک می کنند، مناسب است.
بایزی ساده به زبان ساده
تصور کنید یک شرکت تولیدکننده گوشی موبایل میخواهد بداند که مشتریانشان از محصولاتشان راضی هستند یا نه. برای این کار، شرکت نظرات مشتریان را جمعآوری میکند و میخواهد با استفاده از یک الگوریتم، این نظرات را به دو دسته مثبت و منفی تقسیم کند.
بایزی ساده چگونه به این شرکت کمک میکند؟
کلمات کلیدی: الگوریتم کلمات کلیدی مثبتی مثل “عالی”، “بهترین”، “راضی” و کلمات کلیدی منفی مثل “بد”، “اشکال”، “ناراضی” ر ا در نظرات جستجو میکند.
احتمال احساس: هر کلمه به یک احتمال خاص مرتبط میشود. برای مثال، اگر کلمه “عالی” زیاد در نظرات مثبت دیده شود، احتمال اینکه نظری که این کلمه را دارد مثبت باشد، زیاد میشود.
تصمیمگیری: با توجه به مجموع این احتمالات، الگوریتم تصمیم میگیرد که نظر کلی مثبت است یا منفی.
چرا بایزی ساده برای این کار مناسب است؟
سادگی: با بررسی کلمات کلیدی، میتوان به راحتی احساسات را تشخیص داد.
سرعت: حجم زیادی از دادهها (نظرات) را میتوان به سرعت پردازش کرد.
کارایی: در بسیاری از موارد، نتایج قابل قبولی ارائه میدهد.
4.درخت تصمیم (Decision tree)
درخت تصمیم یک الگوریتم یادگیری نظارت شده است که برای طبقه بندی و وظایف مدل سازی پیش بینی استفاده می شود. این الگوریتم شبیه به یک نمودار جریان است و با یک گره ریشه شروع می شود که یک سوال خاص در مورد داده ها می پرسد. بر اساس پاسخ، داده ها به سمت شاخه های مختلف به سمت گره های داخلی بعدی هدایت می شوند که سوالات بیشتری می پرسند و داده ها را به شاخه های بعدی هدایت می کنند. این فرآیند تا زمانی ادامه می یابد که داده ها به یک گره انتهایی که به عنوان گره برگ نیز شناخته می شود، برسند، جایی که شاخه بندی دیگری رخ نمیدهد.
الگوریتمهای درخت تصمیم در یادگیری ماشین محبوب هستند زیرا می توانند به راحتی و سادگی با مجموعه داده های پیچیده برخورد کنند. ساختار الگوریتم باعث می شود که درک و تفسیر فرآیند تصمیم گیری ساده باشد. با پرسیدن یک سلسله سوالات و دنبال کردن شاخه های مربوطه، درختان تصمیم به ما امکان می دهند بر اساس ویژگی های داده ها، نتایج را طبقه بندی یا پیش بینی کنیم.
این سادگی و قابلیت تفسیر، درختان تصمیم را برای کاربردهای مختلف در یادگیری ماشین، به ویژه هنگام کار با مجموعه داده های پیچیده، ارزشمند می کند.
درخت تصمیم به زبان ساده
تصور کن میخوای تصمیم بگیری که امروز به پیک نیک بری یا نه. اول به هوا نگاه میکنی، اگه آفتابی بود به رطوبت هوا نگاه میکنی و اگه رطوبت کم بود، تصمیم میگیری بری. اما اگه هوا ابری بود، به دمای هوا نگاه میکنی و… .
درخت تصمیم هم همین کار رو میکنه، اما برای مسائل پیچیدهتر.
چطور کار میکنه؟
سوال پرسیدن: درخت تصمیم با پرسیدن یک سوال شروع میکنه، مثلاً “آیا هوا آفتابی است؟”
شاخهها: بعد از جواب به این سوال، به یکی از شاخهها میره. هر شاخه یه سوال جدید میپرسه.
تصمیم گیری: این روند ادامه پیدا میکنه تا به یه جواب نهایی برسیم، مثلاً “به پیک نیک برو” یا “به پیک نیک نرو”.
چرا از درخت تصمیم استفاده میکنیم؟
سادگی: فهمیدنش خیلی راحته، مثل یه نمودار جریان.
تفسیرپذیری: میشه به راحتی فهمید که چرا به یک نتیجه رسیدیم.
انعطافپذیری: برای انواع مختلف دادهها قابل استفاده است.
مثال دیگه:
تصور کن میخوای تشخیص بدی که یه میوه سیب هست یا پرتقال. درخت تصمیم با پرسیدن سوالهایی مثل “آیا پوستش قرمز است؟” یا “آیا اندازه اش بزرگ است؟” به این سوال جواب میده.
5.جنگل تصادفی (Random forest)
الگوریتم جنگل تصادفی مجموعهای از درختان تصمیم است که برای طبقهبندی و مدلسازی پیشبینی استفاده میشود. به جای تکیه بر یک درخت تصمیم واحد، جنگل تصادفی پیشبینیهای حاصل از چندین درخت تصمیم را برای انجام پیشبینیهای دقیقتر ترکیب میکند.
در یک جنگل تصادفی، تعداد زیادی الگوریتم درخت تصمیم (گاهی صدها یا حتی هزاران) با استفاده از نمونههای تصادفی مختلف از مجموعه دادههای آموزشی به طور جداگانه آموزش داده میشوند. این روش نمونهگیری “بَگینگ” (Bagging) نامیده میشود. هر درخت تصمیم به طور مستقل بر روی نمونه تصادفی مربوط به خود آموزش میبیند.
پس از آموزش، جنگل تصادفی همان دادهها را گرفته و به هر درخت تصمیم وارد میکند. هر درخت یک پیشبینی انجام میدهد و جنگل تصادفی نتایج را جمعآوری میکند. رایجترین پیشبینی در بین همه درختان تصمیم سپس به عنوان پیشبینی نهایی برای مجموعه داده انتخاب میشود.
جنگلهای تصادفی به یک مشکل رایج به نام “بیشبرازش” (Overfitting) که میتواند با درختان تصمیم فردی رخ دهد، رسیدگی میکنند. بیشبرازش زمانی اتفاق میافتد که یک درخت تصمیم بیش از حد با دادههای آموزشی خود همسو شود و در نتیجه هنگام ارائه دادههای جدید دقت کمتری داشته باشد.
جنگل تصادفی به زبان ساده
تصور کن میخوای تصمیم بگیری که امروز به سینما بری یا نه. چند تا دوستت رو میپرسی که نظرشون چیه. هر کدومشون با توجه به سلیقه و اطلاعاتی که دارن، یه پیشبینی میکنن. تو هم نظر همه رو جمع میبندی و با توجه به اکثریت نظرها تصمیم میگیری.
جنگل تصادفی هم همین کار رو میکنه، اما برای مسائل پیچیدهتر.
چطور کار میکنه؟
درختهای تصمیم: جنگل تصادفی از چندین درخت تصمیم تشکیل شده. هر درخت تصمیم مثل یه دوست توئه که یه نظر مستقل میده.
آموزش درختها: هر درخت تصمیم با استفاده از بخشی از اطلاعات آموزش میبیند. یعنی هر کدوم از دوستات فقط بخشی از اطلاعات رو میدونه.
پیشبینی: وقتی میخواییم برای یه داده جدید پیشبینی کنیم، هر درخت تصمیم یه جواب میده.
رایگیری: در نهایت، جوابی که بیشترین رای رو بیاره، جواب نهایی جنگل تصادفی میشه.
چرا از جنگل تصادفی استفاده میکنیم؟
دقت بالا: با ترکیب نظر چندین درخت تصمیم، دقت پیشبینیها افزایش پیدا میکنه.
جلوگیری از بیشبرازش: چون هر درخت تصمیم با بخشی از دادهها آموزش میبیند، احتمال اینکه بیش از حد به دادههای آموزشی وابسته بشه، کمتره.
انعطافپذیری: برای انواع مختلف دادهها قابل استفاده است.
6.K-nearest neighbor (KNN)
(KNN) یک الگوریتم یادگیری نظارت شده است که معمولاً برای طبقهبندی و وظایف مدلسازی پیشبینی استفاده میشود. نام “KNN” نشاندهنده رویکرد الگوریتم در طبقهبندی یک خروجی بر اساس نزدیکی آن به سایر نقاط داده در یک نمودار است.
فرض کنید یک مجموعه داده با نقاط برچسبگذاری شده داریم که برخی با رنگ آبی و برخی دیگر با رنگ قرمز مشخص شدهاند. وقتی میخواهیم یک نقطه داده جدید را طبقهبندی کنیم، KNN به نزدیکترین همسایگان آن در نمودار نگاه میکند. “K” در KNN به تعداد همسایگان نزدیک در نظر گرفته شده اشاره دارد. به عنوان مثال، اگر K برابر با 5 تنظیم شود، الگوریتم به 5 نقطه نزدیکترین به نقطه داده جدید نگاه میکند.
بر اساس اکثریت برچسبها در بین K همسایه نزدیک، الگوریتم یک طبقهبندی به نقطه داده جدید اختصاص میدهد. به عنوان مثال، اگر اکثر همسایگان نزدیک نقاط آبی باشند، الگوریتم نقطه جدید را به عنوان متعلق به گروه آبی طبقهبندی میکند.
علاوه بر این، KNN همچنین میتواند برای وظایف پیشبینی استفاده شود. به جای اختصاص یک برچسب کلاس، KNN میتواند مقدار یک نقطه داده ناشناخته را بر اساس میانگین یا میانه K همسایه نزدیک آن تخمین بزند.
K-nearest neighbor (KNN) به زبان ساده
تصور کن میخوای بدونی یه گل لاله هست یا زنبق. برای این کار، به باغچهای میری که پر از لاله و زنبق هست. حالا گل مورد نظرت رو برمیداری و به چندتا از گلهای دیگه که بهش نزدیکترن نگاه میکنی (مثلاً 5 تا گل).
اگه بیشتر این 5 تا گل لاله بودن، تو هم نتیجه میگیری که گل مورد نظرت هم لاله است. اگه بیشترشون زنبق بودن، نتیجه میگیری که گل مورد نظرت زنبق است.
این دقیقا همون کاریه که الگوریتم K-نزدیکترین همسایه انجام میده.
K چیه؟ اون عدد 5 که ما به 5 تا گل نزدیک نگاه کردیم، همون K هست.
همسایههای نزدیک: گلهایی که به گل مورد نظرمون نزدیکترن، همسایههای نزدیک اون گل هستن.
چرا از K-nearest neighbor (KNN) استفاده میکنیم؟
سادگی: فهمیدنش خیلی راحته، انگار داری یه گل رو با گلهای دیگه مقایسه میکنی.
انعطافپذیری: برای انواع مختلف دادهها قابل استفاده است.
مثال دیگه:
تصور کن میخوای تشخیص بدی که یه میوه سیب هست یا پرتقال. K-نزدیکترین همسایه با مقایسه اندازه، رنگ و شکل میوه مورد نظرت با میوههای دیگه، این کار رو انجام میده.
به طور خلاصه، K-nearest neighbor (KNN) یه روش ساده و قابل فهم برای طبقهبندی دادههاست که بر اساس شباهت دادههای جدید به دادههای قبلی، طبقهبندی رو انجام میده.
7.K-means
K-means یک الگوریتم یادگیری بدون نظارت است که معمولاً برای خوشهبندی و تشخیص الگو استفاده میشود. هدف آن گروه بندی نقاط داده بر اساس نزدیکی آنها به یکدیگر است. مشابه K-نزدیکترین همسایه (KNN)، خوشهبندی K-means از مفهوم نزدیکی برای شناسایی الگوها در دادهها استفاده میکند.
هر یک از خوشهها توسط یک مرکز خوشه، یک نقطه مرکزی واقعی یا خیالی برای خوشه، تعریف میشود. K-means در مجموعه دادههای بزرگ، به ویژه برای خوشهبندی، مفید است، اگرچه در هنگام برخورد با مقادیر پرت ممکن است دچار مشکل شود.
الگوریتمهای خوشهبندی به ویژه برای مجموعه دادههای بزرگ مفید هستند و میتوانند با گروه بندی نقاط مشابه، بینشهایی در مورد ساختار ذاتی دادهها ارائه دهند. این الگوریتم در زمینههای مختلفی مانند بخشبندی مشتریان، فشردهسازی تصویر و تشخیص ناهنجاری کاربرد دارد.
K-means به زبان ساده
تصور کن یک مشت گوی رنگی داری. میخواهی این گویها را طوری گروه بندی کنی که گویهای هم رنگ کنار هم قرار بگیرند. برای این کار، اول چند تا نقطه تصادفی را به عنوان مرکز گروهها انتخاب میکنی. سپس هر گوی را به نزدیکترین مرکز میبری.
بعد از این کار، دوباره مرکز هر گروه را حساب میکنی (مثلاً وسط همه گویهای آن گروه). حالا دوباره هر گوی را به نزدیکترین مرکز جدید میبری. این کار را آنقدر تکرار میکنی تا دیگر هیچ گویی جابجا نشود و هر گروه فقط شامل گویهای هم رنگ باشد.
این دقیقا همان کاری است که الگوریتم K-means انجام میدهد.
K چیست؟ تعداد نقطههای تصادفی اولیهای که انتخاب میکنی، همان K است. این عدد مشخص میکند که میخواهی دادههایت را به چند گروه تقسیم کنی.
مرکز خوشه: آن نقطههایی که به عنوان مرکز هر گروه انتخاب میشوند، مرکز خوشه نام دارند.
خوشه: هر گروه از گویهای هم رنگ، یک خوشه نامیده میشود.
چرا از K-means استفاده میکنیم؟
سادگی: فهمیدنش خیلی راحت است، انگار داری گویهای رنگی را مرتب میکنی.
کارایی: برای دادههای بزرگ هم قابل استفاده است.
کاربردهای فراوان: در بسیاری از زمینهها مثل بازاریابی، زیستشناسی و … کاربرد دارد.
8.Support vector machine (SVM)
یک الگوریتم یادگیری نظارت شده است که معمولاً برای طبقهبندی و وظایف مدلسازی پیشبینی استفاده میشود. الگوریتمهای SVM محبوب هستند زیرا قابل اعتماد هستند و حتی با مقدار کمی داده نیز میتوانند به خوبی کار کنند. الگوریتمهای SVM با ایجاد یک مرز تصمیم به نام “هایپرپلین” کار میکنند. در فضای دو بعدی، این هایپرپلین مانند خطی است که دو مجموعه داده برچسبگذاری شده را از هم جدا میکند.
هدف SVM یافتن بهترین مرز تصمیم ممکن با حداکثر فاصله بین دو مجموعه داده برچسبگذاری شده است. به دنبال بزرگترین شکاف یا فاصله بین کلاسها میگردد. هر نقطه داده جدیدی که در هر طرف این مرز تصمیم قرار میگیرد، بر اساس برچسبهای موجود در مجموعه دادههای آموزشی طبقهبندی میشود.
لازم به ذکر است که هایپرپلینها میتوانند هنگام ترسیم در فضای سهبعدی شکلهای مختلفی به خود بگیرند و به SVM اجازه میدهند تا الگوها و روابط پیچیدهتر را در دادهها مدیریت کند.
Support vector machine (SVM) به زبان ساده
تصور کن میخواهی سیبها و پرتقالها را از هم جدا کنی. برای این کار، یک خط روی میز میکشی تا سیبها در یک طرف و پرتقالها در طرف دیگر قرار بگیرند. بهترین خط، خطی است که بیشترین فاصله را از نزدیکترین سیب و پرتقال داشته باشد.
(SVM) هم همین کار را انجام میدهد، اما برای دادههای پیچیدهتر.
هایپرپلین: آن خطی که سیبها و پرتقالها را از هم جدا میکند، در زبان فنی “هایپرپلین” نامیده میشود. در فضاهای با ابعاد بالاتر، هایپرپلین میتواند یک صفحه یا یک شکل پیچیدهتر باشد.
بردارهای پشتیبان: نزدیکترین سیب و پرتقال به خط، “بردارهای پشتیبان” نامیده میشوند. این بردارها مهم هستند چون به ما کمک میکنند بهترین هایپرپلین را پیدا کنیم.
چرا از SVM استفاده میکنیم؟
دقت بالا: SVM معمولاً دقت بالایی در طبقهبندی دادهها دارد.
انعطافپذیری: برای دادههای پیچیده و غیرخطی هم قابل استفاده است.
کارایی با دادههای کم: حتی با تعداد کمی داده هم میتواند مدل خوبی ایجاد کند.
9.آپریوری (Apriori)
آپریوری یک الگوریتم یادگیری بدون نظارت است که برای مدلسازی پیشبینی، به ویژه در زمینه استخراج قوانین انجمنی استفاده میشود.
الگوریتم آپریوری در اوایل دهه 1990 به عنوان راهی برای کشف قوانین انجمنی بین مجموعههای آیتمها پیشنهاد شد. این الگوریتم معمولاً در وظایف تشخیص الگو و پیشبینی، مانند درک احتمال خرید یک محصول توسط مصرفکننده پس از خرید محصول دیگری، استفاده میشود.
الگوریتم آپریوری با بررسی دادههای تراکنش ذخیره شده در یک پایگاه داده رابطه ای کار میکند. این الگوریتم مجموعههای آیتمهای متداول را شناسایی میکند که ترکیباتی از آیتمهایی هستند که اغلب با هم در تراکنشها رخ میدهند. سپس از این مجموعههای آیتم برای تولید قوانین انجمنی استفاده میشود. به عنوان مثال، اگر مشتریان اغلب محصول A و محصول B را با هم خریداری کنند، میتوان یک قانون انجمنی تولید کرد که نشان میدهد خرید A احتمال خرید B را افزایش میدهد.
با اعمال الگوریتم آپریوری، تحلیلگران میتوانند بینشهای ارزشمندی را از دادههای تراکنش استخراج کنند و به آنها امکان میدهد بر اساس الگوهای مشاهده شده از انجمنهای مجموعه آیتمها، پیشبینی یا توصیههایی انجام دهند.
آپریوری به زبان ساده
تصور کن یک فروشگاه بزرگ داری. میخواهی بفهمی مشتریها معمولا چه چیزهایی را با هم میخرند تا بتوانی محصولاتت را بهتر به آنها پیشنهاد دهی.
الگوریتم آپریوری دقیقا همین کار را انجام میدهد.
مجموعه آیتمهای متداول: فرض کن اکثر مشتریهایی که شیر میخرند، نان هم میخرند. این یعنی ترکیب “شیر و نان” یک مجموعه آیتم متداول است.
قوانین انجمنی: از روی این مجموعههای متداول، میتوان قوانین انجمنی ساخت. مثلا میتوان گفت: “اگر مشتری شیر خرید، احتمال اینکه نان هم بخرد زیاد است.”
چطور این کار را انجام میدهد؟
جمعآوری دادهها: اول از همه، تمام خریدهای مشتریان را جمعآوری میکنیم.
یافتن مجموعههای متداول: سپس به دنبال ترکیبهایی از محصولات میگردیم که خیلی با هم خریداری میشوند.
ساخت قوانین انجمنی: از این مجموعهها، قوانینی میسازیم که نشان میدهند اگر یک محصول خریداری شود، احتمال خرید محصولات دیگر چقدر است.
10.Gradient boosting
الگوریتمهای Gradient boosting از یک روش آنسامبل استفاده میکنند، به این معنی که مجموعهای از مدلهای “ضعیف” ایجاد میکنند که به صورت تکراری بهبود مییابند تا یک مدل پیشبینی قوی تشکیل دهند. فرآیند تکراری به تدریج خطاهای ایجاد شده توسط مدلها را کاهش میدهد و منجر به تولید یک مدل نهایی بهینه و دقیق میشود.
الگوریتم با یک مدل ساده و ابتدایی شروع میشود که ممکن است فرضهای اولیهای داشته باشد، مانند طبقهبندی دادهها بر اساس اینکه آیا بالاتر یا پایینتر از میانگین است. این مدل اولیه به عنوان نقطه شروع عمل میکند.
در هر تکرار، الگوریتم یک مدل جدید میسازد که بر تصحیح اشتباهات ایجاد شده توسط مدلهای قبلی تمرکز میکند. الگوریتم الگوها یا روابطی را که مدلهای قبلی در درک آنها مشکل داشتند، شناسایی میکند و آنها را در مدل جدید ادغام میکند.
Gradient boosting در رسیدگی به مشکلات پیچیده و مجموعه دادههای بزرگ موثر است. میتواند الگوها و وابستگیهای پیچیدهای را که ممکن است توسط یک مدل واحد از دست رفته باشند، شناسایی کند. با ترکیب پیشبینیهای حاصل از چندین مدل، Gradient boosting یک مدل پیشبینی قدرتمند تولید میکند.
Gradient boosting به زبان ساده
تصور کن میخواهی یک خانه چوبی بسازی. برای این کار، ابتدا یک چارچوب ساده میسازی. سپس کمکم به این چارچوب دیوار، سقف و جزئیات دیگر اضافه میکنی تا خانه کامل شود.
Gradient boosting هم همین کار را انجام میدهد، اما برای ساخت مدلهای پیشبینی.
مدلهای ضعیف: آن چارچوب ساده اول، یک مدل پیشبینی خیلی ساده است. این مدل ممکن است خیلی دقیق نباشد، اما یک شروع خوب است.
بهبود تدریجی: در هر مرحله، یک مدل جدید به مدل قبلی اضافه میشود که سعی میکند اشتباهات مدل قبلی را تصحیح کند. این کار مثل این است که به چارچوب اولیه دیوار اضافه کنیم.
مدل نهایی: در نهایت، با اضافه کردن چندین مدل به هم، یک مدل بسیار دقیق و قوی به دست میآید.
پست های مرتبط
دی 11, 1404
۱۰ ابزار هوش مصنوعی رایگان برای یادگیری انگلیسی
آیا تا به حال آرزو کردهاید که یک معلم زبان همیشه در دسترس داشته باشید؟ هوش مصنوعی امروز این رویا را محقق کرده و به عنوان یک معلم مجازی ۲۴ ساعته در تمام روزهای هفته عمل میکند. این دسترسی مستمر و بدون محدودیت مکانی، به زبانآموزان اجازه میدهد تا در...
دی 3, 1404
آیا هوش مصنوعی در سال 2026 جایگزین گرافیستها میشود؟
پارادایم نوین طراحی گرافیک در عصر هوش مصنوعی: تحلیل جامع تحولات ساختاری، حقوقی و مهارتی تا سال ۲۰۳۰ تحولات بنیادین در چشمانداز اشتغال جهانی که توسط مجمع جهانی اقتصاد برای بازه زمانی ۲۰۲۵ تا ۲۰۳۰ ترسیم شده است، نشاندهنده عبور از یک مرحله گذار تک...
آذر 13, 1404
بهترین نرم افزارهای افزایش کیفیت عکس با هوش مصنوعی (۲۰۲6) + لینک دانلود
بهترین نرم افزارهای افزایش کیفیت عکس با هوش مصنوعی؛ جادوی پیکسلها در کامپیوتر حتماً برای شما هم پیش آمده که عکسی فوقالعاده با کادربندی عالی گرفتهاید، اما وقتی روی آن زوم میکنید، با تاری آزاردهنده یا نویزهای دیجیتالی مواجه میشوید. یا شاید آرش...
آذر 1, 1404
معرفی Nano Banana Pro ؛ نسل جدید تولید تصویر با هوش مصنوعی گوگل
گوگل بعد از معرفی مدل Nano Banana (بر پایه Gemini 2.5 Flash Image) که در ویرایش عکس، بازسازی تصاویر قدیمی و ساخت فیگورهای کوچک دیجیتال سر و صدا کرد، حالا قدم بعدی را برداشته است:Nano Banana Pro (یا Gemini 3 Pro Image)؛ مدلی برای تولید و ویرایش ...
تیر 16, 1404
لیست بهترین DNS ها برای هوش مصنوعی (dns برای چت جی پی تی)
اگر شما هم یکی از علاقهمندان به ابزارهای هوش مصنوعی مانند چت جی پی تی، Google Gemini، Copilot و سایر سرویسهای پیشرفته هستید، احتمالاً با محدودیتهایی در باز کردن این وبسایتها از داخل ایران مواجه شدهاید. برخی از این سایتها بهصورت مستقیم قابل د...