R:n predict() voit tehdä en­nus­tei­ta uusille, nä­ky­mät­tö­mil­le tiedoille. Tämä funktio on tärkeä työkalu ko­neop­pi­mi­ses­sa.

Mihin R:n predict()-funktiota käytetään?

R-funktio predict() on mo­ni­puo­li­nen työkalu, jota käytetään en­nus­te­mal­lin­nuk­ses­sa. Se tuottaa en­nus­tei­ta uusille tai olemassa oleville da­ta­pis­teil­le aiemmin suun­ni­tel­tu­jen ti­las­tol­lis­ten mallien, kuten li­ne­aa­ri­sen regres­sio­ana­lyy­sin, loogisen regres­sio­ana­lyy­sin, pää­tök­sen­te­ko­puun ja muiden mal­lin­nus­tek­nii­koi­den pe­rus­teel­la.

Mikä on predict()-funktion syntaksi R-kielessä?

R:n predict() ottaa ar­gu­ment­tei­na kou­lu­te­tun mallin ja da­ta­pis­teet, joihin ennusteen tulisi kohdistua. Voit määrittää erilaisia vaih­toeh­to­ja ja pa­ra­met­re­ja käytetyn mallin tyypin pe­rus­teel­la. Tuloksena on en­nus­tei­den vektori, joka voi olla hyö­dyl­li­nen eri­lai­sis­sa ana­lyyt­ti­sis­sä tar­koi­tuk­sis­sa, kuten mallin suo­ri­tus­ky­vyn ar­vioin­nis­sa, pää­tök­sen­teos­sa tai tuloksena saatujen tietojen ha­vain­nol­lis­ta­mi­ses­sa.

predict(object, newdata, interval)
R
  • object: Kou­lu­tet­tu malli, johon ennusteet so­vel­le­taan
  • newdata: Ennusteen datapiste
  • interval: Va­lin­nai­nen ar­gu­ment­ti luot­ta­mus­vä­lin tyypin syöt­tä­mi­sek­si (confidence kes­kiar­von väli, prediction ennusteet)

Esimerkki predict()-funktion käytöstä R-kielessä

Seuraava esimerkki ha­vain­nol­lis­taa, miten predict() -funktio toimii R:ssä. Käytämme käyttäjän mää­rit­tä­mää tie­to­jouk­koa, jossa on nopeus- ja etäi­syy­sar­vot.

Tietojen luominen ja näyt­tä­mi­nen

# 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

Ensin luomme käyttäjän mää­rit­te­le­män tie­to­jou­kon nopeuden ja etäi­syy­den välisen suhteen ar­vioi­mi­sek­si. Käytämme funktiota data.frame() tie­to­ke­hyk­sen luomiseen ja mää­ri­täm­me sitten muut­tu­jien speed ja distance arvot vas­taa­vas­ti c(15, 20, 25, 30, 35) ja c(30, 40, 50, 60, 70).

Kun olemme luoneet tie­to­jou­kon, näytämme sen print() -toi­min­nol­la. Näin voimme tarkistaa uuden tie­to­ke­hyk­sen rakenteen ja sille annetut arvot.

Tulos:

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

Li­ne­aa­ri­sen mallin luominen

# 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

Tulos:

"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

Tu­lok­ses­sa näemme li­ne­aa­ri­sen mallin (custom_model), joka on luotu tie­to­jouk­koa varten ja joka mallintaa nopeuden ja etäi­syy­den välistä suhdetta. Saamme mallin tuloksen, mukaan lukien kertoimet ja ti­las­to­tie­dot.

Uusien no­peusar­vo­jen mää­rit­tä­mi­nen ja en­nus­tei­den tekeminen

# 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

Olemme nyt luoneet toisen tie­to­jou­kon (new_speed_values), jossa on uudet no­peusar­vot. Sitten käytimme R predict() en­nus­tei­den te­ke­mi­seen vas­taa­vil­le etäi­syy­sar­voil­le käyt­tä­mäl­lä edellä luomaamme li­ne­aa­ris­ta mallia.

En­nus­tei­den näyt­tä­mi­nen

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

Tu­lok­ses­sa näkyvät nopeuden pe­rus­teel­la en­nus­te­tut etäi­syy­sar­vot:

"Predicted Distance Values:"
               1                2                  3                 4                   5
 80.0000     90.0000    100.0000  110.0000     120.0000
R
Siirry pää­va­lik­koon