Lær AI med Python · Lektion

Hybridsystemer og evalueringsmetrikker

Kombination af collaborative og indholdsbaseret filtrering, RMSE, MAE, Precision@K, Recall@K.

Lektion 4 af 413 trin

Hybridsystemer og evalueringsmetrikker er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvorfor hybridsystemer

Kollaborativ filtrering har problemer med koldstart, mens indholdsbaseret filtrering bliver overspecialiseret. Et hybridsystem kombinerer metoderne, så hver metode kompenserer for den andens svagheder. Det giver normalt bedre resultater end hver metode alene.

Vægtet kombination

Det enkleste hybridsystem kombinerer scorer med vægte, der tilsammen giver 1. For eksempel lægger 0.6 * CF + 0.4 * CB mest vægt på kollaborative signaler, men bevarer indhold som reserve og kilde til variation.

final_score = 0.6 * cf_score + 0.4 * cb_score

Justering af vægtene

Fordelingen 0.6 / 0.4 er et udgangspunkt. Justér vægtene på et valideringssæt: Når brugerne har en omfattende historik, skal du øge CF-vægten; for nye elementer skal du øge CB-vægten. Du kan endda skifte vægte fra bruger til bruger.

Andre hybridstrategier

  • Vægtet: kombinerer scorer, som vist ovenfor.
  • Skiftende: vælger CF eller CB afhængigt af, hvilke data der er tilgængelige.
  • Egenskabskombination: giver begge signaler som inddata til én model.

Vægtet kombination er den mest almindelige strategi og den letteste at forstå.

Evaluering: to spørgsmålstyper

Evaluering opdeles i to spørgsmål:

  • Forudsigelse af bedømmelser: Hvor tæt ligger de forudsagte bedømmelser på de rigtige? Brug RMSE/MAE.
  • Rangeringskvalitet: Ligger de rigtige elementer øverst? Brug Precision@K, Recall@K og NDCG@K.

RMSE til forudsigelse af vurderinger

RMSE måler den gennemsnitlige kvadrerede fejl mellem forudsagte og faktiske vurderinger og tager derefter kvadratroden. Den straffer store afvigelser kraftigt og er standardmålingen for vurderingsnøjagtighed.

import numpy as np

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

Præcision@K

Præcision@K = (relevante elementer blandt de øverste K) / K. Det besvarer spørgsmålet: Hvor stor en andel af de K ting, du anbefalede, kunne brugeren faktisk lide? Højere værdi betyder færre spildte pladser.

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

Genkaldelse@K

Genkaldelse@K = (relevante elementer blandt de øverste K) / (samlet antal relevante elementer). Det besvarer spørgsmålet: Hvor stor en andel af alt det, brugeren ville kunne lide, viste du blandt de øverste 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

Afvejningen mellem præcision og genkaldelse

Præcision prioriterer, at det, du viser, er korrekt, mens genkaldelse prioriterer at dække alt relevant. Anbefalingssystemer lægger normalt vægt på Præcision@K, fordi brugerne kun ser en kort liste, så de øverste pladser betyder mest.

NDCG@K til rangeringskvalitet

NDCG@K (normaliseret diskonteret kumulativ gevinst) belønner, at meget relevante elementer placeres nær toppen. Et relevant element på placering 1 tæller mere end det samme element på placering 10, fordi gevinsten diskonteres efter placeringen.

Sådan fungerer NDCG

DCG summerer hvert elements relevans divideret med logaritmen af dets placering. NDCG dividerer DCG med den ideelle DCG (perfekt rækkefølge) og giver en score fra 0 til 1, hvor 1 er en perfekt rangeret liste.

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

Hurtigt tjek

Test din viden om evalueringsmålinger.

Opsummering

Du byggede et hybridt anbefalingssystem (f.eks. 0.6 * CF + 0.4 * CB) og lærte dets værktøjskasse til evaluering: RMSE til vurderingsnøjagtighed, Præcision@K og Genkaldelse@K til genfinding samt NDCG@K til rangeringskvalitet. Det afslutter kurset i anbefalingssystemer. Næste kursus: MLOps Fundamentals.

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
53
Lektioner
225

Ofte stillede spørgsmål

Er lektionen “Hybridsystemer og evalueringsmetrikker” gratis?

Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Hybridsystemer og evalueringsmetrikker”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Hybridsystemer og evalueringsmetrikker”?

Kombination af collaborative og indholdsbaseret filtrering, RMSE, MAE, Precision@K, Recall@K. Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Lær AI med Python?

Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Hybridsystemer og evalueringsmetrikker”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Lær AI med Python-lektion?

Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Collaborative filtering: brugerbaseret og item-baseret
  2. Matrixfaktorisering med SVD
  3. Indholdsbaseret filtrering
  4. Hybridsystemer og evalueringsmetrikker
← Tilbage til Lær AI med Python