مهم‌ترین الگوریتم‌های یادگیری ماشین (به همراه کدهای پایتون و R) — بخش چهارم: درخت تصمیم

۲۴۶ بازدید
آخرین به‌روزرسانی: ۱۴ شهریور ۱۴۰۲
زمان مطالعه: ۱ دقیقه
مهم‌ترین الگوریتم‌های یادگیری ماشین (به همراه کدهای پایتون و R) — بخش چهارم: درخت تصمیم

این الگوریتم یکی از الگوریتم‌های موردعلاقه عده کثیری از افراد است و به‌وفور استفاده می‌شود. این الگوریتم نوعی الگوریتم یادگیری نظارت‌شده است که اغلب برای مسائل کلاس‌بندی استفاده می‌شود. نکته جالب این است که این الگوریتم هم برای متغیرهای وابسته دسته‌ای استفاده می‌شود و هم متغیرهای پیوسته. در این الگوریتم جمعیت به دو یا چند مجموعه همگن افراز می‌شود. این کار بر اساس مهم‌ترین خصیصه‌ها/متغیرهای مستقل برای ایجاد گروه‌های متمایز تا حد ممکن صورت می‌گیرد.

فهرست مطالب این نوشته

در تصویر فوق می‌توانید ببینید که جمعیت بر اساس چند خصیصه برای شناسایی این که «افراد بازی می‌کنند یا نه» به چهار گروه متفاوت کلاس‌بندی شده است. برای افراز جمعیت به گروه‌های مختلف ناهمگون این الگوریتم از تکنیک‌هایی مانند جینی (Gini)، بهره اطلاعات، مربع کای، و آنتروپی استفاده می‌کند.

بهترین روش درک نحوه کار درخت تصمیم بازی Jezzball است. این یک بازی کلاسیک مایکروسافت (تصویر زیر) است. در ابتدا یک اتاق با دیوارهای متحرک دارید و باید دیوارهای جدید را چنان ایجاد کنید که ناحیه‌ای که خالی از توپ است به بیشینه مقدار خود برسد.

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

کد پایتون

#Import Library

#Import other necessary libraries like pandas, numpy...

from sklearn import tree

#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset

# Create tree object

model = tree.DecisionTreeClassifier(criterion='gini') # for classification, here you can change the algorithm as gini or entropy (information gain) by default it is gini

# model = tree.DecisionTreeRegressor() for regression

# Train the model using the training sets and check score

model.fit(X, y)

model.score(X, y)

#Predict Output

predicted= model.predict(x_test)

کد R

library(rpart)

x <- cbind(x_train,y_train)

# grow tree

fit <- rpart(y_train ~., data = x,method="class")

summary(fit)

#Predict Output

predicted= predict(fit,x_test)

در بخش بعدی این سلسله مطالب شما را با الگوریتم SVM آشنا می‌کنیم.

بر اساس رای ۵ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *