\chapter{Wstęp} \section{Problematyka} Podczas tworzenia systemów uczenia maszynowego, kluczowym 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 retrenowania 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ównanana 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. Dla zwalidowania 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. Rodział 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.