angepasst von explainxkcd.com
Loss=f(Fehler)
Zwei Zwecke
Zweck | Beschreibung |
Fitting | Finde Parameter, die die Verlustfunktion minimieren. |
Evaluation | Berechne den Verlust für ein gefittetes Modell. |
In der Regression, wird ein
^y=b0+b1×x1+b2×x2+...
Ein Regressionskoeffizient bi gibt an, wie stark sich ^y
Ceteris paribus, je
Wenn bi=0, heisst das, xi
angepasst von me.me
angepasst von dunglai.github.io
angepasst von dunglai.github.io
^y=logistisch(b0+b1×x1+...)
logistisch(x)=11+exp(−x)
^y=logistisch(b0+b1×x1+...)
logistisch(x)=11+exp(−x)
LogLoss=−1nn∑i(log(^y)y+log(1−^y)(1−y)) MSE=1nn∑i(y−^y)2;MAE=1nn∑i|y−^y|
Loss01=1nn∑iI(y≠⌊^y⌉)
Wahrheitsmatrix
|
|
|
|
Richtig positiv (RP) | Falsch positiv (FP) |
|
Falsch negativ (FN) | Richtig negativ (RN) |
Genauigkeit: Prozentsatz richtiger Vorhersagen über alle Fälle hinweg.
Richt.=RP+RNRP+RN+FN+FP=1−Loss01
Sensitivität: Prozentsatz richtiger Vorhersagen über tatsächlich positive Fälle hinweg.
Sensitivität=RPRP+FN
Spezifität: Prozentsatz richtiger Vorhersagen über tatsächlich negative Fälle hinweg.
Spezifität=RNRN+FP
Wahrheitsmatrix
|
|
|
|
RP = 3 | FP = 1 |
|
FN = 1 | RN = 2 |
Genauigkeit: Prozentsatz richtiger Vorhersagen über alle Fälle hinweg.
Richt.=RP+RNRP+RN+FN+FP=1−Loss01
Sensitivität: Prozentsatz richtiger Vorhersagen über tatsächlich positive Fälle hinweg.
Sensitivität=RPRP+FN
Spezifität: Prozentsatz richtiger Vorhersagen über tatsächlich negative Fälle hinweg.
Spezifität=RNRN+FP
caret
s HaupfunktionenFunktion | Beschreibung |
|
Wähle Spezifikationen dafür, wie das Modell gefittet werden soll. |
|
Spezifiziere das Modell und finde die besten Parameterschätzwerte. |
|
Evaluiere die Modellperformanz (Fitting oder Vorhersage) für Regressionsprobleme. |
|
Evaluiere die Modellperformanz (Fitting oder Vorhersage) für Klassifikationsprobleme. |
# Schritt 1: Definiere Kontrollparameter# trainControl()ctrl <- trainControl(...)# Schritt 2: Fitte und exploriere Modell# train()mod <- train(...)summary(mod)mod$finalModel # bestes Modell# Schritt 3: Beurteile Fit# predict(), postResample(),# confusionMatrix()fit <- predict(mod)postResample(fit, truth)confusionMatrix(fit, truth)
trainControl()
# Fitte das Modell ohne fortgeschrittene# Tuningmethoden der Parameterctrl <- trainControl(method = "none")# zeige Dokumentation?trainControl
train()
Argument | Beschreibung |
|
Modellformel, zur Spezifikation von Kriterium und Features. |
|
Datensatz für die Parameterschätzung. |
|
Der Modellalgorithmus. |
|
Kontrollparameter für den Fittingprozess. |
|
Coole Dinge für später. |
# Fitte eine Regression zur Vorhersage des # Einkommenseink_mod <- train(form = einkommen ~ ., # Formel data = basel, # Daten method = "glm", # Regression trControl = ctrl) # Kontroll- # parametereink_mod
Generalized Linear Model 6120 samples 19 predictorNo pre-processingResampling: None
train()
Argument | Beschreibung |
|
Modellformel, zur Spezifikation von Kriterium und Features. |
|
Datensatz für die Parameterschätzung. |
|
Der Modellalgorithmus. |
|
Kontrollparameter für den Fittingprozess. |
|
Coole Dinge für später. |
# Fitte random forest zur Vorhersage von # Einkommeneink_mod <- train(form = einkommen ~ ., # Formel data = basel, # Daten method = "rf", # Random Forest trControl = ctrl) # Kontroll- # parametereink_mod
Random Forest 6120 samples 19 predictorNo pre-processingResampling: None
train()
train()
# A tibble: 5 x 5 Ausfall Alter Geschlecht Karten Bildung <dbl> <dbl> <chr> <dbl> <dbl>1 0 45 M 3 112 1 36 F 2 143 0 76 F 5 124 1 25 M 2 175 1 36 F 3 12
# Regressionsproblemloan_mod <- train(form = Ausfall ~ ., data = Loans, method = "glm", trControl = ctrl)# Klassifikationsproblemload_mod <- train(form = factor(Ausfall) ~ ., data = Loans, method = "glm", trControl = ctrl)
Funktion | Beschreibung |
|
Überblick über die wichtigsten Resultate. |
|
Zeige Namen aller benannten Elemente (häufig mit $ ansteuerbar). |
# Fitte Regressionsmodelleink_mod <- train(form = einkommen ~ alter + groesse, data = basel, # Daten method = "glm", # Regression trControl = ctrl) # Kontrollparameter# Zeige benannte Elementenames(eink_mod$finalModel)
[1] "coefficients" "residuals" "fitted.values"[4] "effects" "R" "rank" [ reached getOption("max.print") -- omitted 28 entries ]
Funktion | Beschreibung |
|
Überblick über die wichtigsten Resultate. |
|
Zeige Namen aller benannten Elemente (häufig mit $ ansteuerbar). |
# Fitte Regressionsmodelleink_mod <- train(form = einkommen ~ alter + groesse, data = basel, # Daten method = "glm", # Regression trControl = ctrl) # Kontrollparameter# Zugriff auf spezifische Elementeeink_mod$finalModel$coefficients
(Intercept) alter groesse 877.2395 149.0087 0.6194
Funktion | Beschreibung |
|
Überblick über die wichtigsten Resultate. |
|
Zeige Namen aller benannten Elemente (häufig mit $ ansteuerbar). |
# Zeige Modelloutputsummary(eink_mod)
Call:NULLDeviance Residuals: Min 1Q Median 3Q Max -4042 -849 11 842 4748 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 877.239 220.726 3.97 7.1e-05 *** [ erreichte getOption("max.print") -- 2 Zeilen ausgelassen ]---Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1(Dispersion parameter for gaussian family taken to be 1543046) Null deviance: 5.1695e+10 on 6119 degrees of freedomResidual deviance: 9.4388e+09 on 6117 degrees of freedomAIC: 104578Number of Fisher Scoring iterations: 2
predict()
# Extrahiere gefittete Werteglm_fits <- predict(object = eink_mod)glm_fits[1:8]
1 2 3 4 5 6 7 8 9032 6035 4565 8119 8884 8432 10221 11858
postResample()
# Evaluiere ModellperformanzpostResample(glm_fits, basel$einkommen)
RMSE Rsquared MAE 1241.8895 0.8174 993.5378
confusionMatrix()
# Regressionsmodell zur Klassifikationsehhilfe_mod <- train(form = factor(sehhilfe) ~ alter + geschlecht, data = basel, method = "glm", trControl = ctrl)# Evaluiere ModellperformanzconfusionMatrix(predict(sehhilfe_mod), basel$sehhilfe)
Confusion Matrix and Statistics ReferencePrediction ja nein ja 3984 2136 nein 0 0 Accuracy : 0.651 95% CI : (0.639, 0.663) No Information Rate : 0.651 P-Value [Acc > NIR] : 0.506 Kappa : 0 Mcnemar's Test P-Value : <2e-16 Sensitivity : 1.000 Specificity : 0.000 Pos Pred Value : 0.651 Neg Pred Value : NaN Prevalence : 0.651 Detection Rate : 0.651 [ erreichte getOption("max.print") -- 5 Zeilen ausgelassen ]
angepasst von explainxkcd.com
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |