Klassifikation — Supervised Machine Learning
Bisher
Heute
“Machine Learning is the science of getting computers to learn without being explicitly programmed.”
\(\qquad\qquad\) — Arthur Samuel, 1959
“Ein Computerprogramm lernt aus Erfahrung E in Bezug auf eine Klasse von Aufgaben T und ein Leistungsmaß P, wenn sich seine Leistung bei Aufgaben T, gemessen an P, mit Erfahrung E verbessert.”
Handschrifterkennung:
Autonomes Fahren:
Vielzahl von Anwendungen:
Lernphase: statistisches Modell mit Teil der Beispieldaten (Trainingsdatensatz) aufgebaut
Validierung: Qualität des Modells mit anderem Teil der Beispieldaten (Testdatensatz) überprüfen
Ziel: Modell soll auch bei neuen, unbekannten Daten gefordertes Verhalten zeigen
Herausforderung: Modell muss gut an die Trainingsdaten angepasst sein, dabei Overfitting vermeiden
Regression: Vorhersage eines kontinuierlichen Werts
\(\rightarrow\) Vorhersage der Mietpreise basierend auf Merkmalen wie Größe und Lage
Klassifikation: Zuordnung von Eingaben zu vordefinierten Klassen
\(\rightarrow\) Spam-Erkennung in E-Mails
Geschlecht | Alter | Label |
---|---|---|
M | 48 | krank |
M | 67 | krank |
F | 53 | gesund |
M | 49 | krank |
F | 32 | gesund |
M | 34 | gesund |
M | 21 | gesund |
Clustering: Gruppierung von ähnlichen Datenpunkten
\(\rightarrow\) z.B. Kundensegmentierung im Marketing
Dimensionalitätsreduktion: Reduktion der Anzahl von Variablen
\(\rightarrow\) z.B. Auswahl von makroökonomischen Indikatoren (Inflation, Arbeitslosenquote, BIP, Zinssätze, etc.) zur Prognose der wirtschaftlichen Entwicklung
\(\rightarrow\) nächste Woche mehr!
(Supervised Machine Learning)
\[ d(p,q)={\sqrt {(p_{1}-q_{1})^{2}+(p_{2}-q_{2})^{2}+\cdots +(p_{n}-q_{n})^{2}}} \]
# Laden der benötigten Bibliotheken
library(class)
# Beispiel-Datensatz laden
data(iris)
# Vorbereitung der Daten
train_indices <- sample(1:nrow(iris), size = 0.7 * nrow(iris))
train_data <- iris[train_indices, ]
test_data <- iris[-train_indices, ]
# k-NN Modell trainieren und Vorhersagen treffen
knn_model <- knn(train = train_data[, -5], test = test_data[, -5], cl = train_data$Species, k = 3)
# Evaluation
table(test_data$Species, knn_model)
knn_model
setosa versicolor virginica
setosa 10 0 0
versicolor 0 15 1
virginica 0 0 19
# Laden der benötigten Bibliotheken
library(e1071)
# Beispiel-Datensatz laden
data(iris)
# Naive Bayes Modell trainieren
nb_model <- naiveBayes(Species ~ ., data = iris)
# Vorhersagen treffen
predictions <- predict(nb_model, iris)
# Evaluation
table(iris$Species, predictions)
predictions
setosa versicolor virginica
setosa 50 0 0
versicolor 0 47 3
virginica 0 3 47
```{r, echo = T # Laden der benötigten Bibliotheken library(e1071)
data(iris)
svm_model <- svm(Species ~ ., data = iris)
svm_predictions <- predict(svm_model, iris)
table(iris$Species, svm_predictions)
---
## Beispiel in R: Autokauf
![Quelle: Tesla.com](slides7/tesla.png)
---
## Datensatz: autokauf.csv
```{.r}
nutzer_id geschlecht alter gehalt gekauft
<int> <char> <int> <int> <int>
1: 15624510 Male 19 19000 0
2: 15810944 Male 35 20000 0
3: 15668575 Female 26 43000 0
4: 15603246 Female 27 57000 0
5: 15804002 Male 19 76000 0
---
396: 15691863 Female 46 41000 1
397: 15706071 Male 51 23000 1
398: 15654296 Female 50 20000 1
399: 15755018 Male 36 33000 0
400: 15594041 Female 49 36000 1