|
|
— |
pl:dydaktyka:ml:mlrep3 [2019/06/27 15:50] (aktualna) |
| |
| ====== Peter Flach: Machine Learning, repetytorium 3 ====== |
| |
| ===== -#7 Modele liniowe ===== |
| //Linear models// |
| |
| Cechą charakterystyczną tych modeli jest operowanie pojęciami dotyczącymi geometrii przestrzeni, np. w układzie współrzędnych kartezjańskich. |
| Modele liniowe wykorzystują pojęcia linii, lub (hiper) płaszczyzny do ustrukturalizowania przestrzeni instancji. |
| |
| Zaletą modeli liniowych jest ich względna prostota, są to modele: |
| - parametryczne - mają określoną strukturę, która jest dopasowywana w procesie uczenia poprzez parametry |
| - stabilne - niewielkie zmiany danych uczących wywołują relatywnie niewielkie zmiany w otrzymywanych parametrach modelu |
| - mniej podatne na przeuczenie - głównie ze względu na niewielką liczbę parametrów; za to czasami mogą występować sub optymalne kombinacje parametrów. |
| |
| ==== Metoda najmniejszych kwadratów ==== |
| //The least-squares method// |
| |
| ''S180'' |
| Model jednowymiarowej regresji liniowe, i jego interpretacja geometryczna na ''S181''. |
| Slajd ''S182'' pokazuje wpływ (relatywnie niewielki-stabilność) na otrzymane parametry. |
| |
| ''S183-5'' |
| Opis przypadku wielowymiarowego wymaga notacji macierzowej. |
| |
| ''S186'' |
| Jeżeli cechy są nieskorelowane, przypadek wielowymiarowy może zdekomponowany na N przypadków jednowymiarowych. |
| Tymczasem silna korelacja może prowadzić do niestabilności modelu. |
| Aby ją ograniczyć stosuje się //regularyzację//. |
| |
| ''S187-191'' |
| Regresję możemy stosować nie tylko do aproksymacji funkcji, ale przede wszystkim do konstruowania klasyfikatora binarnego - separującego przestrzeń na 2 części. |
| Staramy się minimalizować liczbę źle sklasyfikowanych przypadków pozytywnych i negatywnych. |
| Na ''S190'' pokazana jest interpretacja geometryczna, w tym przypadku 3 przykłady są niepoprawnie sklasyfikowane - na górnej osi 1 fn (po lewej) i na dolnej 2 fp (po prawej). |
| |
| ==== Perceptron jako klasyfikator liniowy ==== |
| //The perceptron: a heuristic learning algorithm for linear classifiers// |
| |
| ''S192'' |
| Perceptron reprezentowany jako prosta liniowa sieć neuronowa jest przykładem klasyfikatora binarnego dającego dobre rezultaty. |
| W procesie uczenia uaktualniamy wektory wag, ze współczynnikiem nazywanym prędkością uczenia. |
| Algorytm jest na ''S193'' - wagi są powiązane z cechami obiektów. |
| |
| ''S194'' |
| Prędkość uczenia może polepszać zbieżność tego procesu, jednak tylko jeśli nie jest za duża. |
| |
| ''S195'' |
| W przypadku dualnym, wagi są powiązane z instancjami obiektów (nie cechami). |
| A sam algorytm wygląda analogicznie ''S196''. |
| |
| ''S197'' |
| Porównuje omówione klasyfikatory liniowe. |
| |
| ==== Metody z wektorem wspierającym ==== |
| //Support vector machines// |
| |
| ''S200'' |
| ilustruje koncepcję [[wp>Support Vector Machine]]. |
| |
| ''S201-7'' |
| pokazują metodę maksymalizacji marginesów pomiędzy prostą, a skrajnymi/najbliższymi przykładami, z użyciem |
| [[http://pl.wikipedia.org/wiki/Mno%C5%BCniki_Lagrange%E2%80%99a|mnożników Lagrange'a]] pozwalających ro rozwiązanie problemu dualnego. |
| W tej sytuacji w celu znalezienia rozwiązania analizujemy iloczyn skalarny współczynników w [[http://pl.wikipedia.org/wiki/Macierz_Grama|macierzy Grama]]. |
| |
| ''S209-13'' |
| Ilustrują metodę zwiększenia tolerancji co do ustalenia marginesów za pomocą specjalnych zmiennych "luzujących" (//slack//), dzięĸi temu uzyskujemy zmienny margines błędu. |
| |
| Przydatna dokumentacja do SVM: |
| * [[http://www.support-vector-machines.org/|Support Vector Machines]] |
| * [[http://www.tristanfletcher.co.uk/SVM%20Explained.pdf|Support Vector Machines Explained]] |
| * [[http://research.microsoft.com/en-us/um/people/cburges/papers/svmtutorial.pdf|A Tutorial on Support Vector Machines for Pattern Recognition]] |
| * [[http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf|A Practical Guide to Support Vector Classifcation]] |
| |
| Wybrane narzędzia do SVM: |
| * [[http://www.support-vector-machines.org/SVM_soft.html|lista narzędzi]] |
| * [[http://www.csie.ntu.edu.tw/~cjlin/libsvm/|libsvm]] |
| |
| |
| |
| |
| ==== Klasyfikatory liniowe a prawdopodobieństwo ==== |
| //Obtaining probabilities from linear classifiers// |
| |
| ''S215-8'' |
| poprzez rzutowanie przestrzeni przykładów do przestrzeni odpowiedniej funkcji gęstości prawdopodobieństwa, możemy uzyskać intepretację wyniku działania klasyfikatora liniowego w postaci prawdopodobieństwa, jest to tzw. kalibracja. |
| |
| |
| ==== Klasyfikacja nieliniowa - kernels ==== |
| //Going beyond linearity with kernel methods// |
| |
| ''S220-3'' |
| Wprowadzenie specjalnego przekształcenia ([[wp>Kernel_trick]]) pozwala na klasyfikację danych, które nie są liniowo separowalne w oryginalnej przestrzeni. |
| Przykład wizualizacji [[http://www.youtube.com/watch?v=3liCbRZPrZA|Kernel visualization]]. |
| Wybrane kernele to np. [[wp>Polynomial_kernel]], [[wp>Radial_basis_function_kernel]]. |
| |
| |
| ===== -#8 Modele odległościowe ===== |
| //Distance-based models// |
| |
| ''S225-8'' |
| uogólniona miara Minkowskiego pozwala na odwzorowanie rożnych metryk (def. na ''S227''). |
| |
| ==== Definicje sąsiedztwa ==== |
| //Neighbours and exemplars// |
| |
| ''S230-3'' |
| W zależności od doboru metryki można różnie rozumieć sąsiedztwo. |
| |
| ==== Metoda najbliższego sąsiada ==== |
| //Nearest-neighbour classification// |
| |
| ''S235-6'' |
| Bazując na wcześniej zdefiniowanej tassalacji Voronoia, |
| buduje się [[wp>K-Nearest Neighbor Algorithm]], |
| w którym przyjmujemy //a priori// liczbę k sąsiadów branych pod uwagę do określenia granic klas. |
| |
| ==== Klastryzacja odległościowa ==== |
| //Distance-based clustering// |
| |
| ''S238-246'' |
| Algorytm K-means pozwala na klastryzację (grupowanie) danych. |
| Jest to klasyczny przykład uczenia nienadzorowanego. |
| |
| ''S249-252'' |
| K-menas jest wrażliwy na charakter danych wejściowych, mogą one wymagać preprocesingu, np. skalowania. |
| Wykresy //silhouettes// pozwalają na porównywanie jakości grupowań. |
| |
| Przykład klasteryzacji przy pomocy narzędzia [[http://www.carrot2.org|Carrot 2]]. |
| |
| ==== Klastryzacja hierarchiczna ==== |
| //Hierarchical clustering// |
| |
| ''S254-7'' |
| Dendogramy są metodą wizualizacji klastryzaji hierarchicznej. |
| |
| |