الگوریتم جنگل تصادفی چیست و چگونه قیمت بیت کوین را پیش‌بینی می‌کند؟

توسط کارن آهنگری
|
26 آبان 1400
|
زمان مطالعه:  10 دقیقه
الگوریتم جنگل تصادفی چیست و چگونه قیمت بیت کوین را پیش‌بینی می‌کند؟

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

توضیحاتی برای آشنایی با جنگل­های تصادفی

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

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

نحوه تشکیل و عملکرد جنگل تصادفی چیست؟

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

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

Scikit Learn از کتابخانه‌های متن‌باز، مفید، پرکاربرد و قدرتمند در زبان برنامه‌نویسی پایتون است که برای اهداف یادگیری ماشین به کار می‌رود.

دانلود ماهنامه بهمن ماه دامیننس

برافراشته شدن پرچم بیت کوین در وال استریت

    الگوریتم جنگل تصادفی چگونه کار می­‌کند؟

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

    اجزای درخت تصمیم چیست؟

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

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

    مثالی ساده از چگونگی کارکرد الگوریتم جنگل تصادفی

    مزایای به کارگیری الگوریتم جنگل تصادفی چیست؟

    مزایای به کارگیری تکنیک جنگل تصادفی، شامل موارد زیر است:

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

    تفاوت‌های به کارگیری درخت تصمیم و جنگل تصادفی چیست؟

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

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

    مثالی برای توضیح و تفهمیم کارکرد جنگل­‌های تصادفی

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

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

    نتیجه­‌ی انتخاب شده توسط اکثر درختان تصمیم، انتخاب نهایی خواهد بود. برای مثال اگر سه درخت، خرید را پیش‌­بینی کند و یک درخت نخریدن را، پیش­‌بینی نهایی “خرید” خواهد بود. و در این صورت پیش‌­بینی می­‌شود که مشتری، گوشی را بخرد.

    اهمیت ویژگی­‌های جنگل تصادفی چیست؟

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

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

    نحوه طبقه­‌بندی در جنگل­‌های تصادفی چگونه است؟

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

    رگرسیون در جنگل­‌های تصادفی چیست؟

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

    شما می­‌توانید رگرسیون­‌های تصادفی جنگل را در برنامه­‌های مختلفی مانند R، SAS و python اجرا کنید. در رگرسیون یک جنگل تصادفی، هر درخت پیش­بینی خاصی را تولید می‌­کند. میانگین پیش‌­بینی هر درخت، خروجی حاصل از رگرسیون است. البته این مدل، برخلاف اصول طبقه‌­بندی جنگل تصادفی است که خروجی آن توسط حالت کلاس در درختان تصمیم، تعیین می­‌شد. اگرچه رگرسیون جنگل تصادفی و رگرسیون خطی، از یک مفهوم پیروی می­‌کنند، اما از نظر ریاضی و حالت آن‌ها در تابع باهم تفاوت دارند. تابع رگرسیون خطی، y=bx+c است. اما عملکرد یک رگرسیون جنگل تصادفی، پیچیده و مانند جعبه سیاه است.

    کاربردهای جنگل تصادفی در کسب و کارهای امروزی

    برخی از کاربردهای جنگل تصادفی در کسب و کارهای پرطرفدار امروزی، می‌­تواند شامل موارد زیر باشد:

    • بانکداری

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

    • سلامت و مراقبت­‌های بهداشتی

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

    • بازار سهام

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

    • تجارت الکترونیک

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

    چه زمانی لازم است از به کار بردن سیستم جنگل تصادفی اجتناب کنیم؟

    استفاده از الگوریتم­‌های جنگل تصادفی در شرایط زیر ایده‌­آل نیستند:

    • برون یابی

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

    • داده‌­های پراکنده

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

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

    بررسی مزایا و معایب جنگل تصادفی

    با توجه به توضیحاتی که در این مقاله ارائه شد، مزایای الگوریتم جنگل تصادفی شامل موارد زیر است:

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

    اما معایب جنگل تصادفی شامل موارد زیر است:

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

    الگوریتم جنگل تصادفی، چگونه قیمت بیت کوین را پیش‌بینی می‌کنند؟

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

    نحوه ی کارکرد الگوریتم جنگل تصادفی

    تصویر شماره 1

     

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

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

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

    نحوه ی کارکرد الگوریتم جنگل تصادفی

    تصویر شماره 2

     

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

    بیش از 40 اندیکاتور مثل میانگین وزنی حجم قیمت (VWAP)، شاخص جریان پول (MFI)، میانگین متحرک ساده (SMA)، شاخص قدرت نصبی (RSI)، ابر ایچیموکو و بسیاری از موارد دیگر در تحلیل تکنیکال مورد کاربرد قرار می‌گیرد. علاوه‌بر آن، تایم‌فریم‌های هر کدام از موارد نیز باید در نظر گرفته شود. برای مثال، می‌توان از تایم فریم‌های روزانه، هفتگی، سی‌روزه و 90 روزه استفاده کرد.

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

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

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

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

    گفتار پایانی!

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

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

    سوالات متداول!

    الگوریتم جنگل تصادفی چیست؟

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

    مزایای الگوریتم جنگل تصادفی چیست؟

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

    اشتراک گذاری:
    دیدگاه‌ها
    در پاسخ به دیدگاه کاربر