بازگشت به دوره

آموزش رایگان صفر تا صد یادگیری ماشین (Machine Learning) به زبان ساده

0% تکمیل‌شده
0/0 مرحله

ماتریس سردرگمی یکی از ابزارهای مهم در یادگیری ماشین است که برای ارزیابی دقت مدل‌های دسته‌بندی (Classification) استفاده می‌شود.

درخت تصمیم‌گیری

📌 فهرست مطالب

1️⃣ درخت تصمیم‌گیری چیست؟
2️⃣ مثال واقعی: رفتن به یک نمایش کمدی
3️⃣ آماده‌سازی داده‌ها در پایتون
4️⃣ ساخت درخت تصمیم‌گیری در پایتون
5️⃣ تفسیر خروجی درخت
6️⃣ پیش‌بینی داده‌های جدید

1️⃣ درخت تصمیم‌گیری چیست؟ 🧐

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

🔹 کاربردها:
✅ پیش‌بینی اینکه یک مشتری از فروشگاه خرید خواهد کرد یا نه
✅ تشخیص بیماری در علم پزشکی بر اساس علائم بیمار
✅ تصمیم‌گیری در مسائل مالی مثل اعتبارسنجی وام

2️⃣ مثال واقعی: رفتن به یک نمایش کمدی 🎭

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

📊 جدول داده‌ها:

جدول واکنش‌گرا
سنتجربهرتبه کمدینملیترفتن (Go)
36109UK❌ خیر
42124USA❌ خیر
2346N❌ خیر
5244USA❌ خیر
43218USA✅ بله
35149UK✅ بله

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

3️⃣ آماده‌سازی داده‌ها در پایتون 🛠️

برای استفاده از داده‌ها در مدل، باید متغیرهای متنی (مانند ملیت و تصمیم نهایی) را به اعداد تبدیل کنیم. این کار را با متد ()map در pandas انجام می‌دهیم.

📌 تبدیل داده‌های متنی به عددی:

import pandas as pd

df = pd.read_csv("data.csv")

# تبدیل نام کشورها به عدد
nationality_map = {'UK': 0, 'USA': 1, 'N': 2}
df['Nationality'] = df['Nationality'].map(nationality_map)

# تبدیل پاسخ بله/خیر به 1 و 0
go_map = {'YES': 1, 'NO': 0}
df['Go'] = df['Go'].map(go_map)

print(df.head())

4️⃣ ساخت درخت تصمیم‌گیری در پایتون 🌳

حالا که داده‌های ما آماده شده‌اند، می‌توانیم یک مدل درخت تصمیم‌گیری را با scikit-learn بسازیم.

📌 انتخاب ویژگی‌ها و هدف:

from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
import matplotlib.pyplot as plt

# تعیین ویژگی‌های ورودی و متغیر هدف
features = ['Age', 'Experience', 'Rank', 'Nationality']
X = df[features]
y = df['Go']

# ایجاد مدل و آموزش آن
dtree = DecisionTreeClassifier()
dtree = dtree.fit(X, y)

# نمایش درخت تصمیم‌گیری
tree.plot_tree(dtree, feature_names=features)
plt.show()

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

5️⃣ تفسیر خروجی درخت 📊

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

در هر شاخه‌ی درخت، یک شرط وجود دارد که داده‌ها را به دو بخش تقسیم می‌کند. مثلا:

🔹 Rank <= 6.5:
🔸 اگر رتبه‌ی کمدین 6.5 یا کمتر باشد، به شاخه چپ می‌رویم.
🔸 اگر رتبه‌ی کمدین بیشتر از 6.5 باشد، به شاخه راست می‌رویم.

📌 شاخص Gini:
مقداری بین 0 تا 0.5 است که نشان می‌دهد یک دسته چقدر خالص است.

✅ اگر Gini = 0 باشد، یعنی همه داده‌های یک گروه کاملاً همسان هستند.
✅ اگر Gini = 0.5 باشد، یعنی داده‌ها به‌طور مساوی بین دو دسته تقسیم شده‌اند.

6️⃣ پیش‌بینی داده‌های جدید 🔮

حالا که مدل آموزش دیده، می‌توانیم از آن برای پیش‌بینی تصمیمات جدید استفاده کنیم. مثلا، فرض کنید می‌خواهیم تصمیم بگیریم که آیا یک کمدین 40 ساله آمریکایی با 10 سال تجربه و رتبه‌ی 7 ارزش دیدن دارد یا نه؟

📌 پیش‌بینی با مدل:

prediction = dtree.predict([[40, 10, 7, 1]])
print(prediction)

🔹 اگر خروجی 1 باشد یعنی مدل پیشنهاد می‌کند که به نمایش بروید.
🔹 اگر خروجی 0 باشد یعنی مدل پیشنهاد می‌کند که به نمایش نروید.

 


نتیجه‌گیری 🎯

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

🔹 حالا نوبت شماست! داده‌های خودتان را تست کنید و ببینید مدل شما چگونه تصمیم می‌گیرد! 😊🚀