Med funk­tio­nen predict() i R kan du lave for­ud­si­gel­ser for nye, usete data. Denne funktion er et vigtigt værktøj til ma­skin­læ­ring.

Hvad bruges predict() i R til?

R-funk­tio­nen predict() er et alsidigt værktøj, der bruges i prædiktiv mo­del­le­ring. Den genererer for­ud­si­gel­ser for nye eller ek­si­ste­ren­de da­ta­punk­ter baseret på tidligere designede sta­ti­sti­ske modeller, såsom lineær re­gres­sion, logisk re­gres­sion, be­slut­nings­træ­er og andre mo­del­le­rings­tek­nik­ker.

Hvad er syntaksen for predict() i R?

R’s predict() tager som ar­gu­men­ter en trænet model og de da­ta­punk­ter, som for­ud­si­gel­sen skal gælde for. Du kan angive for­skel­li­ge indstil­lin­ger og parametre baseret på den anvendte modeltype. Re­sul­ta­tet er en vektor af for­ud­si­gel­ser, der kan være nyttige til for­skel­li­ge ana­ly­ti­ske formål, herunder eva­lu­e­ring af en models ydeevne, be­slut­nings­tag­ning eller il­lu­stra­tion af de re­sul­te­ren­de data.

predict(object, newdata, interval)
R
  • object: Den trænet model, som for­ud­si­gel­ser­ne anvendes på
  • newdata: Da­ta­punk­tet for for­ud­si­gel­sen
  • interval: Valgfrit argument til ind­tast­ning af typen af kon­fi­den­s­in­ter­val (confidence for gen­nem­snit­s­in­ter­val, prediction for for­ud­si­gel­ser)

Eksempel på brug af predict() i R

Følgende eksempel il­lu­stre­rer, hvordan funk­tio­nen predict() i R fungerer. Vi bruger et bru­ger­de­fi­ne­ret datasæt med ha­stig­heds- og af­stands­vær­di­er.

Op­ret­tel­se og visning af data

# 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

Først opretter vi et bru­ger­de­fi­ne­ret datasæt til eva­lu­e­ring af forholdet mellem hastighed og afstand. Vi bruger funk­tio­nen data.frame() til at oprette en dataramme og definerer derefter værdierne for va­ri­ab­ler­ne speed og distance som hen­holds­vis c(15, 20, 25, 30, 35) og c(30, 40, 50, 60, 70).

Når vi har oprettet da­ta­sæt­tet, viser vi det ved hjælp af funk­tio­nen print(). På den måde kan vi kon­trol­le­re struk­tu­ren og de tildelte værdier i vores nye dataramme.

Output:

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

Op­ret­tel­se af en lineær model

# 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

I outputtet ser vi en lineær model (custom_model), der blev genereret for da­ta­sæt­tet og mo­del­le­rer forholdet mellem hastighed og afstand. Vi får re­sul­ta­tet af modellen, herunder ko­ef­fi­ci­en­ter og sta­ti­sti­ske op­lys­nin­ger.

De­fi­ni­tion af nye ha­stig­heds­vær­di­er og ud­ar­bej­del­se af prognoser

# 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

Vi har nu oprettet endnu et datasæt (new_speed_values) med nye værdier for hastighed. Derefter brugte vi R predict() til at lave for­ud­si­gel­ser for de til­sva­ren­de af­stands­vær­di­er ved hjælp af den lineære model, vi oprettede ovenfor.

Visning af for­ud­si­gel­ser­ne

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

Outputtet viser de af­stands­vær­di­er, der er forudsagt på baggrund af ha­stig­he­den:

"Predicted Distance Values:"
               1                2                  3                 4                   5
 80.0000     90.0000    100.0000  110.0000     120.0000
R
Gå til ho­ved­me­nu­en