کنکور کامپیوتر
0
ورود | ثبت نام
نظرات
اشتراک
بالا
علاقه‌مندی

اشتراک
 

درخت تصمیم یا درخت تصمیم گیری چیست و چگونه کار می کند؟

این صفحه عالی به معرفی درخت تصمیم پرداخته و الگوریتم های محبوب درخت تصمیم و اینکه الگوریتم های درخت تصمیم چگونه کار می‌کنند را توضیح داده است

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

مقدمه‌ای بر درخت‌های تصمیم

الگوریتم درخت تصمیم

تعریف

درخت های تصمیم گیری، الگوریتمالگوریتم چیست به زبان ساده و با مثال های فراوانالگوریتم چیست به زبان ساده و با مثال های فراواندر این مقاله به زبان بسیار ساده و با مثال های متعدد توضیح داده شده که الگوریتم چیست و چه کاربردهایی دارد های قدرتمند یادگیری ماشینیادگیری ماشین چیست و چرا مهم است؟ - Machine learning (ML)یادگیری ماشین چیست و چرا مهم است؟ - Machine learning (ML)تعریف یادگیری ماشین : ماشین لرنینگ (Machine Learning یا به اختصار ML) باعث می‌شود که خود ماشین‌ها با آنالیز داده ها امکان یادگیری و پیشرفت داشته باشند با نظارت هستند که هم برای طبقه‌بندی و هم برای کارهای رگرسیون استفاده می‌شوند. آنها به دلیل سادگی، تفسیرپذیری و توانایی مدیریت داده‌های عددی و دسته‌بندی به طور گسترده در زمینه‌های مختلف به کار می‌روند. درخت تصمیم‌ گیری را می‌توان به‌عنوان یک ساختار فلوچارتفلوچارت چیست؟ | آموزش الگوریتم فلوچارت | رسم فلوچارتفلوچارت چیست؟ | آموزش الگوریتم فلوچارت | رسم فلوچارتاین مقاله عالی به آموزش رسم فلوچارت برای الگوریتم ها پرداخته و مواردی چون رسم فلوچارت، معرفی برنامه فلوچارت، نمونه سوالات الگوریتم و فلوچارت را بررسی کرده مانند تصور کرد که در آن هر گره داخلی یک تصمیم را براساس یک ویژگی نشان می‌دهد و هر گره برگ نشان‌دهنده یک نتیجه یا برچسب کلاس پیش‌بینی‌شده است. از گره ریشه به یک گره برگ مسیر مربوط به دنباله‌ای از تصمیمات است که منجر به پیش‌بینی نهایی می‌شود.

کاربرد درخت تصمیم در حوزه های مختلف

امور مالی و بانکی

مراقبت های بهداشتی

بازاریابی و مدیریت ارتباط با مشتری

مبانی درخت تصمیم

در شکل زیر، مبانی درخت تصمیم آورده شده است:

اجزای سازنده ی ساختار درخت تصمیم

اجزای درخت تصمیم

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

معیارهای انتخاب ویژگی

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

تکنیک های رشد و هرس درختان

رشد درخت

هرس درختان

الگوریتم های محبوب درخت تصمیم

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

مراحل کار الگوریتم درخت تصمیم، در تصویر زیر به‌ترتیب آمده است:

  1. با یک گره ریشه که کل مجموعه داده را نشان می‌دهد، شروع کنید.
  2. یک ویژگی را براساس معیار انتخاب ویژگی، انتخاب کنید.
  3. داده‌ها را براساس مقادیر، به زیرمجموعه‌ها تقسیم کنید.
  4. برای هر زیرمجموعه گره‌های فرزند ایجاد کنید و فرآیند را به‌صورت بازگشتی تکرار کنید.
  5. هنگامی که یک معیار توقف برآورده شد، بازگشت را متوقف کنید.
  6. برچسب‌های کلاس یا مقادیر پیش‌بینی شده را براساس کلاس اکثریت یا مقدار متوسط به گره‌های برگ اختصاص دهید.
  7. در صورت تمایل، از تکنیک‌های هرس برای حذف قسمت‌های غیرضروری استفاده کنید.

پیاده سازی الگوریتم با پایتون

# 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 استفاده شده است؛ شما می‌توانید این کد را با توجه به مجموعه داده‌ها و نیازهای خاص خود، تغییر دهید.

تجسم درخت تصمیم

یک مثال از دنیای واقعی

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

یک نمونه از مجموعه داده ها که قرار است براساس آن درخت تصمیم گیری ساخته شود

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

انتخاب بد ویژگی ها در درخت تصمیم

حال ویژگی جنسیت را در نظر بگیرید، این ویژگی نسبت به کلسترول برای انتخاب بهتر است؛ چون در شاخه زن‌ها می‌توان تصمیم نسبتاً قطعی گرفت و برای شاخه مردها یک مرحله جلوتر می‌رویم دوباره کلسترول را تست می‌کنیم:

انتخاب ویژگی بهتر در درخت تصمیم

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

$\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

امتیازدهی5 1 1 1 1 1 1 1 1 1 15.00 امتیاز (1 امتیاز)
اشتراک
بارگذاری نظرات
تلگرام اینستاگرام