# Notizen Lektion 1

>Thema: Einführung Practical Machine Learning 1
>Datum: 22.04.2026
>Dozent: Jürgen Vogel

## Beispiele von ML Applications

> [!NOTE] Definition
> Tokenization -> Datenpunkte aus Datenmenge extrahieren

- Sales and customer support
	- Binärklassifikation
- Process automation
	- Fehlererkennung -> Klassifikationsproblem
- Maintenance (Industrieanlagen)
	- Wann Wartung nötig? -> Optimierungsproblem
- Autonomous driving
	- Möglichst keine Fussgänger überfahren -> Klassifikationsproblem
- Farming
	- Vollautomatisches Pflücken von Unkraut
	- Erkennen von Unkraut -> Klassifikationsproblem
- Robotics
- Translation
	- Sprache übersetzen in andere Sprache -> Generative KI
		- Google Translate
		- Deepl
	
## Bsp. E-Mail Classification

> [!NOTE] Definition
> Training Data -> (Feature Engineering) -> Vectorized Data -> (Training) -> ML Algorithm

- Bsp. automatische Vorsortierung von e-Mail Anfragen von Anfragen beim Kanton
		- Umweltdepartement
		- Energiedepartement
		- Wirtschaftsdepartement
- Training Data
	- Diverse Ausgangsdaten / Trainingsdaten
	- Müssen vorbereitet werden, das nennt man **Feature Engineering**
		- Macht aus Training Data Vectorized Data die vom Modell verwendet werden können
		- Schlüsselworterkennung (bspw. Photovoltaik, Energie, Finanzen)
		- 0/1-Feature -> Binäres Feature "Ist Schlüsselwort genannt oder nicht?"
			- Sobald die Trainsingsdaten in Features umgewandelt wurden
			- Müssen sie in eine Datenstruktur abgebildet werden
		- ML Algorithmen sind Problemunabhängig (Bild klassifikation oder Email)
			- Algorithmus hat Feature Erkennung basierend auf Zahlenwerte
				- Input Vektor wird auf Output gemapped
				- Mit bestimmter mathematischer Funktion
				- Daher kann nicht von KI gesprochen werden
			- Eingangsvektor -> Zahlenwerten
			- Ausgangswerte -> Ebenfalls Zahlenwerte
				- Müssen wieder Umgewandelt werden in Features
- ML Model 
	- Resultiert aus Training mit ML Algorithmus basierend auf vektorisierten Daten
	- Stellt den Zusammenhang zwischen Referenzdaten und Departement her
	-  Input Layer -> Hidden Layer -> Output Layer
	- Ist im Grunde genommen eine **Parameter Optimiertung**
	- Lierfert eine Klassifikation als Resultat
- Wie werden Daten überprüft?
	- ML Engineer muss überprüfen ob das Modell fehler generiert oder nicht
	- Test Data, wo man weiss was das Ergebnis ist
		- Daraus wird eine Error Rate bestimmt
	- Wichtige Fragestellung: Was eine akzeptable Fehlerquote?
		- Iterative Verbesserung

## Machine Learning

- Learning
	- Die Welt wird beobachtet
	- Wissen wird dabei abgeleitet
		- Kann faktenbasiertes Wissen sein (auf dem Bild ist eine Person)
		- Kann regelbasiertes Wissen sein (Bild zeigt Person, wenn Objekt mit Features  XYZ vorhanden)
- Machine Learning
	- Informal
		- Ist ein Algorithmus welcher Learning automatisiert umsetzt
	- Formal
		- an Algorithm learns from experience E to solve some tasks T with performance P if P improves with E
- Artificial Intelligence (AI)
	- Hat mit machine Learning relativ wenig zu tun
	- Systeme die sich wie ein Mensch verhalten
		- Wie testet man ob ein System intelligent ist?
			- Turing Test
	- Systeme die wie ein Mensch denken 
		- Nachbildung Kognitiver Denkprozesse -> Hirnstrukturen nachbilden
		- Nachbildung Logischer Denkprozesse -> Fakten und Regeln verknüpfen
		- Problemlösung -> Lösungen aktiv suchen
		- Reasoning -> Wissen aus bereits gemachten Erfahrungen ableiten
		- Sense and Manipulate -> Mit der Umwelt interagieren und daraus lernen

## Machine Learning Models

> [!NOTE] Definition
>  an Algorithm learns from experience E to solve some tasks T with performance P if P improves with E

- Model
	- represents the solution to the tasks T
	- is learnt by the ML algorithm
	- is adapted by the ML algorithm based on E
	- can be evaluated with respect to P
	- can be stored
	- mas be human-readable or not (white box model vs black box)
		- white box -> man kann sich die Parameter anschauen (reinschauen)
			- man kann das Modell debuggen und Fehler nachvollziehen
		- black box -> Neuronale Netze sind immer solche
			- können nicht verstanden oder nachvollzogen werden
			- warum wurde Person auf Bild nicht erkannt? -> Schwierig nachzuvollziehen
	- Für Projekt: Anfangen immer mit einfachem Modell -> um Task und Problematik zu verstehen
		- Dann auf anderen Algorithmus umschwenken
- Features
	- are the relevant part of the data E for creating the model
	- may have to be designed explicitly depending on the ML algorithm
	- Dazu gibt es für gewisse Modelle Standardfunktionen

## Traditional Programming vs Machine Learning

- Oft ist es wichig zu entscheiden welche Probleme mit welchem Ansatz gelöst werden müssen
- Was sind vor und nachteile von ML?
	- Viele Probleme lassen sich auch klassisch gut lösen
- Was sind die unterschiede?

| Traditional Programming                                                                           | Machine Learning                                      |
| ------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| transform input data into output data via a series of fixed instructions (conditions, loops, etc) | maps input data to output data via an adaptive model  |
| white box problem solving                                                                         | black box problem solving                             |
| deterministic results                                                                             | continous result improving                            |
| easy to test through classical unit testing                                                       | unknown environments or situation are not problematic |
| avoid errors introduced by random noise                                                           | avoid misconceptions about the real world             |


## Statistics vs Machine Learning


| Statistics                                     | Machine Learning                                      |
| ---------------------------------------------- | ----------------------------------------------------- |
| analyzing and interpreting data                | algorithms that improve through training (experience) |
| relationshios between vars and math equiations | statistical and mathematical methods                  |
|                                                | sacrifices correctness for computability              |
| estimation                                     | learning                                              |
| hypothesis testing                             | classification                                        |
| datapoint                                      | instance/example                                      |
| independent variable                           | feature                                               |
| dependent variable                             | class / label                                         |


## Different Machine Learning Approaches (1)

What experience E can be exploited for learning?

1. Supervised Learning
	- the ML algorithm infers the model from sample data E for which the task T has been solved with optimal performance P
	- **Algorithmus wird anhand von Beispielen trainiert**
	- Problem: Trainingsdaten -> wo bekommt man die her?
		- Ist sehr aufwändig und erfordert auch eine hohe Qualität
		- Man braucht Daten die gelabled sind zum Trainieren
2. Unsupervised Learning
	-  The ML algorithm infers the model from data E based on some adaptation to distinctive features of E
	- the algorithm does not have access to P
	- Keine Referenzlösungen sondern "etwas anderes" ->  Features
		- Bspw. in Mails wird nach Schlüsselworten gesucht, und in Features umgesetzt
			- Andere Schlüsselworte generiern andere Featurevektoren, die dann verglichen werden können
	- Wie kann ich dem Algorithmus helfen Datenpunkte auseinanderzuhalten auf Basis von einem feature Vektor
	- Man braucht Daten die gelabled sind (Referenzdaten) nur zum Testen
		- Im Gegensatz zum Supervised Learning braucht man also weniger Daten -> Günstiger und effizienter
3. Reinforcement Learning
	- CAS AI -> da spielt das eine grosse Rolle (Robotik)
	- Man startet mit einem initialen Modell (neuronales Netz) mit default Werten, die Parameter sind zufällig.
	- Dann stellt man das Modell sofort produktiv
	- Man braucht eine Art zu entscheiden ob der Output gut oder schlecht ist
		- Damit hat man einen realen Trainingsdatensatz und kann damit das Modell verbessern
		- Rinse and repeat
		- Trainingsdatensatz wächst kontinuierlich und dadurch wird das Modell besser
	- Modell wird "bestraft" oder "belohnt" bei positivem oder negativem Verhalten
	- Bspw.: Bewegungsabläufe eines Roborters trainieren
		- Welcher Motor dreht sich um wieviel Grad mit welcher stärke
			- Ergebnis: Roboter bewegt sich in Richtung XY mit Geschwindigkeit Z
			- Lässt sich gut beobachten -> Roboter fällt auf die Nase bspw. schlecht
	- Bspw.: Schachcomputer Programm
		- Lässt sich mit RL einfach und effizient umsetzen, da die Regeln des Spiels bekannt sind und bewertet werden können
	- Bspw.: Suchmaschine
		- Query -> Optimale Eergebnisliste
		- Feedback: Wie geht der Benutzer mit der generierten Ergebnisliste um? Worauf wird geklickt?

## Different Machine Learning Approaches (2)

> [!NOTE] Definition
> What type of Task T is solved?

1. Clustering
	-  Input data should be divided into distinctive groups
	-  Man hat eine Datenmenge und man vermutet, dass die sich aufteilen lässt in Teilmengen
		- Ich will Kategorien herausfinden
	- Bspw.: Kundensegmentierung
		- Kundengruppen in onlineshop erkennen
		- Regionale Gruppen, Altersgruppen, Einkommensklassen, Hobby, etc.
	- model often based on similarity: members in one group are similar
	- **Unsupervised Learning** ist hier sehr prominent
2. Classification
	- input data should be assigned a certain class/category/label
	- Ich will eine vorgegebene Anzahl von Kategorien zuweisen
	- bspw.: an email is classified as spam or as not-spam
	- **Supervised Learning** ist hier sehr prominent
3. Regression
	- estimates the relationship between input data (independent variables) and the output we are interested in (dependent variable)
	- model is a regression function, often for continous variables
	- Mit einer Regression lassen sich auch Klassifikationsprobleme lösen, aber nicht umgekehrt
	- bspw: prediciton of birth date

## Generative AI (GenAI): Large Language Model (LLM)

- Modell Speichert grosse Mengen an vorhanden Daten (Internet)
	- Lernt Sprache
- Was löst das LLM?
	- Klassifikationsproblem -> Es ist eigentlich ein Classifier
- Wie funktioniert ein LLM?
	- Output ist lediglich eine Wortsequenz
	- Input -> Prompt -> wird umgewandelt zum Feature Vektor und dem Modell übergeben
	- Output -> Klassifikation oder Vorhersage welches Wort am besten zum Prompt passt
	- Man nennt das auch Word Prediction
	- Es wird immer nur ein Wort predicted, der Rest findet iterativ statt, Wort für Wort
		- Prompt und Erstes Wort als Input geben
		- Dann das nächste Wort, und so weiter
		- Iterative Klassifikation

## Machine Learning Workflow (CRISP-DM)

- Wir arbeiten iterativ und es wird eine Reihe von Arbeitsschritten durchlaufen
	- der erste Wurf ist meist nicht gut genug
- Der Ablauf lässt isch wie folgt definieren: 
	1. Welches Problem will ich lösen -> Business Understanding
	2. Daten verstehn und labeln -> Data Understanding
	3. Daten in Feature Vektor umwandeln -> Data preparation
	4. Aus Daten ein Modell ableiten -> Modeling
	5. Metrik Feststellen und Testen -> Evaluation
	6. Praktisches Einsetzen -> Deployment

## Business understanding

- Problem definieren "Welches Problem will ich überhaupt lösen?"
- Für Projektarbeit: Klar abgegrenztes, einfach lösbares Problem definieren
	- predict the remaining lifetime of a machine
	- classify email as spam or not
	- detect a human face in an image
- Antibeispiel: "We have a ton of XYZ data -> can you make something useful out of it?"
	- data science: iteratively addressing the information needed
	- machine learning not necessarily means automation
		- Es muss nicht alles automatisiert werden, auch Unterstützung ist sinnvol
			- Statt vollautomatischem Mailbeantworten vielleicht eher eine Vorsortierung oder ein Templating der Antworten
	- bspw.: Supermarkt
		- Leute kaufen oft Bier und Chips zusammen
		- Was kann mit dieser Information gemacht werden?
			- Entweder Produkte nebeneinander Stellen damit der Durchlauf höher wird
			- Oder möglichst weit auseinander, damit die Zeit im Shop maximiert wird -> grösserer Einkauf

## Example: To Wait or Not to Wait

> [!NOTE] Fragestellung
> Will people wait in line for eating in a restaurant?

1. Collecting data
	- Internal or external sources?
		- Intern: Unternehmensdaten anzapfen
		- Extern: Referenzdatensatz aus der Verhaltensforschung
	- Fragestellgun: Sind die Daten bereits gelabeled?
		- Wenn ein Problem mit SL gelöst werden soll -> Ist es realistisch die Daten im Rahmen des Projekts zu Labeln? Aufwändig! Wenn nein, mach was anderes.
			- Es werden schnell 4 oder 5 stellige Mengen an Daten benötigt
	- [Kaggel](https://www.kaggle.com/datasets)-> Data Science challenges sind bspw. eine gute Quelle
	- Forschungscommunity -> Referenzdatensätze
	- Google Scholar -> in den referenzen stehen meist die Datensätze
2. Understanding Data
	- Which aspects of available data can be utilized as features?
		- Was wurde in Referenzprojekten verwendet?
	- feature types: boolean, nominal (categorial), or numeric
	- often helpful to look at basic statistics to develop a "feeling"
		- histograms and frequency distributions or graphs
		- Verteilungsfunktion
		- Welche features kommen in welchen Klassen vor?
		- Viel Zeit reservieren für Semesterarbeit
	- Wie häufig sind meine Klassen in den Daten vertreten?
		- many classification problems are unbalanced!
			- 99% der emails sind nicht spam und 1% spam
			- Das Modell wird oft auf die Klasse optimiert, auf die Klasse die am Meisten vorkommt
		- classes are not evenly distributed but a class may be very rare or very frequent
			- e.g: detecting rare diseases: only x cases in a million
			- may not even occur in a dataset at hand
3. Preparing (cleaning) Data
	- data integration: data from different sources may use different schema (syntax) or semantics
	- data transformation: e.g. turn numeric feature (age) into nominal (age-category)
	- data may be missing: e.g some features have not been recorded for some instances -> Daten können fehlen oder fehlerhaft sein!
		- Messfehler, Duplikate
		- Bewusste Irreführung bei Umfragen
		- Features können fehlen da sie noch nicht gemessen wurde
		- Veraltete Daten die vielleicht sogar obsolet sind
	- feature generation: processing low-level data into higher-level features
	- feature selection: selecting the best features from a (too) large set
		- Brauche ich wirklich alle Features in einem Datenset?
4. Modeling
	1. Selecting an appropriate ML algorithm
		-  black box or white box
		- Im Restaurants-Beispiel entscheiden wir uns für einen Entscheidungsbaum
			- Das ist ein Supervised Classifier
	2. Building the Model
		-  via training (automatically)
		-  via configuration (manually)
	3. Decision Tree (DT)
		-  Supervised Classification Algorithm
			- binary classification: two classes true/false
		- tree leaves represent class labels
		- all other nodes represent a devision based on a certain feature
		- path between parent to child nodes represents next relevant decision
		- path from root to leaf node represents conjunctive devisions
		- Der Aufbau des Baumes wird durch den Algorithmus spezifiziert
		- Es handelt sich um ein white box Verfahren
		- DT Construction
			- Challenge: many alternative and equivalent DT exits
			- Correct but inefficient DT: All samples are leaf nodes with path utilizing all present features (bruteforce)
			- Bei numerischen Variablen wird es schwierig einen Schwellwert zu setzen 
				- Wartezeiten sind individuell und schwierig zu klassifizieren
				- Fehler potenzieren sich pro Entscheidung
				- Strategie: Pfade möglichst kurz halten, entscheidungen möglichst schnell treffen, daher ist ein Bruteforce apporach mit allen entscheidungen schlecht
				- Wichtig: Entscheidungspfade müssen kurz sein (optimaler Baum)
			- Optimaler Algorithmus:
				- for the next node, choose feature that splits the sample data into the most homogeneous subsets.
				- Attribute die die Samples möglichst stark aufteilen (klassifizieren) zuerst!
					- Patrons -> (None,Some,Full) -> liefert die beste Trennung
					- Type -> (French, Italian, Thai, Burger) -> Informationsgewinn gleich Null
					- Für jeden Teilschritt muss das optimale Attribute herausgesucht werden
					- formally: the feature that minimizes the remaining entropy (optimale codierung)
			- Different DT Algorithms around this Idea: ID3, C4.5, C5
5. Evaluating the Model
	- Is the model good enough?
	- what is the metric for good enough?
		- fester Wertebereich -> zwischen 0 und 1
	- durchschnittlicher Fehler bspw.
	- kann auch der worst case sein
		- So setzen, dass worst case noch akzeptabel
	- processing time and scalability
	- offers a human-understandable explanation (white box)
	- in real-world scenarios it's impossible to have error-free models
		- missing or noisy data
		- model tries to generalize but there may be executions
6. Productizing a Model
	- Some aspects to consider
	- Human and Computational resources
		- Training des Models kann viel kosten
		- Feature Generierung kann auch teuer sein
	- Ist das Model update fähig?
		- some models may be incrementally updated
	- ML Ops considerations
		- runtime environment
		- interface
		- versioning (Model und Daten)
	- Application development
		- model provides useful features of a larger application
		- human factors: trust, bias, accountability, security

## Summary: Machine Learning Challenges

For ML to work, we need the following:

- Konkrete Aufgabenstellung, bei welcher man eine wohldefinierte Überprüfungsfunktion hat
- Man benötigt Daten in der notwendigen Quantität und Qualität
	- data may be garbled or missing
	- dataset may be too small for the task at hand
	- dataset may not be representative or biased
- Man braucht gute Features
	- Welche in welcher Kombination?
- Decisive patterns
	- patterns may be inexact or spurious
	- most patterns are not interesting
- Auswahl des passenden ML Algorithmus
	- which one in which configuration
	- Kombinationen von Parametern wichtig
	- Ist es eine zukunftsfähige Lösung? Was wenn sich die Datenmenge verzehnfacht?
- Akzeptable Fehlerquote definieren
	- kein Modell ist frei von Fehlern!
