Klasyfikacja

Zadanie przewidywania kategorii wyjściowej, np. czy e-mail to spam, czy nie. Może być binarna lub wieloklasowa.

Klasyfikacja (ang. classification) to zadanie uczenia maszynowego, w którym model przewiduje etykietę z ustalonego, skończonego zbioru kategorii. Na wejściu dostajesz obserwację (e-mail, zdjęcie, wiersz z bazy), a na wyjściu jedną z klas: spam albo nie-spam, kot/pies/chomik. To odróżnia klasyfikację od regresji, gdzie przewidujesz liczbę ciągłą (np. cenę mieszkania).

Klasyfikację dzielimy zwykle na binarną (dwie klasy, np. transakcja jest oszustwem albo nie), wieloklasową (jedna etykieta z wielu, np. rozpoznanie cyfry 0–9) i wieloetykietową (multi-label — jeden obiekt może mieć kilka etykiet naraz, np. artykuł oznaczony jako „IT” i „prawo”). Nie myl wieloklasowej z wieloetykietową — to częsta pułapka na początku.

Jak to działa w praktyce

Model uczy się na danych oznaczonych (supervised learning): dajesz mu przykłady z poprawnymi odpowiedziami, a on wyłapuje wzorce. W środku zwykle nie zwraca twardej etykiety, tylko prawdopodobieństwo dla każdej klasy (np. 0.92 że spam). Dopiero próg decyzyjny (domyślnie 0.5) zamienia to na konkretną odpowiedź. Ten próg możesz przesuwać — jeśli wolisz przepuścić trochę spamu niż wrzucić ważny e-mail do kosza, podnosisz go.

Konkretny przykład: w Pythonie z biblioteką scikit-learn klasyfikator spamu trenujesz dosłownie kilkoma linijkami. Tekst zamieniasz na wektory (TfidfVectorizer), a potem model = LogisticRegression() i model.fit(X_train, y_train). Predykcję robisz przez model.predict(X_test), a same prawdopodobieństwa przez predict_proba. Popularne algorytmy do klasyfikacji to też RandomForestClassifier, drzewa decyzyjne, SVM i sieci neuronowe.

Częste błędy i mity

Najgrubszy błąd to ocenianie modelu samą dokładnością (accuracy). Jeśli 99% maili to nie-spam, model, który zawsze mówi „nie-spam”, ma 99% accuracy i jest kompletnie bezużyteczny. Przy niezbalansowanych klasach patrz na precision, recall, F1-score i macierz pomyłek (confusion matrix), nie na jeden ładny procent.

Druga pułapka: data leakage i testowanie na danych treningowych. Model, który „widział” odpowiedzi, zawsze będzie genialny na papierze i tragiczny w produkcji. Zawsze trzymaj osobny zbiór testowy.

Pojęcia powiązane: regresja, uczenie nadzorowane (supervised learning), klastrowanie (clustering — to już bez etykiet), regresja logistyczna, funkcja softmax, overfitting, macierz pomyłek, precision i recall.