درختهای تصمیمگیری یکی از الگوریتمهای محبوب یادگیری ماشین هستند. درک، تفسیر و پیادهسازی آنها آسان است و آنها را به انتخابی ایدهآل برای مبتدیان در زمینه یادگیری ماشین تبدیل میکند. در این مقاله با درختهای تصمیمگیری آشنا خواهیم شد، در پایان درک کاملی از درختان تصمیمگیری و نحوه استفاده از آنها برای حل مسائل دنیای واقعی خواهید داشت.
مقدمهای بر درختهای تصمیم
تعریف
درخت های تصمیم گیری، الگوریتمالگوریتم چیست به زبان ساده و با مثال های فراواندر این مقاله به زبان بسیار ساده و با مثال های متعدد توضیح داده شده که الگوریتم چیست و چه کاربردهایی دارد های قدرتمند یادگیری ماشینیادگیری ماشین چیست و چرا مهم است؟ - Machine learning (ML)تعریف یادگیری ماشین : ماشین لرنینگ (Machine Learning یا به اختصار ML) باعث میشود که خود ماشینها با آنالیز داده ها امکان یادگیری و پیشرفت داشته باشند با نظارت هستند که هم برای طبقهبندی و هم برای کارهای رگرسیون استفاده میشوند. آنها به دلیل سادگی، تفسیرپذیری و توانایی مدیریت دادههای عددی و دستهبندی به طور گسترده در زمینههای مختلف به کار میروند. درخت تصمیم گیری را میتوان بهعنوان یک ساختار فلوچارتفلوچارت چیست؟ | آموزش الگوریتم فلوچارت | رسم فلوچارتاین مقاله عالی به آموزش رسم فلوچارت برای الگوریتم ها پرداخته و مواردی چون رسم فلوچارت، معرفی برنامه فلوچارت، نمونه سوالات الگوریتم و فلوچارت را بررسی کرده مانند تصور کرد که در آن هر گره داخلی یک تصمیم را براساس یک ویژگی نشان میدهد و هر گره برگ نشاندهنده یک نتیجه یا برچسب کلاس پیشبینیشده است. از گره ریشه به یک گره برگ مسیر مربوط به دنبالهای از تصمیمات است که منجر به پیشبینی نهایی میشود.
کاربرد درخت تصمیم در حوزه های مختلف
امور مالی و بانکی
- امتیازدهی اعتبار: برای ارزیابی اعتبار افراد و مشاغل و کمک به تأیید وام استفاده میشوند.
- تشخیص تقلب: به شناسایی فعالیتهای متقلبانه در تراکنشهای مالی کمک میکنند.
مراقبت های بهداشتی
- تشخیص پزشکی: با ارزیابی علائم، سابقه بیمار و نتایج آزمایش پزشکی به تشخیص بیماریها کمک میکنند.
- توصیه درمانی: میتوانند توصیههای درمانی را براساس ویژگیهای بیمار و دستورالعملهای پزشکی ارائه دهند.
بازاریابی و مدیریت ارتباط با مشتری
- تقسیم بندی مشتری: به تقسیمبندی مشتریان براساس رفتار و ترجیحات آنها برای بازاریابی هدفمند کمک میکنند.
مبانی درخت تصمیم
در شکل زیر، مبانی درخت تصمیم آورده شده است:
اجزای درخت تصمیم
اجزا | توضیحات |
---|---|
گرهها | قسمتهای اساسی یک درخت تصمیمگیری هستند که در دو نوعاند: گره ریشه و گرههای داخلی |
گره ریشه | بالاترین گره درخت است که نشاندهنده نقطه شروع برای تصمیمگیری است. |
گرههای داخلی | گرههای داخلی گرههای میانی بین گره ریشه و گره برگ هستند. |
یالها | یالها شاخههای اتصالدهنده گرهها هستند که نتایج تصمیمگیری را نشان میدهند. |
برگها | برگها گرههای پایانی درخت هستند که نتایج پیشبینیشده را نشان میدهند. |
معیارهای انتخاب ویژگی
به طورکلی ویژگیهای متفاوتی در یک مجموعه داده وجود دارد. ما نمیتوانیم به طور تصادفی یک ویژگی را بهعنوان گره ریشه قرار دهیم و سپس برای هر گره تصمیم گیری همان را دنبال کنیم. انجام این کار منجر به یک مدل بسیار اشتباه میشود که براساس ویژگیهای نامطلوب تصمیمات اشتباه میگیرد؛ بنابراین برای حل این مشکل چیزی به نام معیارهای انتخاب ویِژگی داریم که در اینجا با دو نمونه از این معیارها آشنا میشویم:
- آنتروپی: معیار ناخالصی یا عدم قطعیت دردادهها است، هر چه آنتروپی کمتر باشد، مدل بهتر خواهد بود؛ زیرا کلاسها به دلیل عدم قطعیت کمتر، بهتر تقسیم میشوند.
- بهره اطلاعاتی: کاهش عدم قطعیت را باتوجه به برخی ویژگیها اندازهگیری میکند و همچنین یک عامل تعیینکننده است که کدام ویژگی باید بهعنوان گره تصمیم یا گره ریشه انتخاب شود.
تکنیک های رشد و هرس درختان
رشد درخت
- تقسیم باینری بازگشتی: مجموعه داده به صورت بازگشتی براساس معیارهای انتخاب ویژگی تقسیم میشود تا زمانی که یک معیار توقف برآورده شود و یک ساختار درختی سلسلهمراتبی ایجاد کند.
- تقسیم حریصانه اول بهترین: همه تقسیمهای ممکن در هر گره ارزیابی میشوند و یکی که معیار امتیازدهی را به حداکثر میرساند انتخاب میشود.
هرس درختان
- قبل از هرس: محدودیتهایی در طول رشد درخت برای جلوگیری از برازش بیش از حد تعیین میشود، مانند محدود کردن عمق درخت
- پس از هرس: درخت کامل ساخته میشود و سپس با حذف شاخهها یا گرههای غیرضروری دوباره هرس میشود.
الگوریتم های محبوب درخت تصمیم
- ID3: این الگوریتم از بهره اطلاعاتی بهعنوان معیار تقسیم استفاده میکند و برای ویژگیهای دستهبندی مناسب است و از یک رویکرد حریصانه از بالا به پایین برای ساخت درخت های تصمیم پیروی میکند.
- C4.5: حالت توسعه یافته ID3 که هر دو ویژگی طبقهبندی و پیوسته را کنترل میکند. از نسبت بهره اطلاعاتی برای انتخاب ویژگی استفاده میکند.
- CART: یک الگوریتم همهکاره است که برای کارهای طبقهبندی و رگرسیون استفاده میشود.
الگوریتم های درخت تصمیم چگونه کار میکنند؟
مراحل کار الگوریتم درخت تصمیم، در تصویر زیر بهترتیب آمده است:
- با یک گره ریشه که کل مجموعه داده را نشان میدهد، شروع کنید.
- یک ویژگی را براساس معیار انتخاب ویژگی، انتخاب کنید.
- دادهها را براساس مقادیر، به زیرمجموعهها تقسیم کنید.
- برای هر زیرمجموعه گرههای فرزند ایجاد کنید و فرآیند را بهصورت بازگشتی تکرار کنید.
- هنگامی که یک معیار توقف برآورده شد، بازگشت را متوقف کنید.
- برچسبهای کلاس یا مقادیر پیشبینی شده را براساس کلاس اکثریت یا مقدار متوسط به گرههای برگ اختصاص دهید.
- در صورت تمایل، از تکنیکهای هرس برای حذف قسمتهای غیرضروری استفاده کنید.
پیاده سازی الگوریتم با پایتون
# Importing the required libraries
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create a decision tree classifier
clf = DecisionTreeClassifier()
# Fit the classifier to the training data
clf.fit(X_train, y_train)
# Make predictions on the testing data
y_pred = clf.predict(X_test)
# Calculate the accuracy of the model
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
در این مثال، از مجموعه داده محبوب Iris در پکیج Scikit-Learn استفاده شده است؛ شما میتوانید این کد را با توجه به مجموعه دادهها و نیازهای خاص خود، تغییر دهید.
تجسم درخت تصمیم
- نمودارهای درختی
- کتابخانه های پایتونکتابخانه های پایتون چیست – معرفی کتابخانه های مهم پایتوناین مقاله عالی به معرفی کتابخانه های پایتون پرداخته و کتابخانه های مهم پایتون و همچنین مهمترین کتابخانه های پایتون برای علم داده را معرفی کرده مانند Matplotlib و Graphviz
- نرمافزار درخت تصمیمگیری مانند Weka یا Orange
- ابزارهای تعاملی مبتنی بر وب Plotly و Tableau
یک مثال از دنیای واقعی
اگر تا این جای کار موارد گفته شده بالا را درک نکردید، اصلاً نگران نباشید چرا که این مثال برای شماست. مجموعه داده زیر را در نظر بگیرید. میخواهیم با توجه به داروی تجویز شده برای افراد زیر پیشبینی کنیم که برای بیمار جدید کدام نوع دارو باید تجویز شود. پس هدفمان این است که برای این مجموعه داده یک درخت تصمیم گیری بسازیم.
چیزی که در درخت تصمیم گیری مهم است این است که مشخص کنیم بهترین ویژگی برای تقسیم دادهها کدام است. اگر کلسترول را بهعنوان اولین ویژگی برای تقسیم دادهها انتخاب کنیم در صورت بالا بودن نمیتوانیم بگوییم کدام دارو برای او مناسب است، برای حالت نرمال هم همینطور. پس این یک نمونه از انتخاب بد ویژگیها است.
حال ویژگی جنسیت را در نظر بگیرید، این ویژگی نسبت به کلسترول برای انتخاب بهتر است؛ چون در شاخه زنها میتوان تصمیم نسبتاً قطعی گرفت و برای شاخه مردها یک مرحله جلوتر میرویم دوباره کلسترول را تست میکنیم:
همانطور که متوجه شدید انتخاب ویژگی ها خیلی مهم است و هدفش خلوص برگها پس از تقسیم است. ناخالصی گرهها با آنتروپی محاسبه میشود. در درخت های تصمیم گیری به دنبال درختهایی هستیم که کمترین آنتروپی را در گرههایشان دارند. فرمول آنتروپی به صورت زیر است:
$\mathrm{p}\left(\mathrm{A}\right){{\mathrm{log}}_{\mathrm{2}} \left(\mathrm{p}\left(\mathrm{A}\right)\right)\ }\mathrm{-}\mathrm{p}\left(\mathrm{b}\right){{\mathrm{log}}_{\mathrm{2}} \left(\mathrm{p}\left(\mathrm{b}\right)\right)\ }$
ما باید آنتروپی دادهها را قبل تقسیم و بعد تقسیم محاسبه کنیم. در زیر آنتروپی بعد از تقسیم در صورت انتخاب کلسترول و جنسیت محاسبه شده است:
حال باید ببینیم با توجه به این آنتروپیها، کدام ویژگی را باید اول انتخاب کنیم. اینجاست که معیار بهره اطلاعاتی خودش را نشان میدهد که با فرمول زیر قابل محاسبه است:
$\text{Inforamtion Gain = (Entropy before split) – (Weighted entropy after split)}$
آنتروپی و بهره اطلاعاتی متضاد هماند، ینی در صورت زیاد شدن یکی، دیگری کم میشود. بهره اطلاعاتی را برای هر ویژگی محاسبه میکنیم و هر کدام زیاد شد آن ویژگی را اول انتخاب میکنیم و همانطور که در زیر قابل مشاهده است ما باید وِیژگی جنسیت را انتخاب کنیم.
حال سؤال این است که بعد از جنسیت، کدام ویژگی را باید انتخاب کنیم. همانطور که قابل حدس است باید دقیقاً همین فرآیند را برای هر شاخه دوباره تکرار کنیم و تا رسیدن به خالصترین برگها آن را ادامه دهیم. پس این همان روشی بود که با آن، درخت تصمیم گیری را میتوان ساخت.
مزایا و معایب درخت تصمیم
مزایا
- در مقایسه با سایر الگوریتمها، به تلاش کمتری برای آمادهسازی دادهها در طول پیشپردازش نیاز دارند.
- نیازی به نرمالسازی دادهها ندارد.
- مقادیر گمشده به میزان قابل توجهی بر روند ساخت درخت تأثیر نمیگذارند.
- این درخت بسیار بصری است و بهراحتی برای تیمهای فنی و همچنین سهامداران توضیح داده میشود.
معایب
- یک تغییر کوچک در دادهها میتواند باعث تغییر بزرگ در ساختار درخت شود که باعث بیثباتی میشود.
- گاهی اوقات محاسبه میتواند بسیار پیچیدهتر از الگوریتمهای دیگر باشد.
- اغلب مستلزم زمان بیشتری برای آموزش مدل است.
- آموزش این درخت نسبتاً گران است، زیرا پیچیدگی و زمان صرف شده بیشتر است.
جمعبندی
در این مقاله با درخت های تصمیم گیری آشنا شدیم و نحوه ساخت این نوع درخت را با یک مثال عملی یاد گرفتیم. امیدوارم از خواندن این مقاله لذت برده باشید.
درخت تصمیم گیری چیست؟ با ذکر مثال توضیح دهید؟
درخت تصمیم گیری سازهای درخت مانند است که مجموعهای از تصمیمات و پیامدهای احتمالی آنها را نشان میدهد. در یادگیری ماشینی برای کارهای طبقهبندی و رگرسیون استفاده میشود. نمونهای از درخت تصمیمگیری، فلوچارت است که به فرد کمک میکند تا براساس شرایط آب و هوایی تصمیم بگیرد چه بپوشد.
هدف از درخت تصمیم چیست؟
هدف این درخت، تصمیم گیری یا پیشبینی با یادگیری از دادههای گذشته است که به درک روابط بین متغیرهای ورودی و نتایج آنها و شناسایی مهمترین ویژگیهایی که در تصمیم نهایی تاثیرگذار است، کمک میکند.
کدام الگوریتم برای درخت تصمیم بهتر است؟
بهترین الگوریتم برای درختان تصمیم گیری به مسئله و مجموعه داده بستگی دارد. الگوریتمهای محبوب درخت تصمیمگیری عبارتند: از ID3، C4.5 و CART