Pesi delle classi per dati sbilanciati
Impedisca alla classe maggioritaria di dominare
Pesi delle classi per dati sbilanciati è una lezione Deep Learning Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Deep Learning Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Deep Learning Academy include 4 lezioni in totale.
Quando una classe domina
Se il 95 percento dei campioni appartiene a una sola classe, il modello può ottenere un punteggio elevato indovinando sempre quella. Questa è la trappola dello squilibrio tra classi. ⚖️
Perché l'accuratezza inganna in questo caso
Anche un modello pigro che ignora la classe rara può sembrare accurato al 95 percento. L'accuratezza nasconde quindi il fallimento totale sulla classe minoritaria che Le interessa davvero.
La loss segue la maggioranza
Ogni campione contribuisce allo stesso modo alla loss, quindi la classe più numerosa esercita la maggiore influenza sul gradiente. Il modello impara soprattutto dalla classe maggioritaria.
Ripesi la loss
La soluzione consiste nel dare più peso alle classi rare. I pesi delle classi moltiplicano la loss di ogni campione, così gli errori della minoranza contano di più.
Un peso maggiore per la classe più rara
Una strategia comune assegna a ogni peso un valore inversamente proporzionale alla frequenza della classe. Più una classe è rara, maggiore sarà il suo peso.
Passi i pesi a CrossEntropy
Per i problemi multiclass, fornisca alla loss un tensore weight di lunghezza C. Ogni elemento ridimensiona la penalità per gli errori di quella classe.
import torch.nn as nn
w = torch.tensor([1.0, 9.0])
loss_fn = nn.CrossEntropyLoss(weight=w)pos_weight per i problemi binari
Per i problemi a due classi, BCEWithLogitsLoss accetta pos_weight, un singolo numero che aumenta il peso della classe positiva per compensarne la rarità.
loss_fn = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([9.0]))Campioni, non si limiti a pesare
Il weighting non è l'unico strumento. Può anche fare oversampling della classe rara o undersampling di quella comune per bilanciare ogni batch.
Bilanci i batch con un sampler
Un WeightedRandomSampler estrae più spesso campioni della minoranza, così ogni batch fornito dal DataLoader risulta approssimativamente bilanciato per progettazione.
from torch.utils.data import WeightedRandomSamplerFocal loss per i casi difficili
In caso di squilibrio estremo, la focal loss riduce il peso degli esempi facili e classificati correttamente, così il modello si concentra su quelli difficili e rari.
Valuti con la metrica giusta
Dopo il riequilibrio, abbandoni l'accuratezza e monitori F1 oppure precision e recall. Queste metriche mostrano se il modello sta finalmente imparando la classe rara.
Verifica rapida
Il Suo dataset è composto per il 95 percento da esempi negativi. Come può impedire al modello di ignorare i positivi?
Riepilogo: dia voce alla classe rara
Lo squilibrio permette alla maggioranza di prendere il controllo del training, quindi può contrastarlo con i pesi delle classi, il campionamento bilanciato o la focal loss, valutando i risultati con F1. 💪
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Pesi delle classi per dati sbilanciati» è gratuita?
Sì — il testo completo di «Pesi delle classi per dati sbilanciati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Deep Learning Academy, passa a CoddyKit PRO. Il corso Deep Learning Academy include 4 lezioni in totale.
Cosa imparerò in «Pesi delle classi per dati sbilanciati»?
Impedisca alla classe maggioritaria di dominare Eserciti Deep Learning Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Deep Learning Academy?
Non è richiesta alcuna esperienza precedente. Deep Learning Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Pesi delle classi per dati sbilanciati»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Deep Learning Academy?
Sì. Ogni lezione Deep Learning Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- MSE e MAE per la regressione
- Binary cross-entropy con logits
- Cross-entropy per più classi
- Pesi delle classi per dati sbilanciati