R predict() nimmt im Machine Learning eine zentrale Rolle ein, da du damit Prognosen für neue, noch un­be­kann­te Daten erstellen kannst.

Wofür wird die R predict()-Funktion genutzt?

Die predict()-Funktion in R ist ein flexibles Werkzeug für die prä­dik­ti­ve Mo­del­lie­rung. Damit ge­ne­rierst du Vor­her­sa­gen für neue oder be­stehen­de Da­ten­punk­te auf Basis eines sta­tis­ti­schen Modells. Ein solches Modell kann bei­spiels­wei­se mittels linearer oder lo­gis­ti­scher Re­gres­si­on, Ent­schei­dungs­bäu­men oder anderen Verfahren erstellt worden sein.

So ist R predict() aufgebaut

Die Funktion predict() benötigt als Argumente das trai­nier­te Modell sowie die Da­ten­punk­te, für welche die Prognose erstellt werden soll. Je nach Modelltyp kannst du ver­schie­de­ne Parameter festlegen. Das Resultat ist ein Vektor mit Vor­her­sa­gen, den du für Analysen, zur Bewertung der Mo­dell­leis­tung oder für Vi­sua­li­sie­run­gen nutzen kannst.

predict(object, newdata, interval)
R
  • object: Das trai­nier­te Modell, welches für die Prognose genutzt wird.
  • newdata: Die Da­ten­punk­te, für die du Vor­her­sa­gen benötigst.
  • interval: Op­tio­na­les Argument für den Typ des Kon­fi­denz­in­ter­valls (confidence für Mit­tel­wer­te, prediction für Vor­her­sa­gen).

Beispiel: So nutzt du die predict-Funktion in R

In diesem Beispiel zeigen wir dir, wie R predict() in der Praxis funk­tio­niert. Wir arbeiten dafür mit einem eigenen Datensatz, der Ge­schwin­dig­keits- und Di­stanz­wer­te enthält.

Daten anlegen und ausgeben

# 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

Zuerst erstellen wir einen eigenen Datensatz, um den Zu­sam­men­hang zwischen Ge­schwin­dig­keit (speed) und Weg­stre­cke (distance) zu ana­ly­sie­ren. Mit data.frame() erzeugen wir einen Dataframe, während wir mit c(15, 20, 25, 30, 35) und c(30, 40, 50, 60, 70) die Werte für die Variablen speed und distance de­fi­nie­ren.

Sobald der Datensatz steht, lassen wir ihn uns mit print() anzeigen. So prüfen wir direkt die Struktur und die korrekte Zuweisung der Werte im Dataframe.

Output:

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

Lineares Modell erstellen

# 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

Die Ausgabe zeigt das erzeugte lineare Modell (custom_model), das die Relation zwischen Speed und Distanz abbildet. Du erhältst alle Mo­dell­re­sul­ta­te inklusive Ko­ef­fi­zi­en­ten und sta­tis­ti­scher Details.

Neue Werte de­fi­nie­ren und Prognosen erstellen

# 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

Jetzt legen wir einen weiteren Datensatz (new_speed_values) mit neuen Ge­schwin­dig­kei­ten an. Mit R predict() berechnen wir an­schlie­ßend die zu er­war­ten­den Di­stanz­wer­te basierend auf unserem linearen Modell.

Vor­her­sa­gen anzeigen

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

Das Ergebnis liefert dir die pro­gnos­ti­zier­ten Di­stanz­wer­te für die gewählten Ge­schwin­dig­kei­ten:

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