A função predict() de R de­sem­pe­nha um papel especial no contexto da apren­di­za­gem au­to­má­tica, pois permite fazer previsões para novos dados que não foram vistos an­te­ri­or­mente.

O que faz a função predict() do R?

A função predict() em R serve para fazer previsões para pontos de dados novos ou exis­ten­tes com base num modelo es­ta­tís­tico pre­vi­a­mente concebido. Pode criar este modelo através de regressão linear, regressão logística, árvores de decisão ou outras técnicas de modelação.

Esta é a sintaxe do predict() em R

A função predict() requer como ar­gu­men­tos o modelo treinado e os pontos de dados para os quais as previsões serão feitas. De­pen­dendo do tipo de modelo, pode es­pe­ci­fi­car di­fe­ren­tes opções e pa­râ­me­tros. O resultado é um vetor de previsões que pode utilizar para diversos fins ana­lí­ti­cos, como avaliação do de­sem­pe­nho do modelo, tomada de decisões ou vi­su­a­li­za­ção dos dados re­sul­tan­tes.

predict(object, newdata, interval)
R
  • object: o modelo treinado ao qual você aplicará as previsões.
  • newdata: os pontos de dados para as previsões.
  • interval: um argumento opcional que permite es­pe­ci­fi­car o tipo de intervalo de confiança (confidence para valores médios, prediction para previsões).

Exemplo de uti­li­za­ção da função predict em R

No exemplo a seguir, você verá como predict() funciona no R. Para isso, ele usa um conjunto de dados per­so­na­li­zado com valores de ve­lo­ci­dade e distância.

Criar e vi­su­a­li­zar dados

# Creating a data frame with custom speed and distance values
custom_data <- data.frame(speed = c(15, 20, 25, 30, 35),
    distance = c(30, 40, 50, 60, 70))
# Displaying the custom data frame
print("Custom Data Frame:")
print(custom_data)
R

Na primeira etapa deste exemplo, crie um conjunto de dados per­so­na­li­zado para analisar a relação entre a ve­lo­ci­dade (speed) e a distância per­cor­rida (distance). Use a função data.frame() para criar uma estrutura de dados e defina valores es­pe­cí­fi­cos para as variáveis speed e distance usando c(15, 20, 25, 30, 35) e c(30, 40, 50, 60, 70).

Depois de criar o conjunto de dados, visualize-os uti­li­zando a função print() para verificar a estrutura e os valores atri­buí­dos ao novo quadro de dados.

Resultado:

"Custom Data Frame:"
    speed distance
1        15        30
2        20        40
3        25        50
4        30        60
5        35        70
R

Criar modelo linear

# Creating a linear model for the custom data frame
custom_model <- lm(distance ~ speed, data = custom_data)
# Printing the model results
print("Model Results:")
print(summary(custom_model))
R

Resultado:

"Model Results:"
Call:
lm(formula = distance ~ speed, data = custom_data)
Residuals:
     1        2        3        4        5
    -2     -1        1        0        2
Coefficients:
(Intercept)     -10.00    15.81    -0.632    0.55897
speed                         2.00        0.47            4.254    0.01205
R

De­sen­volva um modelo linear (custom_model) para o conjunto de dados que modela a relação entre ve­lo­ci­dade e distância. Obtenha os re­sul­ta­dos do modelo, incluindo os co­e­fi­ci­en­tes e as in­for­ma­ções es­ta­tís­ti­cas.

Definir novos valores de ve­lo­ci­dade e fazer previsões

# Creating a data frame with new speed values
new_speed_values <- data.frame(speed = c(40, 45, 50, 55, 60))
# Predicting future distance values using the linear model
predicted_distance <- predict(custom_model, newdata = new_speed_values)
R

Defina outro conjunto de dados (new_speed_values) com novos valores de ve­lo­ci­dade. Em seguida, utilize a função predict() no R para fazer previsões dos valores de distância as­so­ci­a­dos, uti­li­zando o modelo linear que criou an­te­ri­or­mente.

Mostrar previsões

# Displaying the predicted values
print("Predicted Distance Values:")
print(predicted_distance)
R

A saída mostra os valores de distância previstos em função da ve­lo­ci­dade:

"Predicted Distance Values:"
               1                2                  3                 4                   5
 80.0000     90.0000    100.0000  110.0000     120.0000
R
Ir para o menu principal