soglia di classificazione in RandomForest-sklearn


9

1) Come posso modificare la soglia di classificazione (penso che sia di default 0,5) in RandomForest in sklearn?

2) come posso sottocampionare in sklearn?

3) Ho il seguente risultato dal classificatore RandomForest: [[1635 1297] [520 3624]]

         precision    recall  f1-score   support

class 0       0.76      0.56      0.64      2932
class 1       0.74      0.87      0.80      4144

media / totale 0,75 0,74 0,73 7076

in primo luogo, i dati sono sbilanciati (30% dalla classe 0 e 70% dalla classe 1). Quindi, penso che il classificatore abbia più probabilità di essere di parte per la classe 1, il che significa spostare alcuni dalla classe 0 alla classe 1 (ci sono 1297 classificazione errata per la classe 0 ma 520 classificazione errata per la classe 1). Come posso risolvere questo problema? se il downsampling può aiutare? o cambiando la soglia di classificazione?

Aggiornamento: la classe 0 ha il 40% della popolazione mentre la classe 1 è il 60%. Tuttavia, la deriva dalla classe 0 alla classe 1 (1297) è alta mentre voglio che diventi bassa.

Risposte:


7

Potresti davvero avvolgere la tua foresta casuale in una classe che un predictmetodo che chiama il predict_probametodo della foresta casuale interna e la classe di output 1 solo se è superiore a una soglia personalizzata.

In alternativa puoi distorcere l'algoritmo di addestramento passando un valore più alto sample_weightper i campioni della classe di minoranza.


Grazie. Stavo pensando di aumentare di peso per le classi minori. Tuttavia, non riesco a vedere nulla nel classificatore RandomForest (c'è in SGDclassifier)
Amante dei Big Data il

Il metodo di adattamento accetta un sample_weightparametro (un peso per parametro) che è molto flessibile e consente di simulare class_weight(un peso per classe target).
ogrisel,

Grazie. quando uso clf = clf.fit (X, Y, sample_weight = preprocessing.balance_weights (y) mi dà ValueError: gli operandi non possono essere trasmessi insieme alle forme. y è binario 0/1
Big Data Lover

Qual è la forma di y? Perché hai diversi Ye y?
ogrisel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.