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

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

در تصویر فوق می‌توانید ببینید که جمعیت بر اساس چند خصیصه برای شناسایی این که «افراد بازی می‌کنند یا نه» به چهار گروه متفاوت کلاس‌بندی شده است. برای افراز جمعیت به گروه‌های مختلف ناهمگون این الگوریتم از تکنیک‌هایی مانند جینی (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 آشنا می‌کنیم.

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

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

نظر شما چیست؟

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

مشاهده بیشتر