R ile Rastgele Orman Regresyonu

# Gerekli kütüphaneleri yükle
library(randomForest)
library(ggplot2)

set.seed(123)

data <- mtcars

Veriyi eğitim ve test setlerine ayır (Train/test split)

train_indices <- sample(1:nrow(data), 0.7 * nrow(data))
train_data <- data[train_indices, ]
test_data <- data[-train_indices, ]

Rastgele Orman modeli eğitimi ve tahmin yapılması

rf_model <- randomForest(mpg ~ ., data = train_data, ntree = 500)

predictions <- predict(rf_model, newdata = test_data)

RMSE hesapla

RMSE: Root mean square error (Kök Ortalama Kare Hatası)

rmse <- sqrt(mean((test_data$mpg - predictions)^2))
cat("Kök Ortalama Kare Hatası:", rmse, "\n")
Kök Ortalama Kare Hatası: 2.00452 

Gerçek ve tahmin edilen değerler

ggplot(data.frame(actual = test_data$mpg, predicted = predictions), aes(x = actual, y = predicted)) +
  geom_point(alpha = 0.5) +
  geom_abline(intercept = 0, slope = 1, color = "red", linetype = "dashed") +
  labs(x = "Gerçek Değerler", y = "Tahmin Edilen Değerler", title = "Rastgele Orman Regresyonu: Gerçek ve Tahmin Edilen")

Özellik önemi

importance <- importance(rf_model)
print(importance)
     IncNodePurity
cyl      152.64821
disp     224.33387
hp       158.42647
drat      43.37372
wt       178.44424
qsec      34.05620
vs        25.67666
am        19.73485
gear      10.54314
carb      21.62506

Özellik önemi - figür

importance_df <- data.frame(feature = rownames(importance), importance = importance[, 1])
ggplot(importance_df, aes(x = reorder(feature, importance), y = importance)) +
  geom_bar(stat = "identity") +
  coord_flip() +
  labs(x = "Özellikler", y = "Önem", title = "Rastgele Orman: Özellik Önemi")

Alternatif kaynak: http s://hackernoon.com/random-forest-regression-in-r-code-and-interpretation