To jest stara wersja strony!


Laboratorium 2 - Regresja Liniowa

Instrukcja w języku angielskim.

Ćwiczenia do pobrania: Regresja Liniowa

Lista i opis plików

Pliki oznaczone znakiem wykrzyknika (:!:) należy wypełnić własnym kodem

  • ex1.m - Skrypt Octave, który pomaga w przejściu pierwszej części laboratorium
  • ex1_multi.m - Skrypt Octave, który pomaga w przejściu pierwszej części laboratorium
  • :!: warmUpExercise.m - Ćwiczenie rozgrzewkowe
  • :!: plotData.m - Funkcja rysująca wykres
  • :!: computeCost.m - Funkcja kosztu dla regresji liniowej
  • :!: gradientDescent.m - Funkcja uruchamiająca algorytm Gradient Descent
  • :!: computeCostMulti.m - Funkcja kosztu dla regresji liniowej dla przypadku wielowymiarowego
  • :!: gradientDescentMulti.m - Funkcja uruchamiająca algorytm Gradient Descent dla przypadku wielowymiarowego
  • :!: featureNormalize.m - Funkcja normalizująca dane wejściowe
  • :!: normalEqn.m - Funkcja dla regresji liniowej wyznaczająca parametry ze wzoru

Warm Up Exercise

Otwórz plik warmUpExercise.m w swoim ulubionym edytorze tekstu i w miejscu oznaczonym komentarzami wpisz kod, który wygeneruje macierz jednostkową 5×5 i zwróci ją jako wartość zwracaną funkcji.

$$M = \begin{bmatrix}
       1 & 0 & 0 & 0 & 0  \\          
       0 & 1 & 0 & 0 & 0 \\
       0 & 0 & 1 & 0 & 0 \\
       0 & 0 & 0 & 1 & 0 \\
       0 & 0 & 0 & 0 & 1 \\
     \end{bmatrix}$$

Uwaga W Octave istnieje funkcja generująca macierz jednostkową. Nazywa się eye. Aby dowiedzieć się więcej na temat tej funkcji wpisz w konsoli Octave

 help eye

Kiedy poprawnie uzupełnisz kod funkcji zapisz plik i uruchom skrypt ex1. Testuje on działanie poszczególnych zadań i prezentuje wykorzystanie ich w praktyce.

Jeśli coś nie działa, uruchom skrypt check. Przeprowadza on test działania poszczególnych funkcji i pokazuje poprawne wyniki.

Regresja Liniowa dla jednej zmiennej

W tej części zajmiemy się przypadkiem regresji liniowej dla przypadku dwuwymiarowego. Załóżmy, że jesteśmy CEO sieci restauracji i planujemy otwarcie kilku kolejnych lokali.

Na podstawie danych dotyczących aktualnie otwartych restauracji i zysku jaki z nich otrzymujemy chcemy wybrać miasta w których najbardziej opłaci się otwarcie inwestycji. Plik ex1data1.txt zawiera te dane. Pierwsza kolumna zawiera populację danego miasta, druga zysk w tym mieście. Ujemne wartości oznaczają stratę.

Plot Data

Uzupełnij plik plotData.m tak, aby rysowała wykres w taki sposób jak na rysunku poniżej. Pamiętaj o podpisaniu osi.

Aby dowiedzieć się więcej o funkcji plot, wpisz w konsoli Octave

 help plot

Wykres danych uczących

Sprawdź działanie funkcji za pomocą skryptu ex1.

Compute Cost

W pierwszej kolejności zaimplementuj funkcję kosztu dla regresji liniowej (plik computeCost.m).

Funkcja kosztu dana jest wzorem:

$$J(\theta} = \frac{1}{2m}\sum\limits_{i=1}^m(H_{\theta}(x^{(i)}})-y^{(i)}})^2$$

Gdzie

$$h_{\theta}(x) = \theta^Tx = \theta_0+\theta_1x_1 $$

Uwaga Pomyśl jak zapisać kod tak, aby nie używać pętli! Dzięki temu automatycznie będzie on pasował do drugiej części zadania (Regresja liniowa z wieloma zmiennymi)

Gradient Descent

Regresja Liniowa dla wielu zmiennych

Compute Cost Multi

Gradient Descent Multi

Feature Normalization

Normal Equation

pl/dydaktyka/ml/lab4.1360922783.txt.gz · ostatnio zmienione: 2019/06/27 15:54 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0