Learn AI with Python · Lekcja

Systemy hybrydowe i metryki oceny

Łączenie metod kolaboratywnych i opartych na treści, RMSE, MAE, Precision@K, Recall@K.

Lekcja 4 z 413 kroki

Systemy hybrydowe i metryki oceny to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Dlaczego systemy hybrydowe?

Filtrowanie kolaboracyjne ma trudności z problemem zimnego startu, a filtrowanie oparte na treści prowadzi do nadmiernej specjalizacji. System hybrydowy łączy obie metody, dzięki czemu każda z nich kompensuje słabości drugiej. Zwykle daje to lepsze wyniki niż stosowanie dowolnej z nich osobno.

Kombinacja ważona

Najprostszy system hybrydowy łączy wyniki za pomocą wag, których suma wynosi 1. Na przykład 0.6 * CF + 0.4 * CB kładzie większy nacisk na sygnały kolaboracyjne, ale zachowuje treść jako rozwiązanie awaryjne i sposób na zwiększenie różnorodności.

final_score = 0.6 * cf_score + 0.4 * cb_score

Strojenie wag

Podział 0.6 / 0.4 jest jedynie punktem wyjścia. Wagi należy dostroić na zbiorze walidacyjnym: gdy użytkownicy mają bogatą historię, warto zwiększyć wagę CF, a w przypadku nowych elementów — wagę CB. Można nawet zmieniać wagi zależnie od użytkownika.

Inne strategie hybrydowe

  • Ważona: łączy wyniki (jak pokazano powyżej).
  • Przełączana: wybiera CF lub CB w zależności od dostępności danych.
  • Łączenie cech: przekazuje oba sygnały do jednego modelu.

Łączenie ważone jest najczęściej stosowaną i najłatwiejszą do interpretacji metodą.

Ocena: dwa rodzaje pytań

Ocena obejmuje dwa pytania:

  • Predykcja ocen: jak bliskie rzeczywistym ocenom są przewidywane oceny? Należy użyć RMSE/MAE.
  • Jakość rankingu: czy właściwe elementy znajdują się blisko początku listy? Należy użyć Precision@K, Recall@K, NDCG@K.

RMSE w predykcji ocen

RMSE mierzy średni kwadrat błędu między przewidywanymi a rzeczywistymi ocenami, a następnie wyciąga z niego pierwiastek kwadratowy. Silnie karze duże odchylenia i jest standardową metryką dokładności przewidywania ocen.

import numpy as np

def rmse(pred, actual):
    return np.sqrt(np.mean((np.array(pred) - np.array(actual)) ** 2))

Precision@K

Precision@K = (istotne elementy w pierwszych K) / K. Odpowiada na pytanie: z K poleconych elementów, jaki ułamek użytkownik faktycznie polubił? Wyższa wartość oznacza mniej zmarnowanych miejsc.

def precision_at_k(recommended, relevant, k):
    top_k = recommended[:k]
    hits = len(set(top_k) & set(relevant))
    return hits / k

Recall@K

Recall@K = (istotne elementy w pierwszych K) / (łączna liczba istotnych elementów). Odpowiada na pytanie: spośród wszystkich elementów, które użytkownik polubiłby, jaki ułamek udało się zaprezentować w pierwszych K?

def recall_at_k(recommended, relevant, k):
    top_k = recommended[:k]
    hits = len(set(top_k) & set(relevant))
    return hits / len(relevant) if relevant else 0.0

Kompromis między Precision a Recall

Precyzja kładzie nacisk na poprawność prezentowanych elementów, a recall na uwzględnienie wszystkich istotnych elementów. Systemy rekomendacji zwykle koncentrują się na Precision@K, ponieważ użytkownicy widzą tylko krótką listę, więc najważniejsze są elementy na jej początku.

NDCG@K do oceny jakości rankingu

NDCG@K (Normalized Discounted Cumulative Gain) premiuje umieszczanie bardzo istotnych elementów blisko początku listy. Istotny element na pozycji 1 ma większe znaczenie niż ten sam element na pozycji 10, ponieważ zyski są pomniejszane zależnie od pozycji.

Jak działa NDCG

DCG sumuje istotność każdego elementu podzieloną przez logarytm jego pozycji. NDCG dzieli DCG przez idealne DCG (dla doskonałej kolejności), uzyskując wynik od 0 do 1, gdzie 1 oznacza listę uporządkowaną idealnie.

import numpy as np

def dcg(rels):
    return sum(r / np.log2(i + 2) for i, r in enumerate(rels))

def ndcg_at_k(rels, k):
    ideal = sorted(rels, reverse=True)
    return dcg(rels[:k]) / dcg(ideal[:k]) if dcg(ideal[:k]) else 0.0

Szybki test

Sprawdzenie wiedzy dotyczącej metryk oceny.

Podsumowanie

Zbudowali Państwo hybrydowy system rekomendacji (np. 0.6 * CF + 0.4 * CB) i poznali jego zestaw narzędzi do oceny: RMSE do pomiaru dokładności przewidywania ocen, Precision@K i Recall@K do oceny wyszukiwania oraz NDCG@K do oceny jakości rankingu. To kończy kurs Systemy rekomendacji. Następny kurs: Podstawy MLOps.

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
53
Lekcje
225

Często zadawane pytania

Czy lekcja „Systemy hybrydowe i metryki oceny” jest bezpłatna?

Tak — pełny tekst „Systemy hybrydowe i metryki oceny” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „Systemy hybrydowe i metryki oceny”?

Łączenie metod kolaboratywnych i opartych na treści, RMSE, MAE, Precision@K, Recall@K. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Systemy hybrydowe i metryki oceny”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Filtrowanie kolaboratywne: oparte na użytkownikach i elementach
  2. Faktoryzacja macierzy za pomocą SVD
  3. Filtrowanie oparte na treści
  4. Systemy hybrydowe i metryki oceny
← Powrót do Learn AI with Python