2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-24 22:08:04 +02:00

Pseudocode beschrieben; viele kleine Verbesserungen

This commit is contained in:
Martin Thoma 2014-01-20 10:01:05 +01:00
parent 4924652496
commit e171c0bb91
8 changed files with 45 additions and 37 deletions

View file

@ -1,6 +1,6 @@
Den sehr einfach aufgebauten DYCOS-Algorithmus kann man noch an Den DYCOS-Algorithmus kann in einigen Aspekten erweitert werden.
vielen Punkten verbessern. So könnte man vor der Auswahl des So könnte man vor der Auswahl des Vokabulars jedes Wort auf den
Vokabulars jedes Wort auf den Wortstamm zurückführen. Wortstamm zurückführen.
Dafür könnte zum Beispiel der in \cite{porter} vorgestellte Dafür könnte zum Beispiel der in \cite{porter} vorgestellte
Porter-Stemming-Algorithmus verwendet werden. Durch diese Maßnahme wird das Porter-Stemming-Algorithmus verwendet werden. Durch diese Maßnahme wird das
Vokabular kleiner gehalten wodurch mehr Artikel mit einander Vokabular kleiner gehalten wodurch mehr Artikel mit einander

View file

@ -113,7 +113,7 @@ der Länge $l$ durchgeführt, wobei die beobachteten Beschriftungen
gezählt werden und mit einer Wahrscheinlichkeit von $p_S$ ein gezählt werden und mit einer Wahrscheinlichkeit von $p_S$ ein
struktureller Sprung durchgeführt wird. struktureller Sprung durchgeführt wird.
\begin{algorithm} \begin{algorithm}[ht]
\begin{algorithmic}[1] \begin{algorithmic}[1]
\Require \\$G_{E,t} = (V_t, E_{S,t} \cup E_{W,t}, V_{L,t}, W_t)$ (Erweiterter Graph),\\ \Require \\$G_{E,t} = (V_t, E_{S,t} \cup E_{W,t}, V_{L,t}, W_t)$ (Erweiterter Graph),\\
$r$ (Anzahl der Random Walks),\\ $r$ (Anzahl der Random Walks),\\

Binary file not shown.

View file

@ -63,7 +63,7 @@
\section{DYCOS} \section{DYCOS}
\input{DYCOS-Algorithmus} \input{DYCOS-Algorithmus}
\section{Schwächen und Verbesserungsvorschläge} \section{Probleme des DYCOS-Algorithmus}
\input{SchwaechenVerbesserungen} \input{SchwaechenVerbesserungen}
\section{Ausblick} \section{Ausblick}

View file

@ -1,13 +1,11 @@
About About
===== =====
The document in this folder is part of a proseminar at KIT. It is
written in German.
Ausarbeitung zum Proseminar "Netzwerkanalyse" am KIT. Ausarbeitung zum Proseminar "Netzwerkanalyse" am KIT.
Die Ausarbeitung soll 10-12 Seiten haben und die Präsentation Die Ausarbeitung soll 10-12 Seiten haben und die Präsentation
25-30 Minuten dauern + 10-15 Minuten Diskussion. 25-30 Minuten dauern + 10-15 Minuten Diskussion.
TODO Zu der Ausarbeitung gehört eine [Präsentation](https://github.com/MartinThoma/LaTeX-examples/tree/master/presentations/Datamining-Proseminar).
-----
* Abschnitt "Problemstellung" überarbeiten
* Algorithmen erklären
* Algorithmus 4, S. 9

View file

@ -1,4 +1,5 @@
Der in \cite{aggarwal2011} vorgestellte Algorithmus hat einige Probleme, Bei der Anwendung des in \cite{aggarwal2011} vorgestellten Algorithmus
auf reale Datensätze könnten zwei Probleme auftreten,
die im Folgenden erläutert werden. Außerdem werden Verbesserungen die im Folgenden erläutert werden. Außerdem werden Verbesserungen
vorgeschlagen, die es allerdings noch zu untersuchen gilt. vorgeschlagen, die es allerdings noch zu untersuchen gilt.

View file

@ -65,7 +65,7 @@ Ab hier gilt
Bei der Wahl der Datenstruktur von $T$ ist zu beachten, dass man in Bei der Wahl der Datenstruktur von $T$ ist zu beachten, dass man in
\cref{alg:21} über Indizes auf Elemente aus $T$ zugreifen können muss. \cref{alg:21} über Indizes auf Elemente aus $T$ zugreifen können muss.
In \cref{alg:l8} bis \cref{alg:l13} wird ein Wörterbuch erstellt, In \cref{alg:l8} bis \ref{alg:l13} wird ein assoziatives Array erstellt,
das von $v' \in T(v)$ auf die relative das von $v' \in T(v)$ auf die relative
Häufigkeit bzgl. aller Pfade von $v$ zu Knoten aus den Top-$q$ abbildet. Häufigkeit bzgl. aller Pfade von $v$ zu Knoten aus den Top-$q$ abbildet.

View file

@ -30,47 +30,56 @@ nur Wörter betrachtet werden, die auch vorkommen.
Ein Vorschlag, wie die Vokabularbestimmung implementiert werden kann, Ein Vorschlag, wie die Vokabularbestimmung implementiert werden kann,
ist als Pseudocode mit \cref{alg:vokabularbestimmung} ist als Pseudocode mit \cref{alg:vokabularbestimmung}
gegeben. Dieser Algorithmus benötigt neben dem Speicher für den gegeben. In \cref{alg4:l6} wird eine Teilmenge $S_t \subseteq V_{L,t}$
Graphen, die Texte sowie die $m$ Vokabeln noch $\mathcal{O}(|\text{Verschiedene Wörter in } S_t| \cdot (|\L_t| + 1))$ zum Generieren des Vokabulars gewählt. In \cref{alg4:l8} wird ein Array $cLabelWords$ erstellt, das $(|\L_t|+1)$ Felder hat.
Speicher. Die Average-Case Zeitkomplexität beträgt Die Elemente dieser Felder sind jeweils assoziative Arrays, deren
$\mathcal{O}(|\text{Wörter in } S_t|)$, wobei dazu die Vereinigung Schlüssel Wörter und deren Werte natürliche Zahlen sind. Die ersten
von Mengen $M,N$ in $\mathcal{O}(\min{|M|, |N|})$ sein muss. $|\L_t|$ Elemente von $cLabelWords$ dienem dem Zählen der Häufigkeit
der Wörter von Texten aus $S_t$, wobei für jede Beschriftung die
Häufigkeit einzeln gezählt wird. Das letzte Element aus $cLabelWords$
zählt die Summe der Wörter. Diese Datenstruktur wird in
\cref{alg4:l10} bis \ref{alg4:l12} gefüllt.
\begin{algorithm} In \cref{alg4:l17} bis \ref{alg4:l19} wird die relative Häufigkeit
der Wörter bzgl. der Beschriftungen bestimmt. Daraus wird in
\cref{alg4:l20} bis \ref{alg4:l22} der Gini-Koeffizient berechnet.
Schließlich werden in \cref{alg4:l23} bis \ref{alg4:l24} die Top-$q$
Wörter mit den höchsten Gini-Koeffizienten zurückgegeben.
\begin{algorithm}[ht]
\begin{algorithmic}[1] \begin{algorithmic}[1]
\Require \\ \Require \\
$V_{L,t}$ (beschriftete Knoten),\\ $V_{L,t}$ (beschriftete Knoten),\\
$\L_t$ (Beschriftungen),\\ $\L_t$ (Menge der Beschriftungen),\\
$f:V_{L,t} \rightarrow \L_t$ (Beschriftungsfunktion),\\ $f:V_{L,t} \rightarrow \L_t$ (Beschriftungsfunktion),\\
$m$ (Gewünschte Vokabulargröße) $m$ (Gewünschte Vokabulargröße)
\Ensure $\M_t$ (Vokabular)\\ \Ensure $\M_t$ (Vokabular)\\
\State $S_t \gets \Call{Sample}{V_{L,t}}$\label{alg4:l6} \Comment{Wähle eine Teilmenge $S_t \subseteq V_{L,t}$ aus}
\State $S_t \gets \Call{Sample}{V_{L,t}}$ \Comment{Wähle eine Teilmenge $S_t \subseteq V_{L,t}$ aus} \State $\M_t \gets \emptyset$ \Comment{Menge aller Wörter}
\State $\M_t \gets \bigcup_{v \in S_t} \Call{getTextAsSet}{v}$ \Comment{Menge aller Wörter} \State $cLabelWords \gets$ Array aus $(|\L_t|+1)$ assoziativen Arrays\label{alg4:l8}
\State $cLabelWords \gets (|\L_t|+1) \times |\M_t|$-Array, mit 0en initialisiert\\ \ForAll{$v \in S_t$} \label{alg4:l10}\Comment{Gehe jeden Text Wort für Wort durch}
\ForAll{$v \in V_{L,t}$} \Comment{Gehe jeden Text Wort für Wort durch}
\State $i \gets \Call{getLabel}{v}$ \State $i \gets \Call{getLabel}{v}$
\ForAll{$(word, occurences) \in \Call{getTextAsMultiset}{v}$} \ForAll{$(word, haeufigkeit) \in \Call{getTextAsMultiset}{v}$}
\State $cLabelWords[i][word] \gets cLabelWords[i][word] + occurences$ \State $cLabelWords[i][word] \gets cLabelWords[i][word] + haeufigkeit$
\State $cLabelWords[i][|\L_t|] \gets cLabelWords[i][|\L_t|] + occurences$ \State $cLabelWords[|\L_t|][word] \gets cLabelWords[i][|\L_t|] + haeufigkeit$
\State $\M_t = \M_t \cup \Set{word}$
\EndFor \EndFor
\EndFor \EndFor\label{alg4:l12}
\\ \\
\ForAll{Wort $w \in \M_t$} \ForAll{Wort $w \in \M_t$}
\State $p \gets $ Array aus $|\L_t|$ Zahlen in $[0, 1]$ \State $p \gets $ Array aus $|\L_t|$ Zahlen in $[0, 1]$\label{alg4:l17}
\ForAll{Label $i \in \L_t$} \ForAll{Label $i \in \L_t$}
\State $p[i] \gets \frac{cLabelWords[i][w]}{cLabelWords[i][|\L_t|]}$ \State $p[i] \gets \frac{cLabelWords[i][w]}{cLabelWords[i][|\L_t|]}$
\EndFor \EndFor\label{alg4:l19}
\State $w$.gini $\gets 0$ \State $w$.gini $\gets 0$ \label{alg4:l20}
\ForAll{$i \in 1, \dots, |\L_t|$} \ForAll{$i \in 1, \dots, |\L_t|$}
\State $w$.gini $\gets$ $w$.gini + $p[i]^2$ \State $w$.gini $\gets$ $w$.gini + $p[i]^2$
\EndFor \EndFor\label{alg4:l22}
\EndFor \EndFor
\State $\M_t \gets \Call{SortDescendingByGini}{\M_t}$ \State $\M_t \gets \Call{SortDescendingByGini}{\M_t}$\label{alg4:l23}
\State \Return $\Call{Top}{\M_t, m}$ \State \Return $\Call{Top}{\M_t, m}$\label{alg4:l24}
\end{algorithmic} \end{algorithmic}
\caption{Vokabularbestimmung} \caption{Vokabularbestimmung}
\label{alg:vokabularbestimmung} \label{alg:vokabularbestimmung}