از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
ترسیم درختان تصمیم با استفاده از Python و Scikit-Learn
درختان تصمیم به طور گسترده در مسائل یادگیری ماشین استفاده می شوند. ما فرض می کنیم که شما قبلاً با مفهوم درخت تصمیم آشنا هستید و به تازگی الگوریتم مبتنی بر درخت خود را آموزش داده اید!
حالا وقت آن است که سعی کنیم توضیح دهیم درخت چگونه به تصمیمی رسیده است. این بدان معنی است که لازم است به زیر کاپوت نگاهی بیندازید و ببینید که چگونه مدل داده ها را به صورت داخلی برای ساخت درخت تقسیم کرده است.
برای اینکه بتوانیم درخت حاصل را رسم کنیم، بیایید یکی بسازیم. ابتدا یک مجموعه داده شراب اسباب بازی را بارگذاری می کنیم و آن را به مجموعه های قطار و آزمایش تقسیم می کنیم:
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);
تمام، این درخت زیرین رسم شده برای این مدل است!
توجه داشته باشید که می توانید ببینید که اولین ویژگی درخت برای تمایز بین شراب ها شدت رنگ و به دنبال آن مقدار پرولین و فلاونوئیدها است. همچنین، از آنجایی که درخت را پر کرده ایم، class_0
گره ها نارنجی هستند، class_1
گره ها سبز هستند و class_2
گره ها بنفش هستند
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-02 15:30:06