Domanda

Ho un insieme di dati con le seguenti specifiche:

  • Formazione insieme di dati con 193,176 campioni con 2.821 positivi
  • Prova Dataset con 82,887 campioni con 673 positivi
  • Ci sono 10 caratteristiche.

Voglio effettuare una classificazione binaria (0 o 1). Il problema che sto affrontando è che i dati è molto sbilanciato. Dopo la normalizzazione e la scalatura dei dati insieme ad alcuni di ingegneria funzionalità e l'utilizzo di un paio di algoritmi diversi, questi sono i migliori risultati che ho potuto realizzare:

mean square error : 0.00804710026904
Confusion matrix : [[82214   667]
                   [    0     6]]

cioè solo 6 risultati positivi corretti. Questo è utilizzando la regressione logistica. Qui ci sono le varie cose che ho provato con questo:

  • algoritmi diversi, come foresta casuale, DecisionTree, SVM
  • La modifica del valore dei parametri per chiamare la funzione
  • Alcuni ingegneria caratteristica intuizione base per includere funzionalità composti

Ora, le mie domande sono:

  1. Che cosa posso fare per migliorare il numero di colpi positivi?
  2. Come si può determinare se v'è un sovradattamento in tal caso di un? (Ho provato la stampa, ecc)
  3. A che punto si potrebbe concludere se forse questa è la misura migliore avrei potuto? (Che sembra triste considerando solo 6 risultati su 673)
  4. C'è un modo ho potuto fare gli esempi positivi del campione pesano di più in modo che il riconoscimento di forme migliora portando a più colpi?
  5. Quali trame grafiche potrebbero aiutare a rilevare i valori erratici o qualche intuizione su quale modello si adatterebbe al meglio?

Sto usando lo scikit-learn biblioteca con Python e tutte le implementazioni sono funzioni di libreria.

modifica

Ecco i risultati con pochi altri algoritmi:

a caso Foresta classificatore (n_estimators = 100)

[[82211   667]
[    3     6]]

Decision Trees:

[[78611   635]
[ 3603    38]]
È stato utile?

Soluzione

  1. Dal momento che si sta facendo classificazione binaria, hai provato la regolazione della soglia di classificazione? Dal momento che il vostro algoritmo sembra piuttosto insensibile, vorrei provare a ridurre e controllare se c'è un miglioramento.

  2. È sempre possibile utilizzare o un terreno di un parametro del modello contro la formazione e l'errore di convalida per determinare se il modello è sovradattamento. Sembra che è in fase di montaggio nel tuo caso, ma questo è solo l'intuizione.

  3. Bene, in ultima analisi, dipende dal vostro set di dati, ed i diversi modelli si è tentato. A questo punto, e senza ulteriori prove, non ci può non essere una risposta definitiva.

  4. Senza la pretesa di essere un esperto sul tema, ci sono una serie di tecniche diverse si può seguire (suggerimento: primo link su google ), ma a mio parere si deve prima assicurarsi di scegliere con attenzione il vostro funzione di costo, in modo che essa rappresenta ciò che sei in realtà cercando.

  5. Non sei sicuro di cosa si intende per modello intuizione, si può elaborare?

A proposito, quali sono stati i risultati con i diversi algoritmi provato? Erano diverso?

Altri suggerimenti

Poiché i dati è molto distorta, in tal caso si può anche provare la formazione modello sovra-campionamento dei dati.

percosse e ADASYN sono alcune delle tecniche che possiamo usare per over-campione di dati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top