Med funk­tio­nen predict() i R kan du göra för­ut­sä­gel­ser för nya, osedda data. Denna funktion är ett viktigt verktyg för ma­ski­nin­lär­ning.

Vad används predict() i R till?

R-funk­tio­nen predict() är ett mångsidigt verktyg som används i prediktiv mo­del­le­ring. Den genererar för­ut­sä­gel­ser för nya eller be­fint­li­ga da­ta­punk­ter baserat på tidigare utformade sta­tis­tis­ka modeller, såsom linjär regres­sion, logisk regres­sion, be­sluts­träd och andra mo­del­le­rings­tek­ni­ker.

Vad är syntaxen för predict() i R?

R:s funktion predict() tar som argument en tränad modell och de da­ta­punk­ter som för­ut­sä­gel­sen ska tillämpas på. Du kan ange olika al­ter­na­tiv och pa­ra­met­rar baserat på vilken typ av modell som används. Re­sul­ta­tet är en vektor med för­ut­sä­gel­ser som kan vara användbar för olika ana­ly­tis­ka ändamål, inklusive ut­vär­de­ring av en modells prestanda, be­sluts­fat­tan­de eller il­lust­ra­tion av de re­sul­te­ran­de upp­gif­ter­na.

predict(object, newdata, interval)
R
  • object: Den tränade modellen som för­ut­sä­gel­ser­na tillämpas på
  • newdata: Da­ta­punk­ten för för­ut­sä­gel­sen
  • interval: Valfritt argument för att ange typen av kon­fi­densin­ter­vall (confidence för me­del­vär­desin­ter­vall, prediction för för­ut­sä­gel­ser)

Exempel på hur man använder predict() i R

Följande exempel il­lu­stre­rar hur funk­tio­nen predict() i R fungerar. Vi använder en an­vän­dar­de­fi­ni­e­rad datamängd med värden för hastighet och avstånd.

Skapa och visa 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 skapar vi en an­vän­dar­de­fi­ni­e­rad datamängd för att utvärdera sambandet mellan hastighet och avstånd. Vi använder funk­tio­nen data.frame() för att skapa en dataram och de­fi­ni­e­rar sedan värdena för va­ri­ab­ler­na speed och distance som c(15, 20, 25, 30, 35) re­spek­ti­ve c(30, 40, 50, 60, 70).

När vi har skapat da­taupp­sätt­ning­en visar vi den med hjälp av funk­tio­nen print(). På så sätt kan vi kon­trol­le­ra struk­tu­ren och de till­de­la­de värdena i vår nya dataram.

Utgång:

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

Skapa en linjär modell

# 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

Utgång:

"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 re­sul­ta­tet ser vi en linjär modell (custom_model) som ge­ne­re­ra­des för da­taupp­sätt­ning­en och mo­del­le­rar för­hål­lan­det mellan hastighet och avstånd. Vi får re­sul­ta­tet av modellen, inklusive ko­ef­fi­ci­en­ter och sta­tis­tisk in­for­ma­tion.

Definiera nya has­tig­hets­vär­den och göra för­ut­sä­gel­ser

# 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 skapat en ny datamängd (new_speed_values) med nya värden för hastighet. Sedan använde vi R predict() för att göra för­ut­sä­gel­ser för mot­sva­ran­de av­stånds­vär­den med hjälp av den linjära modell vi skapade ovan.

Visa för­ut­sä­gel­ser­na

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

Ut­mat­ning­en visar av­stånds­vär­de­na som förutsägs baserat på has­tig­he­ten:

"Predicted Distance Values:"
               1                2                  3                 4                   5
 80.0000     90.0000    100.0000  110.0000     120.0000
R
Gå till huvudmeny