ich war hier: CIPythonBA

Revision history for CIPythonBA


Revision [92821]

Last edited on 2019-01-03 12:48:55 by haeuser
Additions:
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. Die OOP bezieht sich wie bereits erwähnt, auf die Wiederverwendbarkeit. So kann z.B. eine Klasse Film erstellt werden, aus derer mehrere Objekte mit unterschiedlichen Inhalten erstellt werden können. Diese Objekte und deren Inhalte sind unabhänig von einander und können bsw. einer Liste hinzugefügt oder in ähnlichen verwendet werden. Bei der Vererbung im Gegensatz, geht es darum gewisse Oberklassen und Unterklassen zu definieren. Die Oberklasse beinhaltet alle relevanten Attribute und Funktionen, welche alle Unterklassen besitzen werden, und initialisiert diese. Die Unterklassen werden von der Oberklasse abgeleitet und besitzen demnäch alles was die Oberklasse beinhaltet. Jedoch können auch Veränderungen vorgenommen werden, wie z.B. das Überschreiben einer Funktion oder ähnliches. Im Beispiel, besitzt die Oberklasse Lebewesen die Variable "name" und die zwei Methoden "altern()" und "fortbewegen()". Die zwei Unterklassen "Mensch" und "Vogel" werden von der Klasse Lebewesen abgeleitet, d.h. sie besitzten alle Variablen und Methoden der Klasse Lebewesen. In unserem Bespiel überschreibt die Unterklassen zusätzlich die Methode "fortbewegen", d.h. dass sie diese nur für sich selbst abändern. Demnach könnte die Ausgabe beim Lebewesen: "Das Lebewesen bewegt sich fort", beim Mensch: "Der Mensch läuft" und beim Vogel: "Der Vogel fliegt" sein.
Die Folien & Aufgaben zu OOP können Sie hier herunterladen: **__{{files download="Python_2_0.zip" text="Vorlesung 2.0 (OOP) mit Aufgaben"}}__**
Deletions:
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. Die OOP bezieht sich wie bereits erwähnt, auf die Wiederverwendbarkeit. So kann z.B. eine Klasse Film erstellt werden, aus derer mehrere Objekte mit unterschiedlichen Inhalten erstellt werden können. Diese Objekte und deren Inhalte sind unabhänig von einander und können bsw. einer Liste hinzugefügt oder in ähnlichen verwendet werden. Bei der Vererbung im Gegensatz, geht es darum gewisse Oberklassen und Unterklassen zu definieren. Die Oberklasse beinhaltet alle relevanten Attribute und Funktionen, welche alle Unterklassen besitzen werden, und initialisiert diese. Die Unterklassen werden von der Oberklasse abgeleitet und besitzen demnäch alles was die Oberklasse beinhaltet. Jedoch können auch Veränderungen vorgenommen werden, wie z.B. das Überschreiben einer Funktion oder ähnliches. Im Beispiel, besitzt die Oberklasse Lebewesen die Variable "name" und die zwei Methoden "altern()" und "fortbewegen()". Die zwei Unterklassen "Mensch" und "Vogel" werden von der Klasse Lebewesen abgeleitet, d.h. sie besitzten alle Variablen und Methoden der Klasse Lebewesen. In unserem Bespiel überschreibt die Unterklassen zusätzlich die Methode "fortbewegen", d.h. dass sie diese nur für sich selbst abändern. Demnach könnte die Ausgabe beim Lebewesen: "Das Lebewesen bewegt sich fort", beim Mensch: "Der Mensch läuft" und beim Vogel: "Der Vogel fliegt" sein. Die Folien & Aufgaben zu OOP können Sie hier herunterladen: **__{{files download="Python_2_0.zip" text="Vorlesung 2.0 (OOP) mit Aufgaben"}}__**
{{files}}


Revision [92820]

Edited on 2019-01-03 12:48:25 by haeuser
Additions:
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. Die OOP bezieht sich wie bereits erwähnt, auf die Wiederverwendbarkeit. So kann z.B. eine Klasse Film erstellt werden, aus derer mehrere Objekte mit unterschiedlichen Inhalten erstellt werden können. Diese Objekte und deren Inhalte sind unabhänig von einander und können bsw. einer Liste hinzugefügt oder in ähnlichen verwendet werden. Bei der Vererbung im Gegensatz, geht es darum gewisse Oberklassen und Unterklassen zu definieren. Die Oberklasse beinhaltet alle relevanten Attribute und Funktionen, welche alle Unterklassen besitzen werden, und initialisiert diese. Die Unterklassen werden von der Oberklasse abgeleitet und besitzen demnäch alles was die Oberklasse beinhaltet. Jedoch können auch Veränderungen vorgenommen werden, wie z.B. das Überschreiben einer Funktion oder ähnliches. Im Beispiel, besitzt die Oberklasse Lebewesen die Variable "name" und die zwei Methoden "altern()" und "fortbewegen()". Die zwei Unterklassen "Mensch" und "Vogel" werden von der Klasse Lebewesen abgeleitet, d.h. sie besitzten alle Variablen und Methoden der Klasse Lebewesen. In unserem Bespiel überschreibt die Unterklassen zusätzlich die Methode "fortbewegen", d.h. dass sie diese nur für sich selbst abändern. Demnach könnte die Ausgabe beim Lebewesen: "Das Lebewesen bewegt sich fort", beim Mensch: "Der Mensch läuft" und beim Vogel: "Der Vogel fliegt" sein. Die Folien & Aufgaben zu OOP können Sie hier herunterladen: **__{{files download="Python_2_0.zip" text="Vorlesung 2.0 (OOP) mit Aufgaben"}}__**
Deletions:
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. Die OOP bezieht sich wie bereits erwähnt, auf die Wiederverwendbarkeit. So kann z.B. eine Klasse Film erstellt werden, aus derer mehrere Objekte mit unterschiedlichen Inhalten erstellt werden können. Diese Objekte und deren Inhalte sind unabhänig von einander und können bsw. einer Liste hinzugefügt oder in ähnlichen verwendet werden. Bei der Vererbung im Gegensatz, geht es darum gewisse Oberklassen und Unterklassen zu definieren. Die Oberklasse beinhaltet alle relevanten Attribute und Funktionen, welche alle Unterklassen besitzen werden, und initialisiert diese. Die Unterklassen werden von der Oberklasse abgeleitet und besitzen demnäch alles was die Oberklasse beinhaltet. Jedoch können auch Veränderungen vorgenommen werden, wie z.B. das Überschreiben einer Funktion oder ähnliches. Im Beispiel, besitzt die Oberklasse Lebewesen die Variable "name" und die zwei Methoden "altern()" und "fortbewegen()". Die zwei Unterklassen "Mensch" und "Vogel" werden von der Klasse Lebewesen abgeleitet, d.h. sie besitzten alle Variablen und Methoden der Klasse Lebewesen. In unserem Bespiel überschreibt die Unterklassen zusätzlich die Methode "fortbewegen", d.h. dass sie diese nur für sich selbst abändern. Demnach könnte die Ausgabe beim Lebewesen: "Das Lebewesen bewegt sich fort", beim Mensch: "Der Mensch läuft" und beim Vogel: "Der Vogel fliegt" sein.


Revision [92819]

Edited on 2019-01-03 12:43:27 by haeuser
Additions:
{{files}}


Revision [92151]

Edited on 2018-10-25 10:36:28 by haeuser
Additions:
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. Die OOP bezieht sich wie bereits erwähnt, auf die Wiederverwendbarkeit. So kann z.B. eine Klasse Film erstellt werden, aus derer mehrere Objekte mit unterschiedlichen Inhalten erstellt werden können. Diese Objekte und deren Inhalte sind unabhänig von einander und können bsw. einer Liste hinzugefügt oder in ähnlichen verwendet werden. Bei der Vererbung im Gegensatz, geht es darum gewisse Oberklassen und Unterklassen zu definieren. Die Oberklasse beinhaltet alle relevanten Attribute und Funktionen, welche alle Unterklassen besitzen werden, und initialisiert diese. Die Unterklassen werden von der Oberklasse abgeleitet und besitzen demnäch alles was die Oberklasse beinhaltet. Jedoch können auch Veränderungen vorgenommen werden, wie z.B. das Überschreiben einer Funktion oder ähnliches. Im Beispiel, besitzt die Oberklasse Lebewesen die Variable "name" und die zwei Methoden "altern()" und "fortbewegen()". Die zwei Unterklassen "Mensch" und "Vogel" werden von der Klasse Lebewesen abgeleitet, d.h. sie besitzten alle Variablen und Methoden der Klasse Lebewesen. In unserem Bespiel überschreibt die Unterklassen zusätzlich die Methode "fortbewegen", d.h. dass sie diese nur für sich selbst abändern. Demnach könnte die Ausgabe beim Lebewesen: "Das Lebewesen bewegt sich fort", beim Mensch: "Der Mensch läuft" und beim Vogel: "Der Vogel fliegt" sein.
Deletions:
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. Die OOP bezieht sich wie bereits erwähnt, auf die Wiederverwendbarkeit. So kann z.B. eine Klasse Film erstellt werden, aus derer mehrere Objekte mit unterschiedlichen Inhalten erstellt werden können. Diese Objekte und deren Inhalte sind unabhänig von einander und können bsw. einer Liste hinzugefügt oder in ähnlichen verwendet werden. Bei der Vererbung im Gegensatz, geht es darum gewisse Oberklassen und Unterklassen zu definieren. Die Oberklasse beinhaltet alle relevanten Attribute und Funktionen, welche alle Unterklassen besitzen werden, und initialisiert diese. Die Unterklassen werden von der Oberklasse abgeleitet und besitzen demnäch alles was die Oberklasse beinhaltet. Jedoch können auch Veränderungen vorgenommen werden, wie z.B. das Überschreiben einer Funktion oder ähnliches. Im Beispiel, besitzt die Oberklasse Lebewesen die Variable "name" und die zwei Methoden "altern()" und "fortbewegen()". Die zwei Unterklassen "Mensch" und "Vogel" werden von der Klasse Lebewesen abgeleitet, d.h. sie besitzten alle Variablen und Methoden der Klasse Lebewesen. In unserem Bespiel überschreibt die Unterklassen zusätzlich die Methode "fortbewegen", d.h. dass sie diese nur für sich selbst abändern.


Revision [92150]

Edited on 2018-10-25 10:34:28 by haeuser
Additions:
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. Die OOP bezieht sich wie bereits erwähnt, auf die Wiederverwendbarkeit. So kann z.B. eine Klasse Film erstellt werden, aus derer mehrere Objekte mit unterschiedlichen Inhalten erstellt werden können. Diese Objekte und deren Inhalte sind unabhänig von einander und können bsw. einer Liste hinzugefügt oder in ähnlichen verwendet werden. Bei der Vererbung im Gegensatz, geht es darum gewisse Oberklassen und Unterklassen zu definieren. Die Oberklasse beinhaltet alle relevanten Attribute und Funktionen, welche alle Unterklassen besitzen werden, und initialisiert diese. Die Unterklassen werden von der Oberklasse abgeleitet und besitzen demnäch alles was die Oberklasse beinhaltet. Jedoch können auch Veränderungen vorgenommen werden, wie z.B. das Überschreiben einer Funktion oder ähnliches. Im Beispiel, besitzt die Oberklasse Lebewesen die Variable "name" und die zwei Methoden "altern()" und "fortbewegen()". Die zwei Unterklassen "Mensch" und "Vogel" werden von der Klasse Lebewesen abgeleitet, d.h. sie besitzten alle Variablen und Methoden der Klasse Lebewesen. In unserem Bespiel überschreibt die Unterklassen zusätzlich die Methode "fortbewegen", d.h. dass sie diese nur für sich selbst abändern.
Deletions:
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. Die OOP bezieht sich wie bereits erwähnt, auf die Wiederverwendbarkeit. So kann z.B. eine Klasse Film erstellt werden, aus derer mehrere Objekte mit unterschiedlichen Inhalten erstellt und zu einer Liste hinzugefügt oder ähnlichen verwendet werden. Bei der Vererbung im Gegensatz, geht es um die Ableitungen von Klassen. Wie im Beispiel, besitzt man die Oberklasse Lebewesen, welche die Variable "name" und die zwei Methoden "altern()" und "fortbewegen()" besitzt. Die zwei Unterklassen "Mensch" und "Vogel" werden von der Klasse Lebewesen abgeleitet, d.h. sie besitzten alle Variablen und Methoden von der Klasse Lebewesen. In unserem Bespiel überschreiben die Unterklassen zusätzlich die Methode "fortbewegen", d.h. dass sie diese nur für sich selbst abändern.


Revision [92125]

Edited on 2018-10-24 11:50:52 by haeuser
Additions:
Der dritte Termin setzt sich mit dem Multithreading und Multiprocessing auseinanden. Der Unterschied zwischen den beiden ist hierbei hierarchisch. Ganz oben steht eine Prozess, welcher mehrere Threads beinhalten kann. In Python gibt es jedoch einen bedeutenden Unteschied, im Gegensatz zu andern Programmiersprachen, welcher als Problem des Standart Interpreter von Python (CPython) gilt. Dies ist der sogenannte Global Interpreter Lock (GIL), welcher momentan nur eingeschränkt multithreadingfähig ist. Es können zwar mehrere Threads erstellt werden, diese können jedoch nicht parallel laufen. Bei gewissen anderen Implementierungen tritt dieses Problem jedoch nicht auf. Als erstes werden wir uns mit den Einsatzgebieten der beiden auseinander setzten. Anschließend werden wir uns mit dem Multithreading beschäftigen, in Bezug auf Thread ertstellen, Eventabfragen, benutzen einer Queue zur Abarbeitung von Aufgaben und das benutzen einen Sperrmechanismus. Dies ist die tiefere Ebene, da jedes Programm ein Prozess besitzt, indem mindestens der Main-Thread und / oder mehere Threads laufen. Mehrere Threads eines Prozesses teilen sich Daten und Systemressourcen und sind leichter zu erstellen aus Prozesse. Anschließend begen wir uns eine Ebene höher zum Multiprocessing, welche die Erstellung mehrere Prozesse ermöglich, wodurch die Parallelisierung auf meheren Prozessorkernen ermöglicht wird. Die Erstellung eines Prozesses ist deutlich rechenintensiver als bei einem Thread, da jeder Prozess über seine eigenen Ressourcen verfügt. Hierfür schauen wir uns mehrere Beispiele an, besonders aber jedoch das Pool Mutlithreading, welches meines Erachtens die einfachste ist. In den unteren Abbildungen ist links der Ablauf beim Multithreading und rechts vom Multiprocessing zu sehen.
{{image class="left" width="500" url="thread.jpg"}} {{image class="center" width="550" url="process.jpg"}}
Deletions:
Der dritte Termin setzt sich mit dem Multithreading und Multiprocessing auseinanden. Der Unterschied zwischen den beiden ist hierbei hierarchisch. Ganz oben steht eine Prozess, welcher mehrere Threads beinhalten kann. In Python gibt es jedoch einen bedeutenden Unteschied, im Gegensatz zu andern Programmiersprachen, welcher als Problem des Standart Interpreter von Python (CPython) gilt. Dies ist der sogenannte Global Interpreter Lock (GIL), welcher momentan nur eingeschränkt multithreadingfähig ist. Es können zwar mehrere Threads erstellt werden, diese können jedoch nicht parallel laufen. Bei gewissen anderen Implementierungen tritt dieses Problem jedoch nicht auf. Als erstes werden wir uns mit den Einsatzgebieten der beiden auseinander setzten. Anschließend werden wir uns mit dem Multithreading beschäftigen, in Bezug auf Thread ertstellen, Eventabfragen, benutzen einer Queue zur Abarbeitung von Aufgaben und das benutzen einen Sperrmechanismus. Dies ist die tiefere Ebene, da jedes Programm ein Prozess besitzt, indem mindestens der Main-Thread und / oder mehere Threads laufen. Mehrere Threads eines Prozesses teilen sich Daten und Systemressourcen und sind leichter zu erstellen aus Prozesse. Anschließend begen wir uns eine Ebene höher zum Multiprocessing, welche die Erstellung mehrere Prozesse ermöglich, wodurch die Parallelisierung auf meheren Prozessorkernen ermöglicht wird. Die Erstellung eines Prozesses ist deutlich rechenintensiver als bei einem Thread, da jeder Prozess über seine eigenen Ressourcen verfügt. Hierfür schauen wir uns mehrere Beispiele an, besonders aber jedoch das Pool Mutlithreading, welches meines Erachtens die einfachste ist.
{{image class="left" width="400" url="thread.jpg"}} {{image class="center" width="600" url="process.jpg"}}


Revision [92124]

Edited on 2018-10-24 11:49:12 by haeuser
Additions:
{{image class="left" width="400" url="thread.jpg"}} {{image class="center" width="600" url="process.jpg"}}
Deletions:
{{image class="left" width="500" url="thread.jpg"}} {{image class="center" width="500" url="process.jpg"}}
{{files}}


Revision [92123]

Edited on 2018-10-24 10:39:10 by haeuser
Additions:
Der dritte Termin setzt sich mit dem Multithreading und Multiprocessing auseinanden. Der Unterschied zwischen den beiden ist hierbei hierarchisch. Ganz oben steht eine Prozess, welcher mehrere Threads beinhalten kann. In Python gibt es jedoch einen bedeutenden Unteschied, im Gegensatz zu andern Programmiersprachen, welcher als Problem des Standart Interpreter von Python (CPython) gilt. Dies ist der sogenannte Global Interpreter Lock (GIL), welcher momentan nur eingeschränkt multithreadingfähig ist. Es können zwar mehrere Threads erstellt werden, diese können jedoch nicht parallel laufen. Bei gewissen anderen Implementierungen tritt dieses Problem jedoch nicht auf. Als erstes werden wir uns mit den Einsatzgebieten der beiden auseinander setzten. Anschließend werden wir uns mit dem Multithreading beschäftigen, in Bezug auf Thread ertstellen, Eventabfragen, benutzen einer Queue zur Abarbeitung von Aufgaben und das benutzen einen Sperrmechanismus. Dies ist die tiefere Ebene, da jedes Programm ein Prozess besitzt, indem mindestens der Main-Thread und / oder mehere Threads laufen. Mehrere Threads eines Prozesses teilen sich Daten und Systemressourcen und sind leichter zu erstellen aus Prozesse. Anschließend begen wir uns eine Ebene höher zum Multiprocessing, welche die Erstellung mehrere Prozesse ermöglich, wodurch die Parallelisierung auf meheren Prozessorkernen ermöglicht wird. Die Erstellung eines Prozesses ist deutlich rechenintensiver als bei einem Thread, da jeder Prozess über seine eigenen Ressourcen verfügt. Hierfür schauen wir uns mehrere Beispiele an, besonders aber jedoch das Pool Mutlithreading, welches meines Erachtens die einfachste ist.
{{image class="left" width="500" url="thread.jpg"}} {{image class="center" width="500" url="process.jpg"}}
{{files}}
Deletions:
Der dritte Termin setzt sich mit dem Multithreading und Multiprocessing auseinanden. Der Unterschied zwischen den beiden ist hierbei hierarchisch. Ganz oben steht eine Prozess, welcher mehrere Threads beinhalten kann. In Python gibt es jedoch einen bedeutenden Unteschied, im Gegensatz zu andern Programmiersprachen, welcher als Problem des Standart Interpreter von Python (CPython) gilt. Dies ist der sogenannte Global Interpreter Lock (GIL), welcher momentan nur eingeschränkt multithreadingfähig ist. Es können zwar mehrere Threads erstellt werden, diese können jedoch nicht parallel laufen. Bei gewissen anderen Implementierungen tritt dieses Problem jedoch nicht auf. Als erstes werden wir uns mit den Einsatzgebieten der beiden auseinander setzten. Anschließend werden wir uns mit dem Multithreading beschäftigen, in Bezug auf Thread ertstellen, Eventabfragen, benutzen einer Queue zur Abarbeitung von Aufgaben und das benutzen einen Sperrmechanismus. Anschließend begen wir uns eine Ebene höher zum Multiprocessing, welche die Erstellung mehrere Prozesse ermöglich, wodurch die Parallelisierung auf meheren Prozessorkernen ermöglicht wird. Hierfür schauen wir uns mehrere Beispiele an, besonders aber jedoch das Pool Mutlithreading, welches meines Erachtens die einfachste ist.


Revision [92115]

Edited on 2018-10-24 00:20:14 by haeuser
Additions:
{{image class="center" width="800" url="oop.jpg"}}
Deletions:
{{image class="center" width="700" url="oop.jpg"}}
[Erklärung für Verebung mit Bild folgt]
{{files}}


Revision [92113]

Edited on 2018-10-24 00:14:04 by haeuser
Additions:
{{files}}
CategoryTutorienFKITWS1819
Deletions:
CategoryTutorienFKITSS18


Revision [92112]

Edited on 2018-10-24 00:11:44 by haeuser
Additions:
====Objektorientierten Programmierung (OOP)====
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. Die OOP bezieht sich wie bereits erwähnt, auf die Wiederverwendbarkeit. So kann z.B. eine Klasse Film erstellt werden, aus derer mehrere Objekte mit unterschiedlichen Inhalten erstellt und zu einer Liste hinzugefügt oder ähnlichen verwendet werden. Bei der Vererbung im Gegensatz, geht es um die Ableitungen von Klassen. Wie im Beispiel, besitzt man die Oberklasse Lebewesen, welche die Variable "name" und die zwei Methoden "altern()" und "fortbewegen()" besitzt. Die zwei Unterklassen "Mensch" und "Vogel" werden von der Klasse Lebewesen abgeleitet, d.h. sie besitzten alle Variablen und Methoden von der Klasse Lebewesen. In unserem Bespiel überschreiben die Unterklassen zusätzlich die Methode "fortbewegen", d.h. dass sie diese nur für sich selbst abändern.
{{image class="center" width="700" url="oop.jpg"}}
[Erklärung für Verebung mit Bild folgt]
Deletions:
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. [Erklärung für Verebung mit Bild folgt]


Revision [92111]

Edited on 2018-10-23 18:09:47 by haeuser
Additions:
Der dritte Termin setzt sich mit dem Multithreading und Multiprocessing auseinanden. Der Unterschied zwischen den beiden ist hierbei hierarchisch. Ganz oben steht eine Prozess, welcher mehrere Threads beinhalten kann. In Python gibt es jedoch einen bedeutenden Unteschied, im Gegensatz zu andern Programmiersprachen, welcher als Problem des Standart Interpreter von Python (CPython) gilt. Dies ist der sogenannte Global Interpreter Lock (GIL), welcher momentan nur eingeschränkt multithreadingfähig ist. Es können zwar mehrere Threads erstellt werden, diese können jedoch nicht parallel laufen. Bei gewissen anderen Implementierungen tritt dieses Problem jedoch nicht auf. Als erstes werden wir uns mit den Einsatzgebieten der beiden auseinander setzten. Anschließend werden wir uns mit dem Multithreading beschäftigen, in Bezug auf Thread ertstellen, Eventabfragen, benutzen einer Queue zur Abarbeitung von Aufgaben und das benutzen einen Sperrmechanismus. Anschließend begen wir uns eine Ebene höher zum Multiprocessing, welche die Erstellung mehrere Prozesse ermöglich, wodurch die Parallelisierung auf meheren Prozessorkernen ermöglicht wird. Hierfür schauen wir uns mehrere Beispiele an, besonders aber jedoch das Pool Mutlithreading, welches meines Erachtens die einfachste ist.
Deletions:
Der dritte Termin setzt sich mit dem Multithreading und Multiprocessing auseinanden. Der Unterschied zwischen den beiden ist hierbei hierarchisch. Ganz oben steht eine Prozess, welcher mehrere Threads beinhalten kann. In Python gibt es jedoch einen bedeutenden Unteschied, im Gegensatz zu andern Programmiersprachen, welcher als Problem des Standart Interpreter von Python (CPython) gilt. Dies ist der sogenannte Global Interpreter Lock (GIL), welcher momentan nur eingeschränkt multithreadingfähig ist. Es können zwar mehrere Threads erstellt werden, diese können jedoch nicht parallel laufen. Bei gewissen anderen Implementierungen tritt dieses Problem jedoch nicht auf. Als erstes werden wir uns dennoch mit dem Multithreading beschäftigen, in Bezug auf Thread ertstellen, Eventabfragen, benutzen einer Queue zur Abarbeitung von Aufgaben und das benutzen einen Sperrmechanismus. Anschließend begen wir uns eine Ebene höher zum Multiprocessing, welche die Erstellung mehrere Prozesse ermöglich, wodurch die Parallelisierung auf meheren Prozessorkernen ermöglicht wird. Hierfür schauen wir uns mehrere Beispiele an, besonders aber jedoch das Pool Mutlithreading, welches meines Erachtens die einfachste ist.


Revision [92110]

Edited on 2018-10-23 18:06:52 by haeuser
Additions:
Die erste Termin handelte von den Grundlagen der Programmierung in Python. Anfgefangen mit der Installation der Entwicklungsumgebung, Erstellung einer Projektes und den Allgemeinen Programmiergrundlagen. Zu den Allgemeinen Programmiergrundlagen gehören die Verwendung von Variablen, Verzweigungen, Schleifen, Listen & andere Datenstrukturen, sowie Exception Handling. Dies wird Ihnen Herr Gerlach präsentieren, weitere Informationen sowie die Präsentationsunterlagen finden Sie auf seiner Seite: **__[[http://wiki.hs-schmalkalden.de/TutoriumPythonProgrammierungMaster Tutorium Python - Master]]__**
Im zweiten Termin befassen wir uns mit der Objektorientierten Programmierung (OOP). Hierbei erstellen wir eigene Funktionen, Module und Klassen, welche die Grundlagen für die Wiederverwendbarkeit von Quellcode ist. Des Weiteren befassen wir uns mit Zugriffsmodifizieren und der Vererbung. [Erklärung für Verebung mit Bild folgt]
====Parallele Programmierung====
Der dritte Termin setzt sich mit dem Multithreading und Multiprocessing auseinanden. Der Unterschied zwischen den beiden ist hierbei hierarchisch. Ganz oben steht eine Prozess, welcher mehrere Threads beinhalten kann. In Python gibt es jedoch einen bedeutenden Unteschied, im Gegensatz zu andern Programmiersprachen, welcher als Problem des Standart Interpreter von Python (CPython) gilt. Dies ist der sogenannte Global Interpreter Lock (GIL), welcher momentan nur eingeschränkt multithreadingfähig ist. Es können zwar mehrere Threads erstellt werden, diese können jedoch nicht parallel laufen. Bei gewissen anderen Implementierungen tritt dieses Problem jedoch nicht auf. Als erstes werden wir uns dennoch mit dem Multithreading beschäftigen, in Bezug auf Thread ertstellen, Eventabfragen, benutzen einer Queue zur Abarbeitung von Aufgaben und das benutzen einen Sperrmechanismus. Anschließend begen wir uns eine Ebene höher zum Multiprocessing, welche die Erstellung mehrere Prozesse ermöglich, wodurch die Parallelisierung auf meheren Prozessorkernen ermöglicht wird. Hierfür schauen wir uns mehrere Beispiele an, besonders aber jedoch das Pool Mutlithreading, welches meines Erachtens die einfachste ist.
Neue Folien und Unterlagen sind bereits in Arbeit und werden zum Termin hochgeladen, die alten Folien und Beispieldaten zu den Grundlagen sowie Multiprocessing können Sie hier herunterladen: **__{{files download="Vorlesung_1_2_mit_Aufgaben.zip" text="Vorlesung 1 & 2 mit Aufgaben"}}__**
Deletions:
Der erste Termin handelte von den Grundlagen der Programmierung in Python. Anfgefangen mit der Installation der Entwicklungsumgebung, Erstellung einer Projektes und den Allgemeinen Programmiergrundlagen. Zu den Allgemeinen Programmiergrundlagen gehören die Verwendung von Variablen, Verzweigungen, Schleifen, Listen & andere Datenstrukturen, sowie Exception Handling. Im zweiten Termin setzten wir uns mit dem Multithreading und Multiprocessing auseinanden. Hierbei fanden wir herraus das Python mehrere Threads dennoch nur auf einem Prozessorkern laufen lässt. Dadurch haben wir uns verschiedene Multiprocessing Beispiele angeschaut, weil diese auf meheren Prozessorkernen aufgeteilt werden und somit die von uns gewünschte Synchronität, sowie eine schnellere Verarbeitung bereitstellt. Hierbei haben wir herrausgefunden, dass das Pool Mutlithreading die einfachste und für uns beste Methode war um an unser Ziel zu kommen.
Die Folien und Beispieldaten zu den Grundlagen sowie Multiprocessing können Sie hier herunterladen: **__{{files download="Vorlesung_1_2_mit_Aufgaben.zip" text="Vorlesung 1 & 2 mit Aufgaben"}}__**


Revision [91727]

Edited on 2018-10-09 12:27:05 by ClaudiaMichel
Additions:
Diese Seite beschreibt die Inhalte des Tutoriums "Tutorium Python Programmierung (Bachelorstudiengang)". Das Ziel des Tutoriums ist es, eine Einführung in Python zu geben, sowie die gezeigten Programmbeispiele in eigenen Übungen zu festigen. Des Weiteren werden verschiedene Methoden zur Klassifizierung und dem einfachste Neuronale Netz vermittelt bzw. gefestigt. Fachübergreifende Kenntnisse wie z.B. die Visualisierung in Python werden ebenfalls vermittelt.
Deletions:
Diese Seite beschreibt die Inhalte des Tutoriums "Tutorium Python Programmierung (Bachelorstudiengang)". Das Ziel des Tutoriums ist es, eine Einfürhrung in Python zu geben, sowie die gezeigten Programmbeispiele in eigenen Übungen zu festigen. Des Weiteren werden verschiedene Methoden zur Klassifizierung und dem einfachste Neuronale Netz vermittelt bzw. gefestigt. Fachübergreifende Kenntnisse wie z.B. die Visualisierung in Python werden ebenfalls vermittelt.


Revision [91166]

Edited on 2018-09-18 09:14:16 by haeuser
Additions:
----
CategoryTutorienFKITSS18


Revision [90962]

Edited on 2018-09-07 12:50:57 by haeuser

No Differences

Revision [90961]

Edited on 2018-09-07 12:49:47 by haeuser
Additions:
{{image class="center" width="600" url="svm_4.JPG"}}
Deletions:
{{image class="center" width="600" url="svm_4.jpg"}}
-
- {{files}}


Revision [90960]

Edited on 2018-09-07 12:49:20 by haeuser
Additions:
-
- {{files}}


Revision [90959]

Edited on 2018-09-07 12:48:58 by haeuser
Deletions:
{{files}}


Revision [90958]

Edited on 2018-09-07 12:47:29 by haeuser
Additions:
{{image class="left" width="350" url="svm_1.jpg"}} {{image class="center" width="350" url="svm_2.jpg"}}
Deletions:
{{image class="left" width="350" url="svm_1.jpg"}} {{image class="center" width="330" url="svm_2.jpg"}}


Revision [90957]

Edited on 2018-09-07 12:46:59 by haeuser
Additions:
{{image class="left" width="350" url="svm_1.jpg"}} {{image class="center" width="330" url="svm_2.jpg"}}
Deletions:
{{image class="left" width="500" url="svm_1.jpg"}} {{image class="center" width="600" url="svm_2.jpg"}}


Revision [90956]

Edited on 2018-09-07 12:42:12 by haeuser
Additions:
{{image class="left" width="500" url="svm_1.jpg"}} {{image class="center" width="600" url="svm_2.jpg"}}
Ist eine lineare Trennung nicht möglich, wird der Kernel-Trick angewendet. Hierbei werden die Daten in einen höherdimensionalen Raum transferiert, wo sie dann linear getrennt werden können. Es wird eine lineare Trennfunktion gebildet, anschließend werden die Daten und die (Hyper-)Trennebene zurück transformiert, wobei die Trennfunktion dann meist nicht mehr linear bzw. zusammenhägend ist.
{{image class="center" width="600" url="svm_3.jpg"}}
In Python stehen mehrere Kernel zur Verfügung, wobei die bekanntesten der poly (polynominale) und der rbf (radial basis function) Kernel sind. Beim poly Kernel wird eine weiteres Merkmal hinzugefügt durch die Wertkombination der vorhandenen Merkmale, z.B. [x,y,z] -> [x,y,z, x^3+y^2+z]. Der rbf Kernel wir benutzt um geschlossene Bereiche z.B. Kreise oder Cluster zu erkennen. Dieser bildet Hügel, welche durch eine (Hyper-)Ebene linear getrennt werden können.
{{image class="center" width="600" url="svm_4.jpg"}}
Die Folien zur SVM können Sie hier herunterladen: **__{{files download="Vorlesung_6.pdf" text="Vorlesung 6"}}__**
Deletions:
{{image class="left" width="500" url="svm_1.jpg"}} {{image width="600" url="svm_2.jpg"}}


Revision [90955]

Edited on 2018-09-07 12:33:02 by haeuser
Additions:
{{image class="left" width="700" url="tortendia.jpg"}} {{image class="center" width="400" url="histogram.jpg"}}
{{image class="left" width="500" url="kMeans1.jpg"}} {{image class="center" width="600" url="kMeans2.jpg"}}
Deletions:
{{image class="left" width="700" url="tortendia.jpg"}} {{image width="400" url="histogram.jpg"}}
{{image class="left" width="500" url="kMeans1.jpg"}} {{image width="600" url="kMeans2.jpg"}}


Revision [90954]

Edited on 2018-09-07 12:31:27 by haeuser
Additions:
{{image class="left" width="500" url="fuzzy_1.jpg"}} {{image class="center" width="600" url="fuzzy_2.jpg"}}
Deletions:
{{image class="left" width="500" url="fuzzy_1.jpg"}} {{image class="right" width="600" url="fuzzy_2.jpg"}}


Revision [90953]

Edited on 2018-09-07 12:31:06 by haeuser
Additions:
{{image class="left" width="500" url="fuzzy_1.jpg"}} {{image class="right" width="600" url="fuzzy_2.jpg"}}
{{image class="left" width="500" url="svm_1.jpg"}} {{image width="600" url="svm_2.jpg"}}
Deletions:
{{image class="left" width="500" url="fuzzy_1.jpg"}} {{image width="600" url="fuzzy_2.jpg"}}


Revision [90952]

Edited on 2018-09-07 12:29:11 by haeuser
Additions:
Die Support Vektor Maschiene ist eine wichtige Gruppe für Klassifikationen. Das Grundkonzept ist es, dass versucht wird die vorhanden Daten linear zu trennen und somit eine Klassifikation durchzuführen. Die Trennfunktion wird so gebildet, dass die Daten maximal von einander getrennt sind. Dies wird als Large Margin Concept bezeichnet. Falls keine lineare Separation möglich ist oder die Spanne zwischen den Klassen zu gering ist, nutzt man das Soft Margin Concept, welches Fehlklassifikationen erlaubt. Dieses wird durch den C-Parameter zugelassen.
Deletions:
Weiteres folgt


Revision [90951]

Edited on 2018-09-07 12:17:15 by haeuser

No Differences

Revision [90950]

Edited on 2018-09-07 12:16:52 by haeuser

No Differences

Revision [90949]

Edited on 2018-09-07 12:16:06 by haeuser
Additions:
3) Berechnen der Clusterzentren
- Anhand einer Mittelwertbildung der X / Y Werte eines Clusters
- Schritt 2 & 3 werden wiederholt bis sich die Clusterzentren nicht mehr bzw. so gut wie nicht mehr ändern oder eine gewisse Anzahl von Iterationsschritten erreicht ist
Der Fuzzy k-Means ist eine Erweitung des k-Means, wobei jeder Datenpunkt nicht einem einzeln Cluster zugeordnet wird, sondern eine gewisse Prozentzuorndnung zu jedem Cluster erhält. Die Summer der prozentualen Zuordnung ergibt 100%. Für diese Zuordnungen wird eine Zuordnungsmatrix benötigt / erstellt. Noch einer Erweiterung ist die zusätzliche Anpassungvariable (Fuzzyfier), welche auch als Verschleifungsgrad bezeichnet wird. Diese dient für die Schärfe- / Genauigkeitseinstellung der Clusterung. Wird dieser >2 gewählt erfolgt eine sehr unscharfe Clusterung. Wird eine sehr scharfe / genauer Clusterung gewünscht, sollte der Fuzzyfier zwischen 1-2 gewählt werden. Des Weiteren werden die Clusterzentren durch eine andere Formel berechnet, wie in den folgenden Bildern zu sehen.
{{image class="left" width="500" url="fuzzy_1.jpg"}} {{image width="600" url="fuzzy_2.jpg"}}
Deletions:
3) Berechnen der Mittelpunkte des Clusters
- Schritt 2 & 3 werden wiederholt bis sich die Mittelpunkte nicht mehr ändern


Revision [90948]

Edited on 2018-09-07 12:07:40 by haeuser

No Differences

Revision [90947]

Edited on 2018-09-07 12:06:17 by haeuser
Additions:
{{files}}


Revision [90911]

Edited on 2018-08-28 14:38:04 by ChrisGerlach
Additions:
3) Berechnen der Mittelpunkte des Clusters
- Schritt 2 & 3 werden wiederholt bis sich die Mittelpunkte nicht mehr ändern
Die Folien zum kMeans und Fuzzy kMeans können Sie hier herunterladen: **__{{files download="Vorlesung_4-2.pdf" text="Vorlesung 4.2"}}__**
====Support Vektor Maschiene====
- Vertiefende Beispiele SVM
Deletions:
3) Berechnen der Clusterzentren
- Anhand einer Mittelwertbildung der X / Y Werte eines Clusters
- Schritt 2 & 3 werden wiederholt bis sich die Clusterzentren nicht mehr bzw. so gut wie nicht mehr ändern oder eine gewisse Anzahl von Iterationsschritten erreicht ist
Der Fuzzy k-Means ist eine Erweitung des k-Means, wobei jeder Datenpunkt nicht einem einzeln Cluster zugeordnet wird, sondern eine gewisse Prozentzuorndnung zu jedem Cluster erhält. Die Summer der prozentualen Zuordnung ergibt 100%. Für diese Zuordnungen wird eine Zuordnungsmatrix benötigt / erstellt. Noch einer Erweiterung ist die zusätzliche Anpassungvariable (Fuzzyfier), welche auch als Verschleifungsgrad bezeichnet wird. Diese dient für die Schärfe- / Genauigkeitseinstellung der Clusterung. Wird dieser >2 gewählt erfolgt eine sehr unscharfe Clusterung. Wird eine sehr scharfe / genauer Clusterung gewünscht, sollte der Fuzzyfier zwischen 1-2 gewählt werden. Des Weiteren werden die Clusterzentren durch eine andere Formel berechnet, wie in den folgenden Bildern zu sehen.
Die Folien zum k-Means und Fuzzy k-Means können Sie hier herunterladen: **__{{files download="Vorlesung_4-2.pdf" text="Vorlesung 4.2"}}__**
{{image class="left" width="500" url="fuzzy_1.jpg"}} {{image width="600" url="fuzzy_2.jpg"}}
=====Support Vektor Maschiene=====
- Vertiefende Beispiele SVM (z.B. Zahlenerkennung)


Revision [90897]

Edited on 2018-08-28 13:57:38 by haeuser
Additions:
=====Support Vektor Maschiene=====
Deletions:
====Support Vektor Maschiene====


Revision [90896]

Edited on 2018-08-28 13:56:16 by haeuser

No Differences

Revision [90893]

Edited on 2018-08-28 13:55:28 by haeuser
Additions:
- Vertiefende Beispiele SVM (z.B. Zahlenerkennung)
Deletions:
- Vertiefende Beispiele SVM
{{files}}


Revision [90890]

Edited on 2018-08-28 13:54:09 by haeuser
Additions:
3) Berechnen der Clusterzentren
- Anhand einer Mittelwertbildung der X / Y Werte eines Clusters
- Schritt 2 & 3 werden wiederholt bis sich die Clusterzentren nicht mehr bzw. so gut wie nicht mehr ändern oder eine gewisse Anzahl von Iterationsschritten erreicht ist
Der Fuzzy k-Means ist eine Erweitung des k-Means, wobei jeder Datenpunkt nicht einem einzeln Cluster zugeordnet wird, sondern eine gewisse Prozentzuorndnung zu jedem Cluster erhält. Die Summer der prozentualen Zuordnung ergibt 100%. Für diese Zuordnungen wird eine Zuordnungsmatrix benötigt / erstellt. Noch einer Erweiterung ist die zusätzliche Anpassungvariable (Fuzzyfier), welche auch als Verschleifungsgrad bezeichnet wird. Diese dient für die Schärfe- / Genauigkeitseinstellung der Clusterung. Wird dieser >2 gewählt erfolgt eine sehr unscharfe Clusterung. Wird eine sehr scharfe / genauer Clusterung gewünscht, sollte der Fuzzyfier zwischen 1-2 gewählt werden. Des Weiteren werden die Clusterzentren durch eine andere Formel berechnet, wie in den folgenden Bildern zu sehen.
{{image class="left" width="500" url="fuzzy_1.jpg"}} {{image width="600" url="fuzzy_2.jpg"}}
{{files}}
Deletions:
3) Berechnen der Mittelpunkte des Clusters
- Schritt 2 & 3 werden wiederholt bis sich die Mittelpunkte nicht mehr ändern
Der Fuzzy k-Means ist eine Erweitung des k-Means, wobei jeder Datenpunkt nicht einem einzeln Cluster zugeordnet wird, sondern eine gewisse Prozentzuorndnung zu jedem Cluster erhält. Die Summer der prozentualen Zuordnung ergibt 100%. Für diese Zuordnungen wird eine Zuordnungsmatrix benötigt / erstellt. Noch einer Erweiterung ist die zusätzliche Anpassungvariable (Fuzzyfier), welche auch als Verschleifungsgrad bezeichnet wird. Diese dient für die Schärfe- / Genauigkeitseinstellung der Clusterung. Wird dieser >2 gewählt erfolgt eine sehr unscharfe Clusterung. Wird eine sehr scharfe / genauer Clusterung gewünscht, sollte der Fuzzyfier zwischen 1-2 gewählt werden.


Revision [90875]

Edited on 2018-08-28 13:42:44 by haeuser
Additions:
Der Fuzzy k-Means ist eine Erweitung des k-Means, wobei jeder Datenpunkt nicht einem einzeln Cluster zugeordnet wird, sondern eine gewisse Prozentzuorndnung zu jedem Cluster erhält. Die Summer der prozentualen Zuordnung ergibt 100%. Für diese Zuordnungen wird eine Zuordnungsmatrix benötigt / erstellt. Noch einer Erweiterung ist die zusätzliche Anpassungvariable (Fuzzyfier), welche auch als Verschleifungsgrad bezeichnet wird. Diese dient für die Schärfe- / Genauigkeitseinstellung der Clusterung. Wird dieser >2 gewählt erfolgt eine sehr unscharfe Clusterung. Wird eine sehr scharfe / genauer Clusterung gewünscht, sollte der Fuzzyfier zwischen 1-2 gewählt werden.
Die Folien zum k-Means und Fuzzy k-Means können Sie hier herunterladen: **__{{files download="Vorlesung_4-2.pdf" text="Vorlesung 4.2"}}__**
Deletions:
Die Folien zum kMeans und Fuzzy kMeans können Sie hier herunterladen: **__{{files download="Vorlesung_4-2.pdf" text="Vorlesung 4.2"}}__**


Revision [90873]

Edited on 2018-08-28 13:27:44 by ChrisGerlach
Deletions:
{{files}}


Revision [90872]

Edited on 2018-08-28 13:27:21 by ChrisGerlach
Additions:
{{files}}


Revision [90791]

Edited on 2018-08-25 14:29:25 by haeuser
Additions:
Weiteres folgt
Weiteres folgt
Deletions:
folgt
folgt


Revision [90790]

Edited on 2018-08-25 14:28:57 by haeuser

No Differences

Revision [90789]

Edited on 2018-08-25 14:28:14 by haeuser
Deletions:
{{files}}


Revision [90788]

Edited on 2018-08-25 14:25:42 by haeuser
Additions:
Die Folien zur Visualisierung und kNN können Sie hier herunterladen: **__{{files download="Vorlesung_3.pdf" text="Vorlesung 3"}}__**
Die Folien zum kMeans und Fuzzy kMeans können Sie hier herunterladen: **__{{files download="Vorlesung_4-2.pdf" text="Vorlesung 4.2"}}__**
{{files}}


Revision [90787]

Edited on 2018-08-25 14:21:13 by haeuser
Additions:
====Noch mögliche Vorlesungspunkte in kommenden Semestern====
- Random Forest
- Vertiefende Beispiele Neuronale Netzte (z.B. Bild Unterscheidung Katze/Hund)
- Vertiefende Beispiele SVM


Revision [90786]

Edited on 2018-08-25 14:17:37 by haeuser
Additions:
{{image class="center" width="700" url="kMeans_Beispiel.jpg"}}
Deletions:
{{image class="left" width="700" url="kMeans_Beispiel.jpg"}}


Revision [90785]

Edited on 2018-08-25 14:17:19 by haeuser
Additions:
{{image class="left" width="700" url="kMeans_Beispiel.jpg"}}
Deletions:
{{image class="left" width="500" url="kMeans_Beispiel.jpg"}}
{{files}}


Revision [90784]

Edited on 2018-08-25 14:16:54 by haeuser
Additions:
In der Vorlesung haben wir zum einen eine Eigenimplementierung vorgenommen, aber auch das Paket sklearn an dem Beispiel der Bildfarben-Skalierung. Hierbei haben wir das Bild eingelesen und in ein mehr dimensionales Array konvertiert, anhand der X & Y Werte sowie der RGB Farbwerte. Dem Algorithmus wird das dieses X & Y Farbarray übergeben und die Anzahl der Farben, auf welche es herunter skaliert werden soll.
{{image class="left" width="500" url="kMeans_Beispiel.jpg"}}
====Fuzzy k-Means====
folgt
====Support Vektor Maschiene====
folgt
Deletions:
In der Vorlesung haben wir zum einen eine Eigenimplementierung vorgenommen, aber auch das Paket sklearn an dem Beispiel der Bildfarben-Skalierung.


Revision [90783]

Edited on 2018-08-25 14:11:32 by haeuser
Additions:
===Anwendungsbeispiele===
In der Vorlesung haben wir zum einen eine Eigenimplementierung vorgenommen, aber auch das Paket sklearn an dem Beispiel der Bildfarben-Skalierung.


Revision [90782]

Edited on 2018-08-25 14:09:22 by haeuser
Additions:
{{image class="left" width="500" url="kMeans1.jpg"}} {{image width="600" url="kMeans2.jpg"}}
Deletions:
{{image class="left" width="500" url="kMeans1.jpg"}} {{image width="500" url="kMeans2.jpg"}}


Revision [90781]

Edited on 2018-08-25 14:08:44 by haeuser
Additions:
{{image class="left" width="500" url="kMeans1.jpg"}} {{image width="500" url="kMeans2.jpg"}}
Deletions:
{{image class="left" width="700" url="kMeans1.jpg"}}


Revision [90780]

Edited on 2018-08-25 14:06:51 by haeuser

No Differences

Revision [90779]

Edited on 2018-08-25 14:06:36 by haeuser
Additions:
Der k-Means ist ein weitere Klassifizierungsalgorithmus zu Clusteranalyse. Im Gegensatz zu dem KNN, haben die Datensätze noch keine Klassenzuteilung. Dem Algorithmus erhält die Datensätze und wir geben ihm die Anzahl der Gruppen/Cluster mit, anhand desses weist er den Datensätze Gruppen zu. Für diese Zuteilung wird meistens der Lloyd-Algorithmus verwendet, welcher aus 3 Schritten besteht.
1) Initialisierung der k zufälligen Mittelwerte
2) Zuordnung der Datenpunkte zu einem Cluster
- Hierbei wird die euklidische Distanz von jedem Punkt zu jedem Cluster gebildet
- Der Punkt wird dem Cluster zugewiesen, zu welchem die Distanz am geringsten ist
3) Berechnen der Mittelpunkte des Clusters
{{image class="left" width="700" url="kMeans1.jpg"}}
- Schritt 2 & 3 werden wiederholt bis sich die Mittelpunkte nicht mehr ändern
{{files}}


Revision [90778]

Edited on 2018-08-24 16:49:49 by haeuser
Additions:
====k-Means====


Revision [90777]

Edited on 2018-08-24 16:49:18 by haeuser
Additions:
====Visualisierung====
=====Klassifizierungen=====
====k-Nearest Neighbors (KNN)====
Deletions:
====Visualisierung und erster Algorithmus====


Revision [90776]

Edited on 2018-08-24 15:47:13 by haeuser

No Differences

Revision [90775]

Edited on 2018-08-24 15:46:41 by haeuser
Additions:
{{image class="left" width="700" url="tortendia.jpg"}} {{image width="400" url="histogram.jpg"}}
Deletions:
{{image class="left" width="700" url="tortendia.jpg"}}) {{image width="400" url="histogram.jpg"}})


Revision [90774]

Edited on 2018-08-24 15:46:18 by haeuser
Additions:
{{image class="left" width="700" url="tortendia.jpg"}}) {{image width="400" url="histogram.jpg"}})
Deletions:
{{image width="500" url="tortendia.jpg"}}) {{image width="500" url="histogram.jpg"}})


Revision [90773]

Edited on 2018-08-24 15:45:39 by haeuser
Additions:
{{image width="500" url="tortendia.jpg"}}) {{image width="500" url="histogram.jpg"}})
Deletions:
{{image url="tortendia.jpg"}}) {{image url="histogram.jpg"}})
{{files}}


Revision [90772]

Edited on 2018-08-24 15:43:27 by haeuser
Additions:
{{image url="tortendia.jpg"}}) {{image url="histogram.jpg"}})
{{files}}
Deletions:
[Bild] [Bild]


Revision [90771]

Edited on 2018-08-24 15:39:48 by haeuser
Additions:
====Visualisierung und erster Algorithmus====
In der dritten Vorlesung beschäftigten wir uns mit der Visualisierung von Daten von Python, mit der Bibliothek "matplotlib". Hierbei behandelten wir diverse Diagrammtypen und der Konfiguration der Achsen, Beschriftungen und Legenden.
[Bild] [Bild]
Als ersten Algorithmus lernten wir den k-Nearest Neighbors (KNN) kennen, welchen Herr Gerlach ausführlich behandelt hat. Kurz gesagt dient dieser Algorithmus als Klassifikationsverfahren, unter der Berücksichtigung der k nächsten Nachbarn. Weitere Details finden Sie auf: **__[[http://wiki.hs-schmalkalden.de/TutoriumPythonProgrammierungMaster Tutorium Python - Master]]__**


Revision [90770]

Edited on 2018-08-24 15:29:52 by haeuser
Additions:
Der erste Termin handelte von den Grundlagen der Programmierung in Python. Anfgefangen mit der Installation der Entwicklungsumgebung, Erstellung einer Projektes und den Allgemeinen Programmiergrundlagen. Zu den Allgemeinen Programmiergrundlagen gehören die Verwendung von Variablen, Verzweigungen, Schleifen, Listen & andere Datenstrukturen, sowie Exception Handling. Im zweiten Termin setzten wir uns mit dem Multithreading und Multiprocessing auseinanden. Hierbei fanden wir herraus das Python mehrere Threads dennoch nur auf einem Prozessorkern laufen lässt. Dadurch haben wir uns verschiedene Multiprocessing Beispiele angeschaut, weil diese auf meheren Prozessorkernen aufgeteilt werden und somit die von uns gewünschte Synchronität, sowie eine schnellere Verarbeitung bereitstellt. Hierbei haben wir herrausgefunden, dass das Pool Mutlithreading die einfachste und für uns beste Methode war um an unser Ziel zu kommen.
Die Folien und Beispieldaten zu den Grundlagen sowie Multiprocessing können Sie hier herunterladen: **__{{files download="Vorlesung_1_2_mit_Aufgaben.zip" text="Vorlesung 1 & 2 mit Aufgaben"}}__**
Deletions:
Der erste Termin handelte von den Grundlagen der Programmierung in Python. Anfgefangen mit der Installation der Entwicklungsumgebung, Erstellung einer Projektes und den Allgemeinen Programmiergrundlagen. Zu den Allgemeinen Programmiergrundlagen gehören die Verwendung von Variablen, Verzweigungen, Schleifen, Listen & andere Datenstrukturen, sowie Exception Handling. Im zweiten Termin setzten wir uns mit dem Multithreading und Multiprocessing auseinanden. Hierbei fanden wir herraus das Python mehrere Threads dennoch nur auf einem Prozessorkern laufen lässt. Dadurch haben wir uns verschiedene Multiprocessing Beispiele angeschaut, weil diese auf meheren Prozessorkernen aufgeteilt werden und somit die von uns gewünschte Synchronität, sowie eine schnellere Verarbeitung bereitstellt. Hierbei haben wir herrausgefunden, dass das Pool Mutlithreading die einfachste und für uns beste Methode war um an unser Ziel zu kommen. Die Folien und Beispieldaten zu den Grundlagen sowie Multiprocessing können Sie hier herunterladen:
{{files}}


Revision [90769]

Edited on 2018-08-24 15:23:04 by haeuser
Additions:
Der erste Termin handelte von den Grundlagen der Programmierung in Python. Anfgefangen mit der Installation der Entwicklungsumgebung, Erstellung einer Projektes und den Allgemeinen Programmiergrundlagen. Zu den Allgemeinen Programmiergrundlagen gehören die Verwendung von Variablen, Verzweigungen, Schleifen, Listen & andere Datenstrukturen, sowie Exception Handling. Im zweiten Termin setzten wir uns mit dem Multithreading und Multiprocessing auseinanden. Hierbei fanden wir herraus das Python mehrere Threads dennoch nur auf einem Prozessorkern laufen lässt. Dadurch haben wir uns verschiedene Multiprocessing Beispiele angeschaut, weil diese auf meheren Prozessorkernen aufgeteilt werden und somit die von uns gewünschte Synchronität, sowie eine schnellere Verarbeitung bereitstellt. Hierbei haben wir herrausgefunden, dass das Pool Mutlithreading die einfachste und für uns beste Methode war um an unser Ziel zu kommen. Die Folien und Beispieldaten zu den Grundlagen sowie Multiprocessing können Sie hier herunterladen:
{{files}}
Deletions:
Die ersten Termine handelten von den Grundlagen der Programmierung in Python. Anfgefangen mit der Installation der Entwicklungsumgebung, Erstellung einer Projektes und den Allgemeinen Programmiergrundlagen. Zu den Allgemeinen Programmiergrundlagen gehören die Verwendung von Variablen, Verzweigungen, Schleifen, Listen & andere Datenstrukturen, sowie Exception Handling.


Revision [90605]

Edited on 2018-08-20 17:58:13 by haeuser
Additions:
====Die Vorbereitung====
Die ersten Termine handelten von den Grundlagen der Programmierung in Python. Anfgefangen mit der Installation der Entwicklungsumgebung, Erstellung einer Projektes und den Allgemeinen Programmiergrundlagen. Zu den Allgemeinen Programmiergrundlagen gehören die Verwendung von Variablen, Verzweigungen, Schleifen, Listen & andere Datenstrukturen, sowie Exception Handling.


Revision [90419]

The oldest known version of this page was created on 2018-08-18 13:31:40 by haeuser
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki