ag added conda env

This commit is contained in:
2024-02-23 15:25:41 +01:00
parent 7eb456384e
commit 1e882df758
2 changed files with 157 additions and 2 deletions

View File

@@ -13,13 +13,14 @@ Questo serve per splittare il dataset (small o normale) in train, validation e t
Questo e' il core del programma: ho messo una griglia di iperparametri con dei range di solito utilizzati. Si allena un xgboost a massimizzare MCC (non accuracy che non e' indicato in caso di classi sbilanciate). Si imposta il numero di trial (suggerisco almeno 1000) e un timeout (in caso di risorse limitate). `num_boost` e' il numero massimo di step, c'e' un sistema di overfitting detection per fermarlo prima.
## gain_accuracy_train
Si puo' usare come no ma l'idea e' che, una volta trovato il set di parametri posso giocare con le variabili di input. Esse vengono ordinate utilizzando lo score (`best_model.get_fscore())`).
L'idea e' che, una volta trovato il set di parametri ottimale, posso giocare con le variabili di input. A farla bene si dovrebbe rilanciare l'ottimizzazione per ogni scelta delle variabili, ma costerebbe molto piu' tempo.
Le features vengono ordinate per importanza utilizzando lo score (`best_model.get_fscore())`).
![Feature importance](img/FI.png)
A questo punto, partendo dalla piu' importante si allena il modello con N features e si confrontano i valori.
![Risultati per numero di features](img/FS.png)
Questo puo' essere utilizzato anche per dire: per avere il x% di accuracy devo utilizzare almeno queste variabili. Mi viene in mente ad esempio i campi obbligatori del form da compilare...
Questo puo' essere utilizzato anche per dire: per avere il x% di accuracy devo utilizzare almeno queste variabili. Mi viene in mente ad esempio 'questi sono i campi obbligatori del form da compilare'.
## Notebooks