O interfață ușoară cu Scikit-Learn în R: Bayesian și predicție conformală

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

Tisthemachinelearner este o interfață ușoară (de lucru în curs) pentru Scikit-Learn. Iată un exemplu de utilizare bazat pe predicția Bayesiană și conformală.

Dacă nu funcționează direct, încercați să instalați de la sursă.

options(repos = c(
    techtonique = "https://r-packages.techtonique.net",
    CRAN = "https://cloud.r-project.org"
))

install.packages("tisthemachinelearner")
install.packages("tseries")
library("tisthemachinelearner")
library("tseries")
library(MASS)
data(Boston)

set.seed(1243)
train_idx <- sample(nrow(Boston), size = floor(0.8 * nrow(Boston)))
train_data <- Boston(train_idx, )
test_data <- Boston(-train_idx, -14)  # -14 removes 'medv' (target variable)

X_train <- as.matrix(Boston(train_idx, -14))
X_test <- as.matrix(Boston(-train_idx, -14))
y_train <- Boston$medv(train_idx)
y_test <- Boston$medv(-train_idx)
# R6 interface
model <- tisthemachinelearner::Regressor$new(model_name = "BayesianRidge")
start <- proc.time()(3)
model$fit(X_train, y_train)
end <- proc.time()(3)
cat("Time taken:", end - start, "secondsn")

start <- proc.time()(3)
preds_bayesian <- model$predict(X_test, method="bayesian")
end <- proc.time()(3)
cat("Time taken:", end - start, "secondsn")
#print(preds_bayesian)

model <- tisthemachinelearner::Regressor$new(model_name = "RidgeCV")
start <- proc.time()(3)
model$fit(X_train, y_train)
end <- proc.time()(3)
cat("Time taken:", end - start, "secondsn")

start <- proc.time()(3)
preds_conformal <- model$predict(X_test, method="surrogate")
end <- proc.time()(3)
cat("Time taken:", end - start, "secondsn")
#print(preds_conformal)
> mean((preds_bayesian(, "lwr") <= y_test)*(preds_bayesian(, "upr") >= y_test))*100
(1) 99.01961
> mean((preds_conformal(, "lwr") <= y_test)*(preds_conformal(, "upr") >= y_test))*100
(1) 95.09804
> 
par(mfrow=c(1, 2))

x_ordered <- order(y_test)
# Ridge Model Plot
plot(y_test, preds_bayesian(, "fit"),
     main = "Ridge Model Predictions",
     xlab = "Actual MPG", ylab="Predicted MPG", 
     ylim = c(min(preds_bayesian(, "lwr")), 
              max(preds_bayesian(, "upr"))))
# Add shaded prediction intervals
polygon(c(y_test(x_ordered), rev(y_test(x_ordered))),
        c(preds_bayesian(, "lwr")(x_ordered), 
          rev(preds_bayesian(, "upr")(x_ordered))),
        col=rgb(0, 0, 1, 0.2), border=NA)
points(y_test, preds_bayesian(, "fit"))  # Replot points over shading
abline(0, 1, col="red", lty=2)  # Add diagonal line

x_ordered <- order(y_test)
# Ridge Model Plot
plot(y_test, preds_conformal(, "fit"),
     main = "Ridge Model Predictions",
     xlab = "Actual MPG", ylab="Predicted MPG", 
     ylim = c(min(preds_conformal(, "lwr")), 
              max(preds_conformal(, "upr"))))
# Add shaded prediction intervals
polygon(c(y_test(x_ordered), rev(y_test(x_ordered))),
        c(preds_conformal(, "lwr")(x_ordered), 
          rev(preds_conformal(, "upr")(x_ordered))),
        col=rgb(0, 0, 1, 0.2), border=NA)
points(y_test, preds_conformal(, "fit"))  # Replot points over shading
abline(0, 1, col="red", lty=2)  # Add diagonal line

Image-titlu-here

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.