مقدمه
الگوریتم جنگل تصادفی (Random Forest)، یک الگوریتم یادگیری ماشین نظارت شده است که از الگوریتمهای درخت تصمیمگیری ساخته شده است. این الگوریتم پرکاربرد و ساده در صنایع مختلف مانند بانکداری و تجارت الکترونیک برای پیشبینی رفتار و نتایج بهکار میرود. از آنجایی که این الگوریتم از تعداد زیادی درخت تصمیمگیری ساخته شده است نام الگوریتم جنگل تصادفی یا الگوریتم Random Forest را برای آن در نظر گرفتهاند.
اولین بار الگوریتم جنگلهای تصمیم تصادفی را «تین کم هو» با استفاده از روش زیرفضاهای تصادفی بهوجود آورد. بعدها نسخههای دیگری از آن توسط “لیو بریمن” ارتقا پیدا کردند. ما انسانها روزی دهها بار و یا حتی بیشتر از درخت تصمیم در انتخابهای خودمان استفاده میکنیم بدون اینکه متوجه شویم روشی که از آن استفاده میکنیم یک الگوریتم یادگیری ماشین و روش جنگل تصادفی است.
در چند سال اخیر که بازار رمز ارزها در ایران هم رونق پیدا کرده است، استفاده از الگوریتمهایی که بتوانند میزان افزایش یا کاهش قیمت ارزهای دیجیتال را پیشبینی کنند هم بالا رفته است. ازجمله این ارزهای دیجیتال که معاملات آن بسیار هم رایج و پررونق بوده، بیت کوین است. به تبع آن ازجمله الگوریتمهای معروفی هم که در پیشبینی قیمت بیت کوین مورد استفاده قرار میگیرد، الگوریتم جنگل تصادفی (Random Forest) است.
جنگل تصادفی چیست؟
روش جنگل تصادفی یک تکنیک یادگیری ماشینی است که برای حل مسائل مربوط به رگرسیون و طبقهبندی مورد استفاده قرار میگیرد. مبنای روش جنگل تصادفی، یادگیری گروهی است، تکنیکی که بسیاری از طبقهبندیکنندهها را برای ارائه راهحلهایی برای حل مسائل پیچیده ترکیب میکند. یک الگوریتم Random Forest از درخت تصمیمهای زیادی تشکیل شده است. “جنگل” تولید شده توسط الگوریتم جنگل تصادفی، از طریق تجمیع bagging یا bootstrap آموزش داده میشود. Bagging یک متا الگوریتم مجموعهای است که دقت الگوریتمهای یادگیری ماشین را بهبود میبخشد.
الگوریتم جنگل تصادفی نتیجه را بر اساس پیشبینی درختان تصمیم یا Decision Tree با گرفتن میانگین یا میانگین خروجی از درختان مختلف، پیشبینی میکند. افزایش تعداد درختان دقت نتیجه را هم افزایش میدهد. یک جنگل تصادفی محدودیتهای یک الگوریتم درخت تصمیم را از بین برده و برازش بیش از حد مجموعه دادهها را کاهش میدهد، همچنین باعث افزایش دقت میشود و در نهایت یک پیشبینی تولید میکند.
ویژگی های الگوریتم جنگل تصادفی
برخی از ویژگیهای الگوریتم جنگل تصادفی عبارتند از:
- الگوریتم جنگل تصادفی از الگوریتم درخت تصمیم دقیقتر است.
- این الگوریتم یک روش مؤثر برای مدیریت دادههای از دست رفته ارائه میدهد.
- میتواند یک پیشبینی معقول بدون تنظیم بیش از حد پارامتر را ایجاد کند.
- این الگوریتم میتواند مشکل بیش از حد برازش در درختان تصمیم را حل کند.
- در هر درخت جنگل تصادفی، زیرمجموعهای از ویژگیها بهطور تصادفی در نقطه تقسیم گره انتخاب میشود.
نحوه کار الگوریتم جنگل تصادفی
درختان تصمیم بلوکهای سازنده یک الگوریتم جنگل تصادفی هستند. درخت تصمیم یک تکنیک پشتیبانی تصمیم است که ساختاری درخت مانند را تشکیل میدهد. مروری بر درختان تصمیم به ما کمک میکند تا بفهمیم الگوریتمهای جنگل تصادفی چگونه کار میکنند. درخت تصمیم از سه جزء تشکیل شده است: گره تصمیم، گره برگ و گره ریشه.
یک الگوریتم درخت تصمیم یک مجموعه داده آموزشی را به شاخههایی تقسیم میکند که بیشتر به شاخههای دیگر تفکیک میشوند. این توالی تا رسیدن به یک گره برگ ادامه مییابد. گره برگ را نمی توان بیشتر جدا کرد. گرههای درخت تصمیم نشاندهنده ویژگیهایی هستند که برای پیشبینی نتیجه استفاده میشوند. گرههای تصمیم یک پیوند به برگها ارائه می دهند. شکل زیر سه نوع گره را در درخت تصمیم نشان می دهد.
تئوری اطلاعات میتواند اطلاعات بیشتری در مورد نحوه عملکرد درختان تصمیم ارائه دهد. Entropy و بهدستآوردن اطلاعات، بلوکهای سازنده درختان تصمیم هستند. مروری بر این مفاهیم اساسی درک ما را از نحوه ساخت درخت تصمیم بهبود میبخشد. بلوک Entropy (آنتروپی) معیاری برای محاسبه عدم قطعیت و بلوک بهدستآوردن اطلاعات معیاری است که نشان میدهد چگونه عدم قطعیت در متغیر هدف با توجه به مجموعهای از متغیرهای مستقل کاهش مییابد.
مفهوم بهدستآوردن اطلاعات شامل استفاده از متغیرهای مستقل (ویژگی ها) برای بهدستآوردن اطلاعات درمورد یک متغیر هدف (کلاس) است. از آنتروپی متغیر هدف (Y) و آنتروپی شرطی Y (X داده شده) برای تخمین سود اطلاعات استفاده میشود. در این حالت آنتروپی شرطی از آنتروپی Y کم می شود.
بهدستآوردن اطلاعات در آموزش درختان تصمیم استفاده میشود که به کاهش عدم اطمینان در این درختان کمک میکند. افزایش اطلاعات به این معنی است که درجه بالایی از عدم قطعیت (آنتروپی اطلاعات) حذف شده است. آنتروپی و کسب اطلاعات در شکافتن شاخهها مهم هستند که فعالیت مهمی در ساخت درختهای تصمیمگیری است.
میخواهیم یک مثال ساده از نحوه عملکرد درخت تصمیم بیان کنیم. فرض کنید میخواهیم پیشبینی کنیم که آیا مشتری تلفنهمراه میخرد یا خیر؟ ویژگیهای گوشی اساس تصمیم او را تشکیل میدهد. این تحلیل را می توان در نمودار درخت تصمیم ارائه کرد.
گره اصلی و گرههای تصمیمگیری نشاندهنده ویژگیهای تلفن ذکر شده در بالا هستند. گره برگ نشاندهنده خروجی نهایی، خرید یا عدم خرید است. ویژگیهای اصلی که انتخاب را تعیین میکند شامل قیمت، حافظهداخلی و حافظه با دسترسی تصادفی (RAM) است. درخت تصمیم به صورت فوق ظاهر می شود.
به کارگیری درختان تصمیم در جنگل تصادفی
تفاوت بین درخت تصمیم و جنگل تصادفی در این است که ایجاد گرههای ریشه و جداسازی گرهها در الگوریتم جنگل تصادفی، بهصورت تصادفی انجام میشود. الگوریتم جنگل تصادفی یا الگوریتم Random Forest از روش بستهبندی برای ایجاد پیشبینی مورد نیاز استفاده میکند.
بستهبندی شامل استفاده از نمونههای مختلف داده (دادههای آموزشی) بهجای یک نمونه است. مجموعه داده آموزشی شامل مشاهدات و ویژگیهایی است که برای پیشبینی استفاده میشود. درختان تصمیم یا Decision Tree، بسته به دادههای آموزشی تغذیه شده به الگوریتم جنگل تصادفی، خروجیهای مختلفی تولید میکنند. این خروجیها رتبهبندی میشوند و بالاترین خروجی بهعنوان خروجی نهایی انتخاب میشود.
مثال اول ما هنوز هم میتواند برای توضیح نحوه عملکرد جنگلهای تصادفی و روشن شدن تفاوت بین درخت و جنگل تصادفی استفاده شود. به جای داشتن یک درخت تصمیم واحد، جنگل تصادفی درختان تصمیمگیری زیادی خواهد داشت.
فرض کنید فقط چهار درخت تصمیم داریم. در این حالت، دادههای آموزشی شامل مشاهدات و ویژگیهای گوشی به چهار گره ریشه تقسیم میشود. گرههای ریشه میتوانند چهار ویژگی را نشان دهند که میتوانند بر انتخاب مشتری تأثیر بگذارند (قیمت، حافظه داخلی، دوربین و RAM).
جنگل تصادفی گرهها را با انتخاب تصادفی ویژگیها تقسیم میکند. پیشبینی نهایی بر اساس نتیجه چهار درخت انتخاب میشود. نتیجه انتخاب شده توسط اکثر درختان تصمیم، انتخاب نهایی خواهد بود. اگر سه درخت خرید را پیشبینی کند و یک درخت نخریدن را پیشبینی کند، پیشبینی نهایی خریدن خواهد بود. دراینحالت، پیشبینی میشود که مشتری گوشی را بخرد. در ادامه مبحث الگوریتم جنگل تصادفی به طبقه بندی در آن میپردازیم.
الگوریتم طبقه بندی جنگل تصادفی
طبقه بندی در جنگل های تصادفی از یک روش مجموعهای برای دستیابی به نتیجه استفاده میکند. دادههای آموزشی برای آموزش درختهای تصمیمگیری مختلف تغذیه میشوند. این مجموعه داده شامل مشاهدات و ویژگیهایی است که بهطور تصادفی درحین تقسیم گرهها انتخاب میشوند.
یک سیستم جنگل به درختان تصمیمگیری مختلف متکی است. هر درخت تصمیم شامل گره تصمیم، گره برگ و گره ریشه است. گره برگ هر درخت، خروجی نهایی تولیدشده توسط آن درخت تصمیم خاص است. انتخاب خروجی نهایی از سیستم رأی اکثریت پیروی میکند. دراین حالت، خروجی انتخاب شده توسط اکثریت درختان تصمیم به خروجی نهایی سیستم جنگل تبدیل میشود. نمودار زیر یک طبقهبندی جنگل تصادفی ساده را نشان میدهد.
بیایید یک نمونه از مجموعه دادههای آموزشی متشکل از میوههای مختلف مانند موز، سیب، آناناس و انبه را مثال بزنیم. طبقهبندیکننده جنگل تصادفی این مجموعه داده را به زیر مجموعهها تقسیم میکند. این زیر مجموعهها به هر درخت تصمیم در سیستم جنگل تصادفی داده میشود و هر درخت تصمیم خروجی خاص خود را تولید میکند. بهعنوان مثال، پیش بینی درختان ۱ و ۲ سیب است.
درخت تصمیم دیگری (n) موز را بهعنوان نتیجه پیش بینی کردهاست. طبقهبندیکننده جنگل تصادفی اکثریت رأی را جمعآوری میکند تا پیشبینی نهایی را ارائه کند. اکثر درختان تصمیم، سیب را بهعنوان پیشبینی خود انتخاب کردهاند. این باعث میشود طبقهبندیکننده سیب را بهعنوان پیشبینی نهایی انتخاب کند.
رگرسیون در جنگل های تصادفی
رگرسیون وظیفه دیگری است که توسط الگوریتم جنگل تصادفی انجام میشود. یک رگرسیون جنگل تصادفی از مفهوم رگرسیون ساده پیروی میکند. مقادیر متغیرهای وابسته (ویژگیها) و مستقل در مدل جنگل تصادفی منتقل میشوند. ما میتوانیم رگرسیونهای تصادفی جنگل را در برنامههای مختلفی مانند SAS، R و python اجرا کنیم. در یک رگرسیون جنگل تصادفی، هر درخت پیشبینی خاصی را تولید میکند.
میانگین پیشبینی هر درخت، خروجی رگرسیون است. این برخلاف طبقهبندی تصادفی جنگل است که خروجی آن توسط حالت کلاس درختان تصمیم تعیین میشود. اگرچه رگرسیون جنگل تصادفی و رگرسیون خطی از یک مفهوم پیروی میکنند، اما از نظر توابع متفاوت هستند. تابع رگرسیون خطی y=bx + c است، که در آن y متغیر وابسته، x متغیر مستقل، b پارامتر تخمین و c یک ثابت است. عملکرد یک رگرسیون تصادفی پیچیده جنگل مانند یک جعبه سیاه است.
کاربرد های جنگل تصادفی
برخی از کاربرد های جنگل تصادفی عبارتنداز:
- بانکداری: جنگل تصادفی در بانکداری برای پیشبینی اعتبار متقاضی وام استفاده میشود. این به مؤسسه وامدهنده کمک میکند تا تصمیم خوبی درمورد دادن وام به مشتری بگیرد. بانکها همچنین از الگوریتم جنگل تصادفی برای شناسایی کلاهبرداران استفاده میکنند.
- مراقبت های بهداشتی: متخصصان بهداشت از سیستمهای جنگل تصادفی برای تشخیص بیماران استفاده میکنند. بیماران با ارزیابی سابقه پزشکی قبلیشان تشخیص داده میشوند. سوابق پزشکی گذشته برای تعیین دوز مناسب برای بیماران بررسی میشود.
- بازار سهام: تحلیل گران مالی از آن برای شناسایی بازارهای بالقوه برای سهام استفاده میکنند. همچنین آنها را قادر میسازد تا رفتار سهام را شناسایی کنند.
- تجارت الکترونیک: از طریق الگوریتمهای جنگل بارانی، فروشندگان تجارت الکترونیکی میتوانند ترجیحات مشتریان را بر اساس رفتار مصرف گذشته پیشبینی کنند.
چه زمانی از استفاده از جنگل های تصادفی اجتناب کنید؟
الگوریتمهای جنگل تصادفی در شرایط زیر ایدهآل نیستند:
- برون یابی
رگرسیون تصادفی جنگل در برون یابی دادهها ایده آل نیست. برخلاف رگرسیون خطی که از مشاهدات موجود برای تخمین مقادیر فراتر از محدوده مشاهده استفاده میکند. رگرسیون تصادفی توضیح میدهد که چرا بیشتر کاربردهای جنگل تصادفی به طبقهبندی مربوط میشود. - داده های پراکنده
جنگل تصادفی زمانی که دادهها بسیار پراکنده باشند، نتایج خوبی ایجاد نمیکند. در این حالت، زیرمجموعه ویژگیها و نمونه bootstrap یک فضای ثابت تولید میکند. این منجربه شکافهای غیرمولد میشود که بر نتیجه تأثیر میگذارد.
مزایای جنگل تصادفی
- این الگوریتم میتواند هر دو وظایف رگرسیون و طبقهبندی را انجام دهد.
- الگوریتم جنگل تصادفی پیشبینیهای خوبی تولید میکند که بهراحتی قابل درک است.
- میتواند مجموعه دادههای بزرگ را بهطور مؤثر اداره کند.
- الگوریتم جنگل تصادفی سطح بالاتری از دقت را در پیشبینی نتایج نسبت به الگوریتم درخت تصمیم فراهم میکند.
معایب جنگل تصادفی
- هنگام استفاده از یک الگوریتم جنگل تصادفی، منابع بیشتری برای محاسبه مورد نیاز است.
- در مقایسه با الگوریتم درخت تصمیم زمان بیشتری مصرف میکند.
این الگوریتم یک ابزار بسیار کارآمد برای پیش بینیهای دقیق موردنیاز در تصمیمگیریهای استراتژیک در سازمانها است. بزرگترین حسن الگوریتم جنگل تصادفی این است که وقتی به زمان پیشبینی الگوریتمها میرسیم، که تعدادی دادهی جدید به الگوریتم، بهمنظور پیشبینی داده میشود، هر کدام از الگوریتمها یک نتیجه را پیشبینی میکنند اما الگوریتمِ جنگلِ تصادفی، با استفاده از رأیگیری، آن طبقهای را که دارای حداکثر آراء است را برمیگزیند و بهعنوانِ طبقهی منتخب برای انجامِ عملیات طبقهبندی در نظر میگیرد.
سخن پایانی درباره الگوریتم جنگل تصادفی
الگوریتم جنگل تصادفی یک الگوریتم یادگیری ماشینی است که استفاده از آن آسان و انعطافپذیر است. از یادگیری مجموعهای استفاده میکند که سازمانها را قادر میسازد تا مشکلات رگرسیون و طبقهبندی را حل کنند. همچنین الگوریتم جنگل تصادفی یک الگوریتم ایدهآل برای توسعهدهندگان است زیرا مشکل بیش از حد برازش مجموعه دادهها را حل میکند.
در این مقاله سعی شده است تا حد امکان و بدون کم و کاستی، به شرح الگوریتم جنگل تصادفی پرداخته شده است تا مورد رضایت شما عزیزان قرار گیرد. بسیار خوشحال خواهیم شد اگر که شما هم پیشنهادات و توضیحات تکمیلی خود را برای ما ارسال بفرمایید.