\chapter{Wstęp}

\section{Problematyka}
Podczas tworzenia systemów uczenia maszynowego, kluczowe jest dobranie odpowiednich algorytmów nauki, takich, które najlepiej nadają się do konkretnych zadań, a~także nie spowodują przeciążania zasobów. Z~tego powodu, porównanie skuteczności algorytmów jest częstym i~szeroko opisywanym tematem w pracach i~tekstach badawczych.

W~tradycyjnych systemach uczenia maszynowego najczęściej trzeba dokonać wyboru, w~jaki sposób model będzie trenowany. Wybór pomiędzy trybem wsadowym (ang. \emph{batch}) a~strumieniowym (ang. \emph{streaming}) może być kluczowy dla optymalnego działania modelu, a~tym samym osiągania najlepszych wyników. O~ile algorytmy działające w tym samym trybie są często porównywane między sobą, brak jest wystarczających i~prawidłowych badań porównujących między sobą algorytmy wsadowe i~strumieniowe.

Algorytmy strumieniowe często oceniane są jako skuteczniejsze, gdy w~danych występuje duży \emph{concept drift}. Nie wymagają one trenowania modelu od nowa, czym oszczędzają czas i~zasoby. Problemem takich porównań jest trudność wybrania odpowiedniego sprzętu do testów. Zbyt silne i~pojemne zasoby będą faworyzowały algorytmy wsadowe (wytrenowanie modelu od nowa potrwa bardzo krótko), natomiast w przeciwnym wypadku to algorytmy strumieniowe otrzymają nieuczciwą przewagę (wyuczenie wsadowego modelu będzie trwało zbyt długo). Z tego powodu testy takie można przeprowadzać tylko dla konkretnych sytuacji.

W tej pracy skupiono się na porównaniu strumieniowych i wsadowych algorytmów uczenia maszynowego, niezależnie od \emph{concept driftu} (brak porównania potrzeby ponownej nauki modelów wsadowych z ciągłym działaniem strumieniowych). Algorytmy zostały poddane testom na różnych typach danych (syntetycznych, tradycyjnych i NLP). Następnie za pomocą ustalonych metryk została porównana ich szybkość i~skuteczność nauki.

\section{Cel i zakres pracy}

Celem niniejszej pracy jest porównanie strumieniowych i~wsadowych algorytmów uczenia maszynowego. Porównane zostało parę najczęściej używanych klasyfikatorów. Do walidacji wyników użyte zostały różne rodzaje danych - zarówno rzeczywiste jak i syntetyczne.

Rozdział drugi zawiera podstawy teoretyczne niezbędne do zrozumienia porównywanych algorytmów. Zostały w~nim opisane różnice pomiędzy różnymi typami algorytmów, a~także przedstawione algorytmy użyte później w~eksperymentach.

Rozdział trzeci dotyczy dokonanych eksperymentów i porównań przez inne osoby i~grupy badawcze. Zostały tutaj przedstawione najistotniejsze prace, a także pokazane zostały błędy w rozumowaniu podczas przeprowadzania eksperymentów.

Rozdział czwarty zawiera opis przeprowadzanego eksperymentu w ramach tej pracy. Przedstawia on zastosowane technologie, implementację systemu porównującego oraz przebieg eksperymentów. Na końcu dokonano przedstawienia wyników w~formie wykresów oraz przedstawiono wnioski z~nich płynące.

Rozdział piąty jest podsumowaniem, pozwalającym na przedstawienie kluczowych rezultatów płynących z~porównania algorytmów.

