\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 (batch) a strumieniowym (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 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 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.