SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
teaching:projectgroups:ast:2021:motivation [2021/03/17 19:16]
Günter Kniesel
teaching:projectgroups:ast:2021:motivation [2021/03/17 19:18] (current)
Günter Kniesel
Line 62: Line 62:
 {{:​teaching:​projectgroups:​ast:​2021:​svc_parameter_dependencies_solution.png?​nolink&​430|}} {{:​teaching:​projectgroups:​ast:​2021:​svc_parameter_dependencies_solution.png?​nolink&​430|}}
  
-Dies ist im Wesentlichen eine Erweiterung der Enum-Idee ​das bereits unser vorheriges Problem gelöst hat. Dort für lineare Kernel ein einziger Wert, ''​Kernel.linear'',​ ausreichend. ​Das ist für polynomielle Kernel nicht mehr möglich, da ein Polynom beliebige Grade haben kann. Um beides zu modellieren müssen die möglichen Werte eine Klassenhierarchie bilden, die einerseits Singletons umfasst, wie etwa ''​Kernel.linear'',​ und andererseits Klassen mit öffentlichem Konstruktor,​ z.B. ''​Kernel.poly(degree)''​. Durch den Konstruktor-Parameter lassen sich die unendlichen Möglichkeiten für den Grad des Polynoms modellieren. Gleichzeitig wird klar, dass der Grad nur für Kernel der Art poly benötigt wird (der Paremeter ''​degree''​ nur bei einem polynomiellen Kernel gesetzt werden kann). Indem wir diesem Parameter keinen Standardwert geben, erzwingen wir außerdem, dass er bei einem polynomiellen Kernel auch immer gesetzt werden //​muss//​. ​+Dies ist im Wesentlichen eine Erweiterung der Enum-Idee ​die bereits unser vorheriges Problem gelöst hat. Dort ist für lineare Kernel ein einziger Wert, ''​Kernel.linear'',​ ausreichend. ​Für polynomielle Kernel ​ist dies nicht möglich, da ein Polynom beliebige Grade haben kann. Um beides zu modellieren müssen die möglichen Werte eine Klassenhierarchie bilden, die einerseits Singletons umfasst, wie etwa ''​Kernel.linear'',​ und andererseits Klassen mit öffentlichem Konstruktor,​ z.B. ''​Kernel.poly(degree)''​. Durch den Konstruktor-Parameter ​''​degree'' ​lassen sich die unendlichen Möglichkeiten für den Grad des Polynoms modellieren. Gleichzeitig wird klar, dass der Grad nur für Kernel der Art ''​poly'' ​benötigt wird (da der Paremeter ''​degree''​ nur bei einem polynomiellen Kernel gesetzt werden kann). Indem wir diesem Parameter keinen Standardwert geben, erzwingen wir außerdem, dass er bei einem polynomiellen Kernel auch immer gesetzt werden //​muss//​. ​
  
 Als positiven Nebeneffekt reduzieren wir die Zahl der Parameter des SVC-Modells und tragen so zur Lösung des ersten beschriebenen Problems bei. Als positiven Nebeneffekt reduzieren wir die Zahl der Parameter des SVC-Modells und tragen so zur Lösung des ersten beschriebenen Problems bei.
  
teaching/projectgroups/ast/2021/motivation.txt · Last modified: 2021/03/17 19:18 by Günter Kniesel

SEWiki, © 2021