\chapter{Informationsbasiertes Lernen} \label{information-based learning} Beim \say{informationsbasierten} Lernen geht es im Kern darum die informativsten Features auszuwählen. Die informativsten Features sind die, deren Werte die Instanzen in möglichst homogene (gleichgroße) Teilmengen teilen. \paragraph{Beispiel: Guess Who}\mbox{}\\ \includegraphics[width = .6\textwidth]{guess who.png} \includegraphics[width = .4\textwidth]{guess who2.png}\\ In den ersten 2 Beispielen werden schlechte Features gewählt. Die durchschnittliche Anzahl an nötigen Fragen ist $\frac{1+2+3+3}{4}=2,25$. Das 3.Beispiel benutzt die besten Features, da die Teilmengen hierbei maximal homogen sind. Die durchschnittliche Anzahl an nötigen Fragen ist $\frac{2+2+2+2}{4}=2$. \section{Entropie} \label{entropie} Die Entropie liefert eine numerische Metrik für die Reinheit einer Menge. Sie beschreibt die Unsicherheit, die mit dem Raten eines Ergebnisses verbunden ist. Hierbei gilt: \begin{itemize} \item Hohe Wahrscheinlichkeit $\rightarrow$ niedrige Entropie \item Geringe Wahrscheinlichkeit $\rightarrow$ hohe Entropie \end{itemize} Die Formel für die Entropie lautet: \Large $$H(y)=-\sum^l_{i=1}\left(P(y=i)\cdot\log_2\left(P(y=1)\right)\right)$$ \normalsize \subsection{Beispiele} \label{entropie: beispiele} \includegraphics[width = \textwidth]{entropie_beispiele.png} \section{Informationsgewinn} \label{information-based learning: informationsgewinn} Der Informationsgewinn, den man durch ein bestimmtes Feature erreicht, ist gleichzusetzen mit der Reduktion der Entropie(\ref{entropie}) durch dieses Feature. Man bezeichnet dies als \say{Kullback-Leibler-Divergenz}. Der Informationsgewinn $IG$ lässt sich berechnen durch: \Large $$IG(d,D)=H(y,D)-rest(d,D)$$ $$H(y,D)=-\sum^l_{i=1}\left(P(y=i)\cdot\log_2\left(P(y=1)\right)\right)$$ $$rest(d,D)=\sum_{l\in Level(d)} \underbrace{\frac{|D_{d=l}|}{|D|}}_{\text{Gewichtung}}\cdot\underbrace{H(y,D_{d=l})}_{\text{Entropie von Partition $D_{d=l}$}}$$ \normalsize \subsection{Beispiel: Spamfilter} \label{informationsgewinn: spamfilter} \begin{tabular}{ccccc} \hline ID &SUSPICIOUS WORDS & UNKNOWN SENDER & CONTAINS IMAGE & CLASS\\ \hline 376 & true & false & true & spam\\ 489 & true & true & false & spam\\ 541 & true & true & false & spam\\ 693 & false & true & true & ham\\ 782 & false & false & false & ham\\ 976 & false & false & false & ham\\ \hline \end{tabular} \begin{align*} H(t,D) =& -\sum_{l\in\{\text{'spam', 'ham'}\}}\left(P(t=l)\cdot \log_2\left(P(t=l)\right)\right)\\ =& -((P(t=\text{'spam'})\cdot\log_2(P(t=\text{'spam'})))\\ &+ (P(t=\text{'ham'})\cdot\log_2(P(t=\text{'ham'}))))\\ =& -\left(\left(\frac{3}{6}\cdot\log_2\left(\frac{3}{6}\right)\right) + ¸\left(\frac{3}{6}\cdot\log_2\left(\frac{3}{6}\right)\right)\right)\\ =& 1 [\text{bit}] \end{align*} \begin{align*} rest(\text{SW},D)&=\left(\frac{|D_{\text{SW}=T}|}{|D|}\cdot H(t,D_{\text{SW}=T})\right) + \left(\frac{|D_{\text{SW}=F|}}{|D|}\cdot H(t,D_{\text{SW}=F})\right)\\ &=\left(\frac{3}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ &+\left(\frac{3}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ &=\left(\frac{3}{6}\cdot\left(-\left(\left(\frac{3}{3}\cdot\log_2\left(\frac{3}{3}\right)\right)+\left(\frac{0}{3}\cdot\log_2\left(\frac{0}{3}\right)\right)\right)\right)\right)\\ &+\left(\frac{3}{6}\cdot\left(-\left(\left(\frac{0}{3}\cdot\log_2\left(\frac{0}{3}\right)\right)+\left(\frac{3}{3}\cdot\log_2\left(\frac{3}{3}\right)\right)\right)\right)\right)\\ &= 0 [\text{bit}] \end{align*} \begin{align*} rest(\text{US},D)&=\left(\frac{|D_{\text{US}=T}|}{|D|}\cdot H(t,D_{\text{US}=T})\right) + \left(\frac{|D_{\text{US}=F|}}{|D|}\cdot H(t,D_{\text{US}=F})\right)\\ &=\left(\frac{3}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ &+\left(\frac{3}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ &=\left(\frac{3}{6}\cdot\left(-\left(\left(\frac{2}{3}\cdot\log_2\left(\frac{2}{3}\right)\right)+\left(\frac{1}{3}\cdot\log_2\left(\frac{1}{3}\right)\right)\right)\right)\right)\\ &+\left(\frac{3}{6}\cdot\left(-\left(\left(\frac{1}{3}\cdot\log_2\left(\frac{1}{3}\right)\right)+\left(\frac{2}{3}\cdot\log_2\left(\frac{2}{3}\right)\right)\right)\right)\right)\\ &= 0.9183 [\text{bit}] \end{align*} \begin{align*} rest(\text{CI},D)&=\left(\frac{|D_{\text{CI}=T}|}{|D|}\cdot H(t,D_{\text{CI}=T})\right) + \left(\frac{|D_{\text{CI}=F|}}{|D|}\cdot H(t,D_{\text{CI}=F})\right)\\ &=\left(\frac{2}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ &+\left(\frac{4}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ &=\left(\frac{2}{6}\cdot\left(-\left(\left(\frac{1}{2}\cdot\log_2\left(\frac{1}{2}\right)\right)+\left(\frac{1}{2}\cdot\log_2\left(\frac{1}{2}\right)\right)\right)\right)\right)\\ &+\left(\frac{4}{6}\cdot\left(-\left(\left(\frac{2}{4}\cdot\log_2\left(\frac{2}{4}\right)\right)+\left(\frac{2}{4}\cdot\log_2\left(\frac{2}{4}\right)\right)\right)\right)\right)\\ &= 1 [\text{bit}] \end{align*} \normalsize Folglich ergeben sich die folgenden Informationsgewinne: \begin{align*} IG(\text{SUSPICIOUS WORDS},D)&=H(CLASS,D)-rest(\text{SW},D) \\ &=1-0=1[\text{bit}]\\\\ IG(\text{UNKNOWN SENDER},D)&=H(CLASS,D)-rest(\text{US},D) \\ &=1-0.9183=0.0817[\text{bit}]\\\\ IG(\text{CONTAINS IMAGES},D)&=H(CLASS,D)-rest(\text{CI},D) \\ &=1-1=0[\text{bit}] \end{align*} \section{\acf{ID3} Algorithmus} \label{id3 algorithmus} Der \ac{ID3} Algorithmus versucht den Flachsten Baum, der mit den Daten konsistent ist, zu erstellen. \paragraph{Algorithmus} \begin{enumerate} \item Wähle das beste Merkmal für die Teilung mit Hilfe des Informationsgewinns aus. \item Wurzelknoten wird erstellt, der mit dem gewählten Merkmal teilt. \item Trainingsdaten werden anhand des gewählten Merkmals aufgeteilt. \item Für jede Teilmenge wird ein Zweig erstellt. \item Der Prozess wird für jeden der Zweige mit dem ausgewählten Teil der Daten wiederholt. \end{enumerate} \paragraph{Abbruchbedingungen} \begin{enumerate} \item Alle Instanzen im (Teil‐)Datensatz haben die gleiche Klassifikation (Zielmerkmal y). Erstelle einen Blattknoten mit dieser Klassifikation als Label. \item Menge der zu testenden Merkmal ist leer. Erstelle einen Blattknoten mit der Mehrheitsklasse des Teildatensatzes als Klassifikation. \item Der Teildatensatz ist leer. Erstelle einen Blattknoten mit der Mehrheitsklasse des Teildatensatzes des Elternknotens. \end{enumerate}