kurse:efcomputergrafik:kw09

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kurse:efcomputergrafik:kw09 [2020/02/25 12:56]
Simon Knaus
kurse:efcomputergrafik:kw09 [2020/03/03 15:18] (current)
Simon Knaus
Line 68: Line 68:
 === Einstiegsfragen ===  === Einstiegsfragen === 
   - Welches sind Klassifizierungsaufgaben bei Clearview? Was ist der Feature Space? Was ist $|\mathcal{Y}|$?   - Welches sind Klassifizierungsaufgaben bei Clearview? Was ist der Feature Space? Was ist $|\mathcal{Y}|$?
-  - Welches sind Klassifzierungsaufgaben beim Slaugherbots? Wie viele Elemente hat die Menge $\mathcal Y$ +  - Welches sind Klassifzierungsaufgaben beim Slaugherbots? Wie viele Elemente hat die Menge $\mathcal Y$
  
 === Regression === === Regression ===
Line 74: Line 74:
  
 == Univariate Lineare Regression == == Univariate Lineare Regression ==
-  - Setze ein Modell $y_i=f(x_i)=\beta x_i+\epsilon_i$ voraus, $y_i$ sind dabei die Preise und $x_i$ die gefahrenen Kilometer. Bestimme $\beta$ so, dass $\sum_{i=1}^{n}(y_i\beta x_i)^2=\text{RSS}(f)$ minimal ist, das heisst, leite eine Formel für $\beta$ her.  +  - Setze ein Modell $y_i=f(x_i)=\beta x_i+\epsilon_i$ voraus, $y_i$ sind dabei die gefahrenen Kilometer und $x_i$ das Alter in Tagen. Bestimme $\beta$ so, dass $\sum_{i=1}^{n}(y_i-\beta x_i)^2=\text{RSS}(f)$ minimal ist, das heisst, leite eine Formel für $\beta$ her.  
   - Berechne $\beta$ in Python ohne Hilfsmittel, das heisst, lies die Daten ein und bestimme $\beta$.    - Berechne $\beta$ in Python ohne Hilfsmittel, das heisst, lies die Daten ein und bestimme $\beta$. 
-  - Verwende dann [[https://scikit-learn.org/stable/index.html|SciKit]] um ebenfalls $\beta$ zu bestimme+  - Verwende dann [[https://scikit-learn.org/stable/index.html|SciKit]] um ebenfalls $\beta$ zu bestimmen. 
-  - Leite die Formel für $\alpha$ und $\beta$ im Modell $f(y_i)=\alpha+\beta x_i$ her. +    - Installiere zuerst scikit. Frage Ks oder eine/n der erfahrenen Programmierer/innen. 
 +    - Arbeite die Lösung unten Schritt für Schritt durch, falls du noch nicht klar kommst
 +  - Leite die Formel für $\alpha$ und $\beta$ im Modell $f(y_i)=\alpha+\beta x_i$ her: Das Prinzip ist dasselbe: Wir haben neu eine Funktion $f$, welche von $\alpha$ und $\beta$ abhängt, das heisst, um $\alpha$ und $\beta$ zu bestimmen, kann $f$ nach $\alpha$ und nach $\beta$ abgeleitet werden, beide gleich Null gesetzt werden und das Gleichungssystem aufgelöst werden.
   - Berechne $\alpha$ und $\beta$ wiederum <<von Hand>> und dann in SciKit.   - Berechne $\alpha$ und $\beta$ wiederum <<von Hand>> und dann in SciKit.
 +  - Du hast nun ein Modell: $y=f(x)=\alpha+\beta x$. Berechne Forecasts auf {{kurse:efcomputergrafik:cardata_test_new.zip|diesem Datensatz}}. Speichere deine Forecasts im Wiki [[kurse:efcomputergrafik:forecastcompetition|Forecasts]] 
  
 <hidden Lösung Afg.1 > <hidden Lösung Afg.1 >
  
-Der Ausdruck $\sum_{i=1}^n (y_i\beta x_i)^2$ ist eigentlich ein quadratisches Polynom in $\beta$. Die Werte $x_i$ und $y_i$ sind Zahlen und bekannt. Folglich kann man die Summe als Funktion von $\beta$ aufassen und ableiten. Leitet man dann also $f(\beta)=\sum_{i=1}^n (y_i-\beta x_i)^2$ ab, erhält man \[f'(\beta)=\sum _{i=1}^n \left(2 \beta  x_i^2-2 x_i y_i\right)=2\beta\sum_{i=1}^nx_i^2-2\sum_{i=1}^n x_iy_i.\] Die Extremalstellen dieser Funktion sind nun bei Nullstellen der Ableitung, das heisst, löst man $f'(\beta)=0$ nach $\beta$ auf, erhält man+Der Ausdruck $\sum_{i=1}^n (y_i-\beta x_i)^2$ ist eigentlich ein quadratisches Polynom in $\beta$. Die Werte $x_i$ und $y_i$ sind Zahlen und bekannt. Folglich kann man die Summe als Funktion von $\beta$ aufassen und ableiten. Leitet man dann also $f(\beta)=\sum_{i=1}^n (y_i-\beta x_i)^2$ ab, erhält man \[f'(\beta)=\sum _{i=1}^n \left(2 \beta  x_i^2-2 x_i y_i\right)=2\beta\sum_{i=1}^nx_i^2-2\sum_{i=1}^n x_iy_i.\] Die Extremalstellen dieser Funktion sind nun bei Nullstellen der Ableitung, das heisst, löst man $f'(\beta)=0$ nach $\beta$ auf, erhält man
 \[ \[
 \beta = \frac{\sum_{i=1}^n x_iy_i}{\sum_{i=1}^nx_i^2}. \beta = \frac{\sum_{i=1}^n x_iy_i}{\sum_{i=1}^nx_i^2}.
Line 89: Line 92:
 </hidden> </hidden>
  
-<hidden Stub Afg. 2 file=stubafg02.py+<hidden Stub Afg. 2> 
-<code python>+<code python |  stubafg02.py>
 import csv import csv
 path = "C:/pfad/zur/datei" path = "C:/pfad/zur/datei"
Line 161: Line 164:
 Genau wie bei der univariaten Regression, kann das Problem als Polynom in $\alpha$ und $\beta$ aufgefasst werden. Leite wir $f$ nach $\alpha$ und $\beta$ ab und setzen beides gleich $0$ und lösen nach $\alpha$ und $\beta$ auf, erhalten wir: Genau wie bei der univariaten Regression, kann das Problem als Polynom in $\alpha$ und $\beta$ aufgefasst werden. Leite wir $f$ nach $\alpha$ und $\beta$ ab und setzen beides gleich $0$ und lösen nach $\alpha$ und $\beta$ auf, erhalten wir:
 \[ \[
-\beta= \frac{\sum(x_i-\bar{x})(y_i-\bar{y})}{\sum(x_i-\bar{x})^2} \text{ und } \alpha=\bar{y}-\widehat{\beta}_1\bar{x}+\beta= \frac{\sum(x_i-\bar{x})(y_i-\bar{y})}{\sum(x_i-\bar{x})^2} \text{ und } \alpha=\bar{y}-{\beta}\bar{x}
 \] \]
 wobei $\bar{y}=\frac{1}{n}\sum_{i=1}^n y_i$ und $\bar{x}=\frac{1}{n}\sum_{i=1}^n x_i$ ist. wobei $\bar{y}=\frac{1}{n}\sum_{i=1}^n y_i$ und $\bar{x}=\frac{1}{n}\sum_{i=1}^n x_i$ ist.
Line 176: Line 179:
 Wenn also z.B. $p=2$ ist suchen wir also eine Ebene, welche die quadrierten Abstände der Datenpunkte von der Ebene minimiert. Wenn also z.B. $p=2$ ist suchen wir also eine Ebene, welche die quadrierten Abstände der Datenpunkte von der Ebene minimiert.
  
 +
 +==== Tafeln ====
 +{{ :kurse:efcomputergrafik:efcg_1.jpg?200 |}}
 +
 +==== Prüfung / OOP ==== 
 +<code python | prA3.py>
 +
 +class Foo:
 +    def __init__(self,a):
 +        self.n = a
 +    def mehr(self):
 +        self.n+=1
 +    def show(self):
 +        print(self.n)
 +        
 +        
 +a=Foo(3)
 +b=Foo(5)
 +a.mehr()
 +b.show()
 +print(b.n)
 +b.mehr()
 +b.show()
 +print(b.n)
 +a.show()
 +print(a.n)
 +
 +#a.n ist analog zu reg.coef_ oder reg.intercept_
 +</code>
  • kurse/efcomputergrafik/kw09.1582631776.txt.gz
  • Last modified: 2020/02/25 12:56
  • by Simon Knaus