مهمترین الگوریتمهای یادگیری ماشین (به همراه کدهای پایتون و 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 آشنا میکنیم.