وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

ترسیم درختان تصمیم با استفاده از Python و Scikit-Learn

0 7
زمان لازم برای مطالعه: 2 دقیقه


درختان تصمیم به طور گسترده در مسائل یادگیری ماشین استفاده می شوند. ما فرض می کنیم که شما قبلاً با مفهوم درخت تصمیم آشنا هستید و به تازگی الگوریتم مبتنی بر درخت خود را آموزش داده اید!

حالا وقت آن است که سعی کنیم توضیح دهیم درخت چگونه به تصمیمی رسیده است. این بدان معنی است که لازم است به زیر کاپوت نگاهی بیندازید و ببینید که چگونه مدل داده ها را به صورت داخلی برای ساخت درخت تقسیم کرده است.

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

from sklearn import datasets
from sklearn.model_selection import train_test_split

SEED = 42

data = datasets.load_wine()
X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=SEED)

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

dt = DecisionTreeClassifier(max_depth=4,
                            random_state=SEED)
dt.fit(X_train, y_train)

عالی! توجه داشته باشید که ما حداکثر عمق 4 را تعریف کرده ایم، به این معنی که درخت تولید شده دارای 5 سطح خواهد بود. این به تفسیرپذیری هنگام ترسیم کمک می کند، زیرا ما فقط 5 سطح برای خواندن خواهیم داشت.

اکنون، برای ترسیم درخت و بدست آوردن شکاف های زیرین ساخته شده توسط مدل، از Scikit-Learn استفاده می کنیم. plot_tree() روش و matplotlib برای تعیین اندازه برای طرح

شما مدل مناسب را به plot_tree() روش به عنوان استدلال اصلی همچنین نام ویژگی‌ها و کلاس‌ها را ارسال می‌کنیم و طرح را طوری سفارشی می‌کنیم که هر درخت node با لبه‌های گرد نمایش داده می‌شود، با توجه به کلاس‌ها با رنگ‌ها پر شده و نسبت هر کلاس در هر کلاس نمایش داده می‌شود. node:

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

features = data.feature_names
classes = data.target_names

plt.figure(figsize=(10, 8))
plot_tree(dt,
          feature_names=features,
          class_names=classes,
          rounded=True, 
          filled=True, 
          proportion=True); 

ترسیم درختان تصمیم با استفاده از Python و Scikit-Learn

تمام، این درخت زیرین رسم شده برای این مدل است!

توجه داشته باشید که می توانید ببینید که اولین ویژگی درخت برای تمایز بین شراب ها شدت رنگ و به دنبال آن مقدار پرولین و فلاونوئیدها است. همچنین، از آنجایی که درخت را پر کرده ایم، class_0 گره ها نارنجی هستند، class_1 گره ها سبز هستند و class_2 گره ها بنفش هستند

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-02 15:30:06

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید