آموزش رایگان صفر تا صد یادگیری ماشین (Machine Learning) به زبان ساده
-
خوش آمدید به یادگیری ماشین!
-
میانگین، میانه و مد در یادگیری ماشین
-
انحراف معیار (Standard Deviation) در یادگیری ماشین
-
صدک (Percentile) در یادگیری ماشین
-
توزیع دادهها در یادگیری ماشین
-
توزیع نرمال دادهها در یادگیری ماشین
-
نمودار پراکندگی (Scatter Plot) در یادگیری ماشین
-
رگرسیون خطی در یادگیری ماشینی
-
رگرسیون چندجملهای در یادگیری ماشین
-
رگرسیون چندگانه در یادگیری ماشین
-
روش Train/Test در یادگیری ماشین
-
درخت تصمیمگیری در یادگیری ماشین
-
ماتریس سردرگمی (Confusion Matrix) در یادگیری ماشین
-
خوشهبندی سلسلهمراتبی (Hierarchical Clustering) در یادگیری ماشین
-
رگرسیون لجستیک در یادگیری ماشین
-
Grid Search در یادگیری ماشین
-
پردازش دادههای دستهای (Categorical Data) در یادگیری ماشین
-
خوشهبندی K-Means در یادگیری ماشین
-
یادگیری Bootstrap Aggregation (Bagging) در یادگیری ماشین
-
کراس والیدیشن (Cross Validation) در یادگیری ماشین
-
منحنی AUC - ROC در یادگیری ماشین
-
الگوریتم K-Nearest Neighbors (KNN) در یادگیری ماشین
ماتریس سردرگمی (Confusion Matrix) در یادگیری ماشین
ماتریس سردرگمی یکی از ابزارهای مهم در یادگیری ماشین است که برای ارزیابی دقت مدلهای دستهبندی (Classification) استفاده میشود.
📌 فهرست مطالب
1️⃣ درخت تصمیمگیری چیست؟
2️⃣ مثال واقعی: رفتن به یک نمایش کمدی
3️⃣ آمادهسازی دادهها در پایتون
4️⃣ ساخت درخت تصمیمگیری در پایتون
5️⃣ تفسیر خروجی درخت
6️⃣ پیشبینی دادههای جدید
1️⃣ درخت تصمیمگیری چیست؟ 🧐
درخت تصمیمگیری یک مدل یادگیری ماشین است که دادهها را تجزیهوتحلیل کرده و یک سری قوانین تصمیمگیری ایجاد میکند. این مدل به شکل یک درخت با شاخههای مختلف نمایش داده میشود، که هر شاخه یک انتخاب را نشان میدهد.
🔹 کاربردها:
✅ پیشبینی اینکه یک مشتری از فروشگاه خرید خواهد کرد یا نه
✅ تشخیص بیماری در علم پزشکی بر اساس علائم بیمار
✅ تصمیمگیری در مسائل مالی مثل اعتبارسنجی وام
2️⃣ مثال واقعی: رفتن به یک نمایش کمدی 🎭
فرض کنید شخصی میخواهد تصمیم بگیرد که آیا به یک نمایش کمدی برود یا نه؟ او قبلاً اطلاعاتی دربارهی سن، تجربه، رتبه کمدین، و ملیت کمدین ثبت کرده است و مشخص کرده که در نهایت به نمایش رفته یا نه.
📊 جدول دادهها:
سن | تجربه | رتبه کمدین | ملیت | رفتن (Go) |
---|---|---|---|---|
36 | 10 | 9 | UK | ❌ خیر |
42 | 12 | 4 | USA | ❌ خیر |
23 | 4 | 6 | N | ❌ خیر |
52 | 4 | 4 | USA | ❌ خیر |
43 | 21 | 8 | USA | ✅ بله |
35 | 14 | 9 | UK | ✅ بله |
حالا میخواهیم از این اطلاعات برای آموزش یک مدل درخت تصمیمگیری در پایتون استفاده کنیم.
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
باشد یعنی مدل پیشنهاد میکند که به نمایش نروید.
نتیجهگیری 🎯
✅ درخت تصمیمگیری یک روش قدرتمند و ساده برای پیشبینی بر اساس دادههای قبلی است.
✅ میتوان آن را برای هر نوع تصمیمگیری، از پزشکی گرفته تا کسبوکار، استفاده کرد.
✅ در این مقاله یاد گرفتیم که چگونه یک درخت تصمیمگیری را با پایتون پیادهسازی کنیم و از آن برای پیشبینی استفاده کنیم.
🔹 حالا نوبت شماست! دادههای خودتان را تست کنید و ببینید مدل شما چگونه تصمیم میگیرد! 😊🚀