La funzione predict() in R svolge un compito par­ti­co­la­re nel contesto dell’ap­pren­di­men­to au­to­ma­ti­co, in quanto permette di calcolare pre­vi­sio­ni per dati nuovi, non ancora in­con­tra­ti.

A cosa serve la funzione predict() in R?

La funzione predict() in R è uno strumento versatile, uti­liz­za­to nella mo­del­la­zio­ne pre­dit­ti­va. Serve a generare pre­vi­sio­ni per punti di dati nuovi o già presenti sulla base di un modello sta­ti­sti­co già pro­get­ta­to. Questo modello può essere creato, ad esempio, mediante re­gres­sio­ne lineare, re­gres­sio­ne logistica, alberi de­ci­sio­na­li o altre tecniche di mo­del­la­zio­ne.

Come è strut­tu­ra­ta la funzione predict() in R

La funzione predict() accetta come argomenti il modello ad­de­stra­to e i punti di dati per i quali devono essere calcolate le pre­vi­sio­ni. A seconda del tipo del modello è possibile spe­ci­fi­ca­re diverse opzioni e parametri. Il risultato è un vettore di pre­vi­sio­ni che può essere poi utile per diversi scopi di analisi. Questi com­pren­do­no la va­lu­ta­zio­ne delle pre­sta­zio­ni del modello, il processo de­ci­sio­na­le o la vi­sua­liz­za­zio­ne dei dati ri­sul­tan­ti.

predict(object, newdata, interval)
R
  • object: il modello ad­de­stra­to sul quale devono essere applicate le pre­vi­sio­ni.
  • newdata: i punti di dati per le pre­vi­sio­ni
  • interval: argomento opzionale per indicare il tipo di in­ter­val­lo di con­fi­den­za (confidence per i valori medi, prediction per le pre­vi­sio­ni)

Esempio di ap­pli­ca­zio­ne della funzione predict in R

L’esempio seguente mostra il fun­zio­na­men­to di predict() in R. A tal fine uti­liz­zia­mo un record di dati per­so­na­liz­za­to con valori di velocità e distanza.

Creazione e vi­sua­liz­za­zio­ne dei dati

# 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

Nel primo passaggio di questo esempio co­struia­mo un record di dati per­so­na­liz­za­to per ana­liz­za­re la relazione fra velocità (speed) e distanza percorsa (distance). A tal fine uti­liz­zia­mo la funzione data.frame() per creare un frame di dati. Con c(15, 20, 25, 30, 35) e c(30, 40, 50, 60, 70) definiamo dei valori concreti per le variabili speed e distance.

Dopo aver creato il record di dati, lo vi­sua­liz­zia­mo per mezzo della funzione print(). In questo modo è possibile ve­ri­fi­ca­re vi­si­va­men­te la struttura e i valori assegnati del nuovo frame di dati.

Output:

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

Creazione di un modello lineare

# 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

Output:

"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

Nell’output si riconosce un modello lineare (custom_model) che è stato generato per il record di dati e che modella la relazione fra velocità e distanza. Otteniamo quindi i risultati del modello, inclusi i coef­fi­cien­ti e le in­for­ma­zio­ni sta­ti­sti­che.

De­fi­ni­zio­ne di nuovi valori di velocità e calcolo delle pre­vi­sio­ni

# 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

Ora definiamo un ulteriore record di dati (new_speed_values) con nuovi valori di velocità. Suc­ces­si­va­men­te, con predict() in R vengono calcolate le pre­vi­sio­ni per i relativi valori di distanza uti­liz­zan­do il modello lineare creato in pre­ce­den­za.

Vi­sua­liz­za­zio­ne delle pre­vi­sio­ni

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

L’output ci mostra i valori di distanza previsti a seconda della velocità:

"Predicted Distance Values:"
               1                2                  3                 4                   5
 80.0000     90.0000    100.0000  110.0000     120.0000
R
Consiglio

Se vuoi sapere come elaborare le stringhe in R per la ma­ni­po­la­zio­ne dei testi e la pulizia dei dati, segui i tutorial su gsub e sub in R e substring in R che trovi nella nostra guida.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana
Vai al menu prin­ci­pa­le