Apprendimento automatico e Reti Neurali - pagina 73

 

11.5 CV nidificati per la selezione dell'algoritmo (valutazione del modello L11, parte 4)


11.5 CV nidificati per la selezione dell'algoritmo (valutazione del modello L11, parte 4)

Va bene, tuffiamoci nell'argomento della selezione dell'algoritmo computazionale. In questa discussione, ci concentreremo su una tecnica chiamata convalida incrociata nidificata ed esploreremo alcuni esempi di codice nel prossimo video. Prima di approfondire la convalida incrociata nidificata, ricapitoliamo rapidamente alcuni punti chiave trattati in precedenza.

In precedenza, abbiamo discusso il metodo di controllo a tre vie come mezzo di selezione del modello. Ecco un breve riepilogo del processo: iniziamo suddividendo il nostro set di dati originale in un set di addestramento e un set di test. Successivamente, dividiamo ulteriormente il set di addestramento in un set di addestramento più piccolo e un set di convalida. Il set di addestramento viene utilizzato, insieme a un algoritmo di apprendimento automatico e a specifici valori di iperparametri, per addestrare un modello. Iterando attraverso varie impostazioni di iperparametri, otteniamo più modelli con le rispettive prestazioni. Infine, selezioniamo il modello con le prestazioni più elevate, misurate sul set di validazione, e ne valutiamo le prestazioni finali sul set di test. È importante includere un set di test indipendente per mitigare eventuali bias di selezione introdotti durante la selezione del modello.

Ora, rivisitiamo il concetto usando una figura diversa per aiutare la nostra comprensione. In questo diagramma, possiamo visualizzare tre scenari. Nel primo scenario, valutiamo un singolo modello addestrato sul set di addestramento e testato sul set di test senza alcuna messa a punto del modello. Questo approccio è adatto quando non è richiesta alcuna messa a punto del modello.

Nel secondo scenario, valutiamo più modelli sugli stessi set di addestramento e test. Ogni modello viene addestrato con diverse impostazioni dell'iperparametro e selezioniamo quello con le migliori prestazioni in base alle prestazioni del set di test. Tuttavia, l'utilizzo del set di test più volte per la selezione del modello può introdurre bias di selezione, rendendo questo approccio meno desiderabile.

Il terzo scenario corrisponde al metodo di controllo a tre vie discusso in precedenza. Più modelli vengono addestrati sul set di addestramento con diverse impostazioni di iperparametri. Il set di convalida viene quindi utilizzato per selezionare il modello con le migliori prestazioni, che viene successivamente valutato sul set di test. Questo approccio aiuta a mitigare i bias di selezione utilizzando un set di convalida separato per la classificazione dei modelli.

Sebbene il metodo di controllo a tre vie sia efficace, un approccio migliore è la convalida incrociata k-fold, di cui abbiamo parlato nella nostra discussione precedente. Questo metodo divide i dati in k pieghe, con ciascuna piega che si alterna come set di convalida mentre il resto funge da set di addestramento. Questo approccio è particolarmente vantaggioso quando il set di dati è di dimensioni limitate. Per set di dati più grandi, l'holdout a tre vie può ancora essere un'opzione praticabile, specialmente nel deep learning dove le dimensioni dei set di dati sono in genere più grandi e entrano in gioco considerazioni aggiuntive come la convergenza del modello.

Ora, andiamo avanti e discutiamo della convalida incrociata nidificata, che ci fa fare un ulteriore passo avanti confrontando diversi algoritmi. Supponiamo di voler confrontare algoritmi come K-nearest neighbors, decision tree, gradient boosting e random forest. Ogni algoritmo sarà sottoposto a tuning iperparametrico per selezionare il modello migliore. Introduciamo un altro ciclo alla procedura di convalida incrociata, con conseguente convalida incrociata nidificata. Il ciclo esterno è responsabile della valutazione del modello, mentre il ciclo interno si concentra sull'ottimizzazione degli iperparametri. Questa procedura in due passaggi rende la convalida incrociata annidata più complessa della normale convalida incrociata k-fold, in quanto comprende essenzialmente due convalide incrociate k-fold annidate.

Per comprendere meglio questo processo, esaminiamo un'illustrazione a partire dal nostro set di dati originale. Immagina di avere un set di test indipendente per la valutazione finale, ma per ora il nostro set di allenamento principale sarà sufficiente. Simile alla convalida incrociata k-fold, iteriamo attraverso un ciclo per un numero specificato di volte, diciamo cinque in questo caso. In ogni iterazione, i dati vengono suddivisi in ripiegamenti di addestramento e ripiegamento di prova. Tuttavia, invece di addestrare il modello esclusivamente sulla piega di addestramento e valutarlo sulla piega di prova, procediamo al passaggio successivo.

Nella fase successiva, prendiamo una delle pieghe di addestramento, come quella nella parte inferiore del diagramma, e la dividiamo ulteriormente in un set di addestramento più piccolo e un set di convalida. Il set di addestramento più piccolo viene utilizzato per addestrare diversi modelli con varie impostazioni di iperparametri, mentre il set di convalida viene utilizzato per selezionare il modello con le prestazioni migliori.

Una volta completato il ciclo interno per la piega di addestramento corrente, abbiamo un modello selezionato con le corrispondenti impostazioni dell'iperparametro. Valutiamo quindi questo modello sulla piega di prova dal ciclo esterno, che non è stato utilizzato durante il ciclo interno.

Il processo continua per ogni piega nell'anello esterno. Ogni volta, una piega diversa viene tesa come piega di prova, mentre le restanti pieghe vengono utilizzate per l'addestramento e la convalida. Ciò garantisce che ogni piega venga utilizzata sia come set di test che come set di convalida e che ogni modello venga valutato su un diverso set di dati. Le prestazioni finali del modello sono determinate calcolando la media delle prestazioni in tutte le pieghe.

La convalida incrociata nidificata ci aiuta a confrontare diversi algoritmi fornendo una stima più affidabile delle loro prestazioni. Ripetendo più volte il processo di convalida incrociata annidato, possiamo ottenere stime delle prestazioni più affidabili e stabili.

Per riassumere, la convalida incrociata nidificata è una tecnica che combina i vantaggi della selezione del modello e dell'ottimizzazione degli iperparametri. Ci consente di confrontare diversi algoritmi valutandone le prestazioni su più pieghe di dati e selezionando il modello migliore basato su iterazioni annidate di convalida incrociata. Questo approccio aiuta a mitigare i bias di selezione e fornisce una stima più accurata delle prestazioni dell'algoritmo.

Nel prossimo video, esploreremo esempi di codice per dimostrare come viene implementata nella pratica la convalida incrociata nidificata. Restate sintonizzati per la prossima parte di questa serie.

11.5 Nested CV for Algorithm Selection (L11 Model Eval. Part 4)
11.5 Nested CV for Algorithm Selection (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
This video introduces the main concept behind nested cross-validation for algorithm selection.More details in my article "Model Evaluation, Model Selection, ...
 

11.6 CV nidificato per l'esempio di codice di selezione dell'algoritmo (valutazione del modello L11, parte 4)


11.6 CV nidificato per l'esempio di codice di selezione dell'algoritmo (valutazione del modello L11, parte 4)

Bene, ora che abbiamo discusso il concetto alla base della convalida incrociata nidificata, esaminiamo un esempio di codice. Questo esempio ti aiuterà a comprendere meglio la convalida incrociata nidificata da una prospettiva computazionale. Inoltre, si rivelerà utile per i tuoi progetti di classe quando confronti gli algoritmi.

Innanzitutto, gli esempi di codice possono essere trovati su GitHub. Li ho caricati nel nostro normale repository di classi con il nome "l11_code". Sono disponibili tre notebook: "verbose_one", "verbose_two" e "compact". Tutti e tre i notebook producono gli stessi risultati, ma differiscono nell'approccio all'implementazione.

Nel taccuino "verbose_one", ho adottato un approccio più manuale utilizzando manualmente il metodo stratificato k-fold. D'altra parte, nel notebook "verbose_two", ho utilizzato la funzione cross_validate. Infine, nel taccuino "compatto", ho usato cross_val_score. Ogni taccuino fornisce diversi livelli di informazioni quando viene analizzato. Per ora, ti consiglio di iniziare con il taccuino "verbose_one" poiché hai già familiarità con l'oggetto k-fold stratificato.

Prima di procedere, vale la pena ricordare che l'approccio di implementazione scelto non ha un impatto significativo sui risultati. Tuttavia, non consiglierei di utilizzare il notebook "compatto" in quanto fornisce meno informazioni sui set di iperparametri. Più avanti, posso mostrarti brevemente come si comportano i set di iperparametri dopo aver discusso il seguente contenuto.

Esaminiamo ora il notebook "verbose_one", che dimostra l'approccio manuale alla convalida incrociata nidificata. In questo notebook troverai un'illustrazione della convalida incrociata nidificata e del suo funzionamento. Il processo prevede un ciclo esterno che esegue i cicli interni. Per ogni anello esterno, la piega è suddivisa in porzioni di allenamento e di prova. La parte di addestramento viene quindi passata al ciclo interno, che esegue l'ottimizzazione degli iperparametri o la selezione del modello. Ciò può essere ottenuto utilizzando la ricerca a griglia, come abbiamo appreso nella lezione precedente.

Nel notebook troverai i passaggi di configurazione necessari, come l'importazione delle librerie e dei moduli richiesti. Questi includono la ricerca della griglia per l'ottimizzazione del modello nel ciclo interno, la suddivisione del set di dati utilizzando la convalida incrociata k-fold stratificata, la pipeline, gli scalari standard e i classificatori che vogliamo confrontare. Ai fini di questo esempio, stiamo usando una versione più piccola del set di dati "emnes", che consiste in 5000 esempi di addestramento per mantenere intatta la fattibilità computazionale. Inoltre, il 20% del set di dati viene accantonato come dati di test, consentendoci di confrontare le prestazioni della convalida incrociata nidificata con le prestazioni del set di test.

Andando avanti, inizializziamo i classificatori che useremo. Il primo classificatore è un classificatore di regressione logistica, in particolare un classificatore di regressione logistica multinomiale. Questo classificatore è anche noto come regressione softmax nel deep learning. Anche se non l'abbiamo trattato in questa lezione, lo tratteremo in "Statistics 453". Il motivo alla base dell'utilizzo di questo classificatore è avere una gamma più ampia di algoritmi da confrontare. Inoltre, è relativamente veloce rispetto ad altri algoritmi. Un altro classificatore relativamente veloce che consideriamo è la macchina vettoriale di supporto, in particolare quella lineare. Includendo questi classificatori, miriamo a confrontare varie impostazioni di iperparametri.

È importante notare che i classificatori basati sull'albero decisionale, ad esempio l'albero decisionale stesso e il classificatore foresta casuale, non richiedono il ridimensionamento dei parametri. Pertanto, eseguiamo il ridimensionamento solo per gli altri classificatori. Per facilitare ciò, utilizziamo le pipeline, che combinano lo scaler standard con il rispettivo classificatore. Pertanto, la pipeline può essere vista come il classificatore stesso. Per ogni classificatore, definiamo una griglia di iperparametri che cercheremo. Queste griglie contengono i parametri che vogliamo ottimizzare per ogni classificatore. Ad esempio, nella regressione logistica, consideriamo la penalità del peso della regolarizzazione e diversi punti di forza della regolarizzazione. I vicini più vicini comportano la considerazione del numero di vicini più vicini e della distanza.

Nel notebook "verbose_one", dopo aver definito i classificatori e le rispettive griglie di iperparametri, si passa all'impostazione dei cicli esterno e interno per la convalida incrociata nidificata.

Il ciclo esterno utilizza la convalida incrociata k-fold stratificata per suddividere il set di dati in set di addestramento e set di test. Itera sulle pieghe e tiene traccia dell'indice di piegatura, degli indici di addestramento e degli indici di test. Per ogni piega, i dati di addestramento vengono ulteriormente suddivisi in set di addestramento e convalida per il ciclo interno.

Il ciclo interno esegue la selezione del modello o l'ottimizzazione degli iperparametri utilizzando la ricerca della griglia. Itera sulla griglia degli iperparametri per ogni classificatore e utilizza i set di addestramento e convalida del ciclo esterno per trovare i migliori iperparametri per ogni combinazione. La ricerca della griglia cerca in modo esaustivo la griglia dell'iperparametro specificata e valuta le prestazioni di ogni combinazione utilizzando la convalida incrociata.

Al termine del ciclo interno, vengono registrati i migliori iperparametri per ogni classificatore. Quindi, le prestazioni dei modelli selezionati vengono valutate sul set di test, che è stato messo da parte all'inizio. Le metriche di valutazione come accuratezza, precisione, richiamo e punteggio F1 vengono calcolate per ogni classificatore.

Infine, vengono visualizzati i risultati della convalida incrociata nidificata e della valutazione del set di test, consentendo di confrontare le prestazioni di diversi classificatori e le relative impostazioni degli iperparametri.

È importante notare che i notebook "verbose_two" e "compact" forniscono implementazioni alternative della convalida incrociata nidificata utilizzando rispettivamente la funzione cross_validate e la funzione cross_val_score. Queste funzioni gestiscono automaticamente alcuni passaggi di convalida incrociata, semplificando il codice. Tuttavia, possono fornire informazioni meno dettagliate rispetto al taccuino "verbose_one".

Spero che questa panoramica ti aiuti a comprendere gli esempi di codice e come viene implementata la convalida incrociata nidificata. Sentiti libero di esplorare i taccuini e sperimentare diversi set di dati e classificatori per ottenere una migliore comprensione del concetto.

11.6 Nested CV for Algorithm Selection Code Example (L11 Model Eval. Part 4)
11.6 Nested CV for Algorithm Selection Code Example (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
Picking up where the previous video left off, this video goes over nested cross-validation by looking at a scikit-learn code example.More details in my artic...
 

12.0 Panoramica della lezione (valutazione del modello L12 5: metriche delle prestazioni)


12.0 Panoramica della lezione (valutazione del modello L12 5: metriche delle prestazioni)

Ciao a tutti,

Spero che abbiate trascorso tutti una meravigliosa pausa del Ringraziamento e che siate stati in grado di rilassarvi e ricaricarvi prima delle ultime settimane del semestre. Anche se è un peccato che il semestre stia per finire, c'è ancora molto da aspettarsi, in particolare le presentazioni dei tuoi progetti. Sono entusiasta di vedere cosa hai costruito sulla base dei contenuti che abbiamo trattato in questa classe e testimoniare la creatività e l'applicazione delle tue conoscenze di machine learning.

Nelle prossime due settimane, ho alcuni piani per il nostro tempo rimanente insieme. Questa settimana tratterò la valutazione del modello e mi concentrerò su cinque metriche di prestazioni e valutazione. L'obiettivo è ampliare la tua prospettiva oltre la semplice accuratezza ed errori di classificazione. Esploreremo varie metriche che possono aiutare a valutare in modo efficace i modelli di machine learning. Non prevedo che questo argomento richieda molto tempo, quindi se abbiamo più tempo, toccherò anche la selezione delle funzionalità. Ho condiviso del materiale di autoapprendimento su questo argomento in precedenza poiché sapevo che avremmo potuto non avere il tempo di trattarlo ampiamente. Voglio essere consapevole delle sfide poste dall'apprendimento online e non sopraffarti con troppi argomenti in un breve periodo. Capisco che avete tutti molto da fare, compresi i compiti 3, in scadenza il 4 dicembre, e le presentazioni dei vostri progetti in formato video il 6 dicembre.

Per quanto riguarda le presentazioni del progetto, la prossima settimana creerò delle pagine Canvas in cui potrai incorporare le tue presentazioni. Inoltre, creerò un formato di quiz per votare i premi del progetto, incluso il progetto più creativo, la migliore presentazione orale e la migliore visualizzazione. Questi premi saranno determinati dai vostri voti. Credo che aggiungerà un elemento di divertimento al processo. Organizzerò tutto per la prossima settimana, il che significa che non ci saranno lezioni. Tuttavia, consiglio vivamente a tutti di guardare le presentazioni del progetto. Verranno assegnati punti per la compilazione di sondaggi relativi alle presentazioni. È anche giusto guardare le reciproche presentazioni poiché tutti voi vi impegnate in modo significativo. Possiamo avere discussioni e porre domande su Piazza o esplorare altre piattaforme che consentono l'interazione. Considererò il modo migliore per facilitare questo impegno.

Prima di immergerci nella lezione di oggi, voglio ricordarti le valutazioni del corso. Il nostro dipartimento ti ha chiesto di fornire un feedback su come è andato il semestre per te. Quest'anno è stato diverso a causa del formato online, quindi i tuoi approfondimenti sarebbero preziosi. Pubblicherò i link per le valutazioni del corso su Canvas. Sarebbe molto apprezzato se potessi dedicare del tempo a compilarli. Tuttavia, voglio sottolineare che non ci sono penalità se scegli di non completarli. È solo una richiesta per raccogliere il tuo feedback.

Detto questo, iniziamo con la Lezione 5 sulle metriche di performance e valutazione. Abbiamo fatto molta strada nella valutazione del modello, a partire dalle scomposizioni di bias-variance per comprendere l'overfitting e l'underfitting. Abbiamo esplorato il metodo di controllo per la divisione del set di dati e le sue insidie, costruendo intervalli di confidenza utilizzando il metodo di approssimazione normale, tecniche di ricampionamento come controllo ripetuto e bootstrap e convalida incrociata per la selezione del modello. La scorsa settimana abbiamo discusso dei test statistici per i confronti tra modelli e algoritmi, inclusa la convalida incrociata nidificata. Oggi ci concentreremo sulle metriche di valutazione.

Inizieremo discutendo la matrice di confusione, che differisce dalla matrice di confusione di McNemar trattata la scorsa settimana. Dalla matrice di confusione, possiamo derivare metriche come il tasso di falsi positivi, il tasso di veri positivi e altri, che saranno utili quando approfondiremo la caratteristica operativa del ricevitore. Inoltre, esploreremo la precisione, il richiamo, il punteggio F1, il coefficiente di correlazione di Matthews e l'accuratezza bilanciata. Quest'ultimo è particolarmente utile nei casi in cui esistono squilibri di classe all'interno del set di dati. Verso la fine, affronteremo l'estensione delle metriche binarie alle impostazioni multiclasse, con l'eccezione dell'accuratezza bilanciata, che è già compatibile con la classificazione multiclasse.

Nel prossimo video, inizieremo la nostra discussione con la matrice di confusione.

12.0 Lecture Overview (L12 Model Eval 5: Performance Metrics)
12.0 Lecture Overview (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This first video in L12 gives an overview of what's going to be covered in L12.-------This video is part of my Introduction of Machine Learning course.Next v...
 

12.1 Matrice di confusione (Valutazione modello L12 5: Metriche delle prestazioni)



12.1 Matrice di confusione (Valutazione modello L12 5: Metriche delle prestazioni)

Iniziamo discutendo la matrice di confusione e il suo significato. Nella conferenza, il relatore ha affermato di non aver preparato gli appunti delle lezioni a causa di vari motivi, come la fine frenetica del semestre e l'aver trattato l'argomento in un libro di apprendimento automatico Python. Hanno suggerito di fare riferimento al capitolo 6 del libro per maggiori dettagli.

La matrice di confusione è uno strumento utilizzato per valutare le prestazioni di un classificatore di machine learning. Mostra il confronto tra le etichette di classe previste e le etichette di classe effettive in un problema di classificazione supervisionato. La matrice ci aiuta a capire quanto bene sta funzionando il classificatore e quali etichette di classe tende a confondere.

La matrice di confusione è tipicamente rappresentata in un formato due per due, noto anche come matrice di contingenza. Consiste di quattro componenti: veri positivi (TP), falsi negativi (FN), falsi positivi (FP) e veri negativi (TN). La classe "positiva" si riferisce alla classe di interesse che vogliamo prevedere, mentre la classe "negativa" si riferisce all'altra classe.

I veri positivi (TP) sono le istanze che appartengono alla classe positiva e sono correttamente identificate come tali dal classificatore. D'altra parte, i falsi negativi (FN) sono istanze della classe positiva che vengono erroneamente previste come negative.

Allo stesso modo, i falsi positivi (FP) sono istanze della classe negativa che sono previste erroneamente come positive. Infine, i veri negativi (TN) sono istanze della classe negativa che sono correttamente identificate come negative.

Analizzando questi componenti, possiamo calcolare varie metriche di performance. La lezione menzionava due metriche comuni: l'accuratezza della classificazione e l'errore di classificazione. L'accuratezza della classificazione viene calcolata dividendo la somma dei veri positivi e dei veri negativi per il numero totale di previsioni. D'altra parte, l'errore di classificazione viene calcolato come uno meno l'accuratezza.

Il relatore ha quindi introdotto il set di dati Wisconsin sul cancro al seno, che contiene informazioni sulle diagnosi di cancro al seno. Hanno spiegato che il set di dati ha varie colonne, incluso un numero ID per ogni paziente e le caratteristiche estratte dalle immagini digitalizzate dei nuclei delle cellule tumorali.

Per preparare il set di dati per la classificazione, il relatore ha utilizzato un codificatore di etichette di scikit-learn per trasformare le etichette delle classi di stringhe (maligne e benigne) in etichette intere (0 e 1). Hanno suddiviso il set di dati in un set di addestramento (80%) e un set di test (20%).

Successivamente, il relatore ha dimostrato come tracciare una matrice di confusione utilizzando un classificatore k-nearest neighbor. Hanno sottolineato l'importanza del ridimensionamento delle funzionalità per i classificatori KNN e hanno menzionato l'uso di uno scalare e di una pipeline standard per la preelaborazione.

Per visualizzare la matrice di confusione, il relatore ha utilizzato la funzione confusion_matrix della libreria mlxtend. La matrice di confusione risultante è stata visualizzata utilizzando matplotlib, con i veri positivi nell'angolo in basso a destra e i veri negativi nell'angolo in alto a sinistra.

Inoltre, il relatore ha menzionato alcuni parametri opzionali della funzione confusion_matrix, come show_absolute e show_normed. Questi parametri consentono la personalizzazione della visualizzazione, inclusa la visualizzazione dei numeri assoluti o dei valori normalizzati.

Infine, il relatore ha discusso le metriche derivate dalla matrice di confusione, come il tasso di veri positivi, il tasso di falsi positivi, il tasso di falsi negativi e il tasso di veri negativi. Queste metriche sono importanti per valutare le prestazioni del classificatore e saranno ulteriormente esplorate in relazione alla curva caratteristica dell'operatore del ricevitore (ROC) nelle discussioni successive.

Nel complesso, la matrice di confusione fornisce preziose informazioni sulle prestazioni di un classificatore, consentendoci di valutare la sua capacità di prevedere correttamente le etichette delle classi.

12.1 Confusion Matrix (L12 Model Eval 5: Performance Metrics)
12.1 Confusion Matrix (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This video goes over the concept of a confusion matrix and how it relates to the true positive and false positives rates, among others.-------This video is p...
 

12.2 Precisione, richiamo e punteggio F1 (valutazione modello L12 5: metriche prestazionali)


12.2 Precisione, richiamo e punteggio F1 (valutazione modello L12 5: metriche prestazionali)

Nel video precedente, abbiamo discusso la matrice di confusione, che è uno strumento utile per valutare i modelli di classificazione. Ci consente di calcolare il numero di veri positivi, falsi positivi, veri negativi e falsi negativi. Abbiamo anche esplorato il vero tasso positivo e il vero tasso negativo. Ora estenderemo la nostra comprensione introducendo tre metriche aggiuntive: precisione, richiamo e punteggio F1.

Partiamo dalla precisione. La precisione viene calcolata dividendo il numero di veri positivi per la somma di veri positivi e falsi positivi. I veri positivi sono i casi previsti correttamente come positivi, mentre i falsi positivi sono i casi previsti erroneamente come positivi. Nel contesto della classificazione dello spam, ad esempio, i veri positivi rappresentano le email correttamente identificate come spam, mentre i falsi positivi si riferiscono alle email non spam erroneamente classificate come spam. La precisione misura l'accuratezza delle previsioni positive, rispondendo alla domanda: quante delle e-mail di spam previste sono effettivamente spam?

Successivamente, abbiamo il richiamo, che è anche noto come il vero tasso positivo. Il richiamo viene calcolato dividendo il numero di veri positivi per la somma di veri positivi e falsi negativi. I veri positivi rappresentano le istanze correttamente previste come positive e i falsi negativi rappresentano le istanze erroneamente previste come negative. Il richiamo indica quanti dei casi effettivamente positivi sono stati correttamente identificati come positivi. In altre parole, misura l'efficacia di un classificatore nell'acquisizione di istanze positive.

Un'altra metrica importante è il punteggio F1, che combina precisione e richiamo in un unico valore. Viene calcolato prendendo la media armonica di precisione e richiamo, ponderata per un fattore due. Il punteggio F1 fornisce una misura equilibrata delle prestazioni di un classificatore, considerando sia la precisione che il richiamo. È particolarmente utile quando vogliamo valutare un modello che si comporta bene sia in precisione che in richiamo.

Tutte queste metriche hanno un intervallo compreso tra zero e uno, dove uno è il miglior valore possibile. In termini di terminologia, la sensibilità e la specificità sono più comunemente utilizzate nella biologia computazionale, mentre la precisione e il richiamo sono popolari nell'informatica, nell'informatica e nell'apprendimento automatico. Quando si scelgono le metriche da utilizzare in un articolo o in uno studio, è importante considerare le convenzioni del campo specifico.

Per comprendere meglio la precisione e il richiamo, visualizziamoli utilizzando un utile diagramma da Wikipedia. In questa visualizzazione consideriamo la classe positiva (ad es. email di spam) come tutto a sinistra e la classe negativa come tutto a destra. La precisione è rappresentata dai veri positivi divisi per tutti i positivi previsti, mentre il ricordo è rappresentato dai veri positivi divisi per tutti i positivi effettivi.

Inoltre, abbiamo altre due metriche comunemente utilizzate: sensibilità e specificità. La sensibilità è un altro termine per ricordare, che rappresenta il vero tasso positivo. La specificità, d'altra parte, è il numero di veri negativi diviso per il numero di negativi. Completa la sensibilità e si concentra sull'identificazione accurata delle istanze negative.

Ora, discutiamo il coefficiente di correlazione di Matthews. Progettato inizialmente per valutare le previsioni della struttura secondaria delle proteine in biologia, questo coefficiente misura la correlazione tra le etichette vere e quelle previste. Può essere considerato come una controparte di classificazione binaria del coefficiente di correlazione di Pearson. Simile alla r di Pearson, il coefficiente di correlazione di Matthews varia da -1 a 1, con 1 che indica una corrispondenza perfetta tra le etichette vere e previste. È particolarmente utile nei problemi di classi squilibrate, in cui una classe ha molti più esempi dell'altra.

Per calcolare queste metriche, puoi utilizzare le funzioni fornite da scikit-learn, come precision_score, recall_score, f1_score e matthews_corrcoef. Queste funzioni prendono le etichette vere e le etichette previste come input e restituiscono i valori metrici corrispondenti. In alternativa, puoi utilizzare queste metriche nella ricerca della griglia e nell'ottimizzazione degli iperparametri, fornendo la metrica desiderata come argomento stringa.

Per problemi multiclasse, quando si desidera utilizzare metriche come precisione, richiamo, punteggio F1 o coefficiente di correlazione di Matthews, è necessario applicare una soluzione alternativa. Un approccio consiste nell'usare la funzione make_scorer di scikit-learn. Questa funzione consente di creare un oggetto punteggio per una metrica specifica.

Ad esempio, se si desidera utilizzare il punteggio F1 per un problema multiclasse, è possibile creare un oggetto scorer utilizzando make_scorer e impostare il parametro average su "macro" o "micro". L'opzione "macro" calcola la metrica in modo indipendente per ogni classe e quindi prende la media, mentre l'opzione "micro" considera il numero totale di veri positivi, falsi negativi e falsi positivi in tutte le classi.

È importante notare che la scelta tra media "macro" e "micro" dipende dal problema e dai requisiti specifici dell'analisi.

Oltre a utilizzare queste metriche singolarmente, puoi anche applicarle nella ricerca sulla griglia e nell'ottimizzazione degli iperparametri. Invece di utilizzare l'accuratezza della classificazione come metrica di punteggio, è possibile fornire la metrica desiderata come argomento stringa nel processo di ricerca della griglia. Ciò consente di ottimizzare il modello in base alla metrica scelta, fornendo una valutazione più completa rispetto alla semplice accuratezza.

Ricorda che quando lavori con problemi multiclasse e applichi queste metriche, è fondamentale comprendere le opzioni di calcolo della media e scegliere il metodo appropriato in base alle tue esigenze specifiche.

In sintesi, in questo video abbiamo trattato ulteriori metriche di valutazione per i modelli di classificazione, tra cui precisione, richiamo, punteggio F1 e coefficiente di correlazione di Matthews. Queste metriche forniscono informazioni preziose sulle prestazioni di un classificatore, considerando fattori quali veri positivi, falsi positivi e falsi negativi. Utilizzando queste metriche, puoi ottenere una comprensione più approfondita delle prestazioni del tuo modello e prendere decisioni informate nella tua analisi o ricerca. Nel prossimo video, approfondiremo l'accuratezza bilanciata, le curve delle caratteristiche operative del ricevitore (ROC) e l'estensione delle metriche binarie alle impostazioni multi-classe, ampliando la nostra conoscenza delle tecniche di valutazione nelle attività di classificazione.

12.2 Precision, Recall, and F1 Score (L12 Model Eval 5: Performance Metrics)
12.2 Precision, Recall, and F1 Score (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This video looks at binary performance metrics such as 12.2 Precision, Recall, and F1 Score.-------This video is part of my Introduction of Machine Learning ...
 

12.3 Precisione bilanciata (valutazione modello L12 5: metriche delle prestazioni)


12.3 Precisione bilanciata (valutazione modello L12 5: metriche delle prestazioni)

Va bene, ora approfondiamo il concetto di accuratezza bilanciata, che è particolarmente utile quando si affrontano problemi di squilibrio di classe nelle attività di classificazione. Lo squilibrio di classe si verifica quando una classe ha un numero significativamente maggiore di etichette rispetto a un'altra classe. Per illustrare ciò, consideriamo un problema di classificazione multiclasse utilizzando l'esempio dei fiori di Iris, in particolare Iris setosa, Iris versicolor e Iris virginica.

In genere, calcoliamo l'accuratezza della previsione sommando i valori sulla diagonale della matrice di confusione e dividendola per il numero totale di esempi. Nell'esempio fornito, abbiamo 3 etichette per la Classe Zero, 769 etichette per la Classe Uno e 18 etichette per la Classe Due. Come puoi vedere, c'è uno squilibrio nelle classi, con la Classe Uno che ha un numero maggiore di esempi rispetto alle altre due classi. Se calcoliamo l'accuratezza regolare, sarebbe intorno all'80%, principalmente influenzata dall'elevato numero di esempi di Classe Uno.

Tuttavia, l'accuratezza regolare potrebbe non fornire una rappresentazione accurata delle prestazioni del modello, in particolare quando l'obiettivo dovrebbe essere quello di ottenere previsioni equilibrate per tutte le classi. In tali casi, la metrica di accuratezza bilanciata mira a fornire una valutazione più equa attribuendo uguale peso a ciascuna classe.

Per calcolare l'accuratezza bilanciata, consideriamo ogni classe come classe positiva e uniamo le classi rimanenti nella classe negativa. Ad esempio, concentriamoci prima sulla Classe Zero. Trattiamo la Classe Zero come la classe positiva e combiniamo la Classe Uno e la Classe Due come la classe negativa. Analizzando la matrice di confusione, possiamo determinare i veri positivi, i veri negativi, i falsi positivi e i falsi negativi per la Classe Zero. Questo processo viene ripetuto per ogni classe, creando problemi di classificazione binaria separati.

In Python, puoi usare la funzione precision_score dalla libreria mlxtend per calcolare l'accuratezza bilanciata. Questa funzione funziona in modo simile a accurate_score di scikit-learn, ma include funzionalità aggiuntive per calcolare l'accuratezza della classificazione binaria. Specificando il metodo come binario e fornendo l'etichetta positiva, è possibile calcolare l'accuratezza binaria per ogni classe. Inoltre, è possibile utilizzare il parametro medio come "macro" o "micro" per calcolare direttamente l'accuratezza media per classe.

Nell'esempio fornito, viene ricreata la matrice di confusione e vengono calcolate l'accuratezza regolare, l'accuratezza media per classe (accuratezza bilanciata) e le accuratezze binarie. Le accuratezze binarie corrispondono a ciascuna classe trattata separatamente come etichetta positiva. Calcolando la media delle precisioni binarie, si ottiene la precisione bilanciata. In questo caso, la precisione bilanciata è di circa l'86%.

L'accuratezza bilanciata, o accuratezza media per classe, fornisce una valutazione equa delle prestazioni di un classificatore in problemi multi-classe con squilibrio di classe. Considera ogni classe allo stesso modo e offre approfondimenti sulla capacità del modello di prevedere accuratamente tutte le classi.

Andando avanti, discutiamo ora della curva ROC (Receiver Operating Characteristic), un'altra importante metrica di valutazione nell'apprendimento automatico. La curva ROC è una rappresentazione grafica delle prestazioni di un classificatore binario e fornisce preziose informazioni sul compromesso tra il tasso di veri positivi (TPR) e il tasso di falsi positivi (FPR) a diverse soglie di classificazione.

Per comprendere la curva ROC, definiamo prima il tasso di veri positivi (TPR) e il tasso di falsi positivi (FPR). Il TPR, noto anche come sensibilità o richiamo, misura la proporzione di casi effettivamente positivi identificati correttamente dal classificatore. Viene calcolato come il numero di veri positivi diviso per la somma di veri positivi e falsi negativi:

TPR = Veri positivi / (veri positivi + falsi negativi)

D'altra parte, il tasso di falsi positivi (FPR) misura la proporzione di istanze negative effettive che vengono erroneamente classificate come positive. Viene calcolato come il numero di falsi positivi diviso per la somma di falsi positivi e veri negativi:

FPR = Falsi positivi / (Falsi positivi + Veri negativi)

Per costruire la curva ROC, le previsioni del classificatore vengono classificate in base ai punteggi o alle probabilità di classificazione. Variando la soglia di classificazione, possiamo generare diversi valori TPR e FPR. Partendo dalla soglia che classifica tutte le istanze come positive (risultando in un TPR di 1 e un FPR di 1), riduciamo gradualmente la soglia, classificando meno istanze come positive e, di conseguenza, riducendo sia il TPR che il FPR.

Tracciare il TPR contro l'FPR per ogni valore di soglia ci dà la curva ROC. La curva illustra le prestazioni del classificatore in vari punti operativi, con lo scenario ideale essendo una curva che abbraccia l'angolo in alto a sinistra, indicando TPR alto e FPR basso per tutti i valori di soglia.

Oltre alla curva ROC, un'altra metrica importante derivata da essa è l'area sotto la curva ROC (AUC-ROC). L'AUC-ROC quantifica le prestazioni complessive del classificatore calcolando l'area sotto la curva ROC. Un classificatore perfetto ha un AUC-ROC di 1, indicando che raggiunge un TPR di 1 mantenendo un FPR di 0. Al contrario, un classificatore casuale ha un AUC-ROC di 0,5, poiché non ha prestazioni migliori del caso.

La curva ROC e AUC-ROC forniscono un'analisi completa delle prestazioni di un classificatore binario, indipendentemente dalla soglia di classificazione scelta. Ci consente di confrontare diversi classificatori o diverse impostazioni dello stesso classificatore, consentendo decisioni informate sulla selezione del modello.

Per calcolare la curva ROC e AUC-ROC in Python, varie librerie come scikit-learn offrono comode funzioni. Queste funzioni prendono come input le vere etichette e le probabilità o i punteggi previsti e restituiscono FPR, TPR e soglie per la curva ROC, nonché il valore AUC-ROC.

In sintesi, la curva ROC e AUC-ROC sono strumenti preziosi per valutare e confrontare le prestazioni dei classificatori binari. Forniscono approfondimenti sul compromesso tra tassi di veri positivi e falsi positivi a diverse soglie di classificazione, consentendo un processo decisionale informato nella selezione del modello.

12.3 Balanced Accuracy (L12 Model Eval 5: Performance Metrics)
12.3 Balanced Accuracy (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This video discusses the balanced accuracy (also known as the average-per-class accuracy), which is an alternative to the standard accuracy and can be useful...
 

12.4 Caratteristiche operative del ricevitore (valutazione modello L12 5: metriche prestazionali)



12.4 Caratteristiche operative del ricevitore (valutazione modello L12 5: metriche prestazionali)

L'argomento della discussione ruota attorno alla curva delle caratteristiche operative del ricevitore (ROC). Questa curva, nota anche come curva delle caratteristiche operative del ricevitore (ROC), può suonare come uno scioglilingua a causa del suo nome complesso. Il termine "caratteristica operativa del ricevitore" deriva dal campo degli operatori di ricevitori radar che lavoravano con tecnologie come la direzione radio. Inizialmente, è stato utilizzato in questo contesto. Tuttavia, ha guadagnato popolarità nel campo dell'apprendimento automatico grazie alla sua capacità di combinare due metriche essenziali: il tasso di veri positivi e il tasso di falsi positivi.

La curva ROC viene costruita variando la soglia di previsione. Per illustrare questo, consideriamo un esempio. Nei problemi di classificazione binaria, abbiamo due classi: Classe Zero e Classe Uno. Piuttosto che avere una semplice decisione di classificazione binaria, possiamo assegnare una probabilità di appartenenza alla classe a ciascun esempio. Questa probabilità può essere determinata utilizzando vari classificatori come la regressione logistica, i k-vicini più vicini o gli alberi decisionali. Ad esempio, nel caso di k-nearest neighbors, la probabilità di appartenenza alla classe può essere calcolata come il rapporto tra le occorrenze di una classe rispetto all'altra nel vicinato.

Consideriamo un esempio utilizzando l'algoritmo k-nearest neighbors. Supponiamo di avere un insieme di vicini e di voler determinare la probabilità di appartenenza alla classe per un esempio specifico. Se osserviamo che dei cinque vicini più vicini, tre appartengono alla Classe Zero e due appartengono alla Classe Uno, la probabilità di appartenenza alla Classe per la Classe Zero sarebbe calcolata come 3/5, che è 0,6, e per la Classe Uno come 2/5 , che è 0,4. Queste probabilità possono essere regolate in base a una soglia.

La soglia rappresenta il punto in cui prendiamo la decisione tra Classe Zero e Classe Uno. Ad esempio, se impostiamo la soglia a 0,5, qualsiasi probabilità superiore a 0,5 verrebbe classificata come Classe Uno e qualsiasi probabilità inferiore a 0,5 verrebbe classificata come Classe Zero. Nella regressione logistica, 0,5 è comunemente usato come soglia. Tuttavia, la soglia può essere arbitraria e dipende dai nostri obiettivi, se vogliamo ottimizzare per il tasso di veri positivi, il tasso di falsi positivi o qualsiasi altro criterio. La scelta della soglia include anche una regola di spareggio, come la selezione della classe inferiore in caso di pareggio.

La curva delle caratteristiche operative del ricevitore (ROC) illustra le prestazioni di un classificatore tracciando il tasso di veri positivi (TPR) sull'asse y e il tasso di falsi positivi (FPR) sull'asse x. Ad ogni punto della curva corrisponde un diverso valore di soglia. Modificando la soglia, possiamo osservare come le prestazioni del classificatore sono influenzate in termini di tasso di veri positivi e tasso di falsi positivi. La curva rappresenta la sensibilità del classificatore a diversi valori di soglia, consentendoci di analizzare il suo comportamento in modo completo.

In termini di accuratezza, di solito utilizziamo una soglia fissa, ad esempio 0,5, per determinare l'assegnazione della classe. Tuttavia, per la curva caratteristica operativa del ricevitore, esploriamo la sensibilità del classificatore modificando la soglia. In questo modo, possiamo valutare l'impatto delle diverse soglie sul tasso di falsi positivi e sul tasso di veri positivi. La curva mostra diversi punti corrispondenti a diverse soglie, come 0,3, 0,4, 0,5, 0,6 e così via. Ogni punto sulla curva rappresenta le prestazioni del classificatore per una soglia specifica.

Ora, approfondiamo il concetto di soglia e la sua relazione con la probabilità di appartenenza alla classe. In precedenza, abbiamo visto una figura che raffigurava una caratteristica sull'asse x e il limite decisionale spostato. Tuttavia, questa era solo un'astrazione per aiutare nella comprensione. In realtà, l'asse x rappresenta la probabilità di appartenenza alla classe.

Quindi, continuando da dove eravamo rimasti, spiegherò ulteriormente lo snippet di codice. Dopo aver calcolato le probabilità per la classe uno, utilizziamo la funzione roc_curve di scikit-learn per calcolare il tasso di falsi positivi (fpr) e il tasso di veri positivi (tpr) per diverse soglie. La funzione roc_curve accetta le etichette vere (y_true) e le probabilità previste (y_scores) come input e restituisce fpr, tpr e soglie.

Successivamente, usiamo la funzione roc_auc_score per calcolare l'area sotto la curva caratteristica operativa del ricevitore (AUC-ROC). Questa metrica fornisce un singolo valore che riepiloga le prestazioni del classificatore in tutte le possibili soglie. Un AUC-ROC più elevato indica migliori prestazioni di classificazione. Calcoliamo l'AUC-ROC per entrambi i set di addestramento e test separatamente.

Infine, tracciamo la curva ROC usando Matplotlib. Il grafico mostra la curva ROC per il set di allenamento in blu e il set di test in arancione. Aggiungiamo anche etichette e una legenda alla trama per una migliore interpretazione.

Visualizzando le curve ROC e calcolando l'AUC-ROC, possiamo valutare le prestazioni del classificatore e confrontarle tra i set di addestramento e di test. Se l'AUC-ROC è vicino a 1, indica un buon classificatore con un alto tasso di veri positivi e un basso tasso di falsi positivi. D'altra parte, un AUC-ROC vicino a 0,5 suggerisce un classificatore casuale o inefficace.

In sintesi, il frammento di codice dimostra come utilizzare la curva delle caratteristiche operative del ricevitore (ROC) e l'area sotto la curva (AUC) come metriche di valutazione per un problema di classificazione binaria. La curva ROC visualizza il compromesso tra il tasso di veri positivi e il tasso di falsi positivi a diverse soglie di previsione, mentre l'AUC-ROC fornisce un singolo valore per quantificare le prestazioni del classificatore.

12.4 Receiver Operating Characteristic (L12 Model Eval 5: Performance Metrics)
12.4 Receiver Operating Characteristic (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This video explains the concept behind receiver operating characteristic curves, relating it back to the concept of true and false positive rates.-------This...
 

12.5 Estensione della metrica binaria ai problemi multiclasse (Valutazione 5 del modello L12: Metriche delle prestazioni)


12.5 Estensione della metrica binaria ai problemi multiclasse (Valutazione 5 del modello L12: Metriche delle prestazioni)

In questa classe, abbiamo discusso vari classificatori che possono essere estesi per funzionare con impostazioni multi-classe. Gli alberi decisionali, i k-nearest neighbors, il gradient boosting, le foreste casuali e altri classificatori gestiscono naturalmente i problemi multiclasse. Tuttavia, potresti imbatterti in classificatori come la regressione logistica o macchine vettoriali di supporto che sono più adatte alla classificazione binaria. In tali casi, dobbiamo trovare modi per estendere questi classificatori binari per gestire più classi.

Un approccio è la strategia "uno contro riposo" o "uno contro tutti", nota anche come OvR o OvA. Questo approccio comporta la divisione del problema multiclasse in problemi di classificazione binaria separati. Ogni classe viene trattata come classe positiva in un classificatore binario, mentre le classi rimanenti vengono trattate come classe negativa. Ad esempio, se abbiamo tre classi (cerchi gialli, quadrati rossi e triangoli blu), creiamo tre classificatori binari: uno per classificare i cerchi gialli rispetto al resto, uno per i quadrati rossi rispetto al resto e uno per i triangoli blu rispetto al resto riposo. Durante l'allenamento, adattiamo tutti e tre i classificatori e durante la previsione, eseguiamo tutti e tre i classificatori e scegliamo quello con il punteggio di confidenza più alto.

Un altro approccio è la strategia "uno contro uno", in cui inseriamo un classificatore binario per ogni coppia di classi. Se abbiamo tre classi, avremmo tre classificatori binari: uno per classificare i cerchi gialli rispetto ai quadrati rossi, uno per i cerchi gialli rispetto ai triangoli blu e uno per i quadrati rossi rispetto ai triangoli blu. Durante la previsione, eseguiamo tutti i classificatori e utilizziamo il voto a maggioranza per determinare l'etichetta finale della classe.

Entrambe le strategie OvR e OvO ci consentono di estendere i classificatori binari per gestire problemi multiclasse. Tuttavia, OvO può essere computazionalmente costoso, soprattutto quando il numero di classi è elevato, poiché richiede l'adattamento di più classificatori.

Quando si valutano le prestazioni dei classificatori multiclasse, è necessario estendere le metriche di classificazione binaria per gestire più classi. Due approcci comuni per farlo sono la media micro e macro. La micro media comporta il calcolo della precisione, del richiamo e del punteggio F1 aggregando i veri positivi e i falsi positivi in tutte le classi. La media macro comporta il calcolo della precisione, del richiamo e del punteggio F1 per ciascuna classe separatamente e quindi la loro media. La micro media tratta ogni istanza o previsione allo stesso modo, mentre la macro media pondera tutte le classi allo stesso modo. Inoltre, esiste l'approccio ponderato, che considera lo squilibrio di classe tenendo conto del numero di istanze vere per ciascuna etichetta.

In scikit-learn, puoi specificare il metodo di calcolo della media (micro, macro o ponderato) quando utilizzi metriche di classificazione come precisione, richiamo e punteggio F1. Ad esempio, puoi utilizzare average='micro' o average='macro' per calcolare rispettivamente la metrica media micro o macro. C'è anche la caratteristica operativa del ricevitore (ROC) e il punteggio dell'area sotto la curva (AUC), che può essere calcolato utilizzando la funzione roc_auc_score. Il metodo di calcolo della media predefinito per ROC AUC è macro.

Affrontare lo squilibrio di classe è un'altra sfida nella classificazione multiclasse. Tecniche come il sovracampionamento e il sottocampionamento possono essere utilizzate per affrontare questo problema. La libreria squilibried-learn fornisce metodi aggiuntivi per gestire lo squilibrio delle classi ed è compatibile con scikit-learn.

Nel complesso, la valutazione del modello nella classificazione multiclasse comporta l'estensione dei classificatori binari, la scelta di metodi di media appropriati per le metriche di valutazione e la considerazione dello squilibrio di classe. Anche se non siamo riusciti a coprire tutti i dettagli in questa classe, ci sono risorse come la documentazione della libreria di apprendimento sbilanciato che forniscono maggiori informazioni su questi argomenti.

12.5 Extending Binary Metric to Multiclass Problems (L12 Model Eval 5: Performance Metrics)
12.5 Extending Binary Metric to Multiclass Problems (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This last video discusses how binary classifiers can be extended to multi-class settings. Then, it discusses how binary evaluation metrics, i.e., via micro- ...
 

13.0 Introduzione alla selezione delle funzioni (L13: Selezione delle funzioni)


13.0 Introduzione alla selezione delle funzioni (L13: Selezione delle funzioni)

Ciao a tutti! Spero che abbiate trascorso tutti un semestre produttivo e che abbiate acquisito preziose conoscenze da questo corso. Capisco che questo semestre sia stato piuttosto intenso per la maggior parte di noi, quindi non volevo aggiungere altro stress travolgendovi con contenuti aggiuntivi. Tuttavia, mi scuso per non essere in grado di trattare alcuni argomenti come promesso nel programma. Per rimediare, ho preparato alcune lezioni bonus durante la pausa invernale, a partire da oggi.

In questa serie di video, mi concentrerò sulla riduzione della dimensionalità, in particolare su due metodi: selezione delle caratteristiche ed estrazione delle caratteristiche. Queste tecniche sono incredibilmente utili e importanti da capire. Nella conferenza di oggi, ci immergeremo nella selezione delle funzionalità, esplorando come funziona, perché è essenziale e le sue applicazioni pratiche. Nella prossima serie di video tratteremo l'estrazione di funzionalità come approccio alternativo.

Prima di approfondire le specifiche della selezione delle funzionalità e dell'estrazione delle funzionalità, discutiamo brevemente il concetto di riduzione della dimensionalità e perché è significativo. La riduzione della dimensionalità mira a ridurre il numero di caratteristiche in un set di dati. Ad esempio, considera il noto set di dati Iris, che consiste in quattro caratteristiche: lunghezza del sepalo, larghezza del sepalo, lunghezza del petalo e larghezza del petalo. Nella selezione delle caratteristiche, scegliamo un sottoinsieme di queste caratteristiche, come la larghezza del sepalo e la lunghezza del petalo, da utilizzare nei nostri algoritmi di apprendimento automatico. D'altra parte, l'estrazione delle caratteristiche implica la creazione di nuove caratteristiche attraverso tecniche come le trasformazioni lineari. L'analisi dei componenti principali (PCA) è uno di questi metodi che combina più funzionalità in uno spazio di funzionalità più piccolo.

In questa serie di conferenze, il nostro obiettivo principale è la selezione delle funzionalità, in cui selezioniamo le funzionalità originali dal set di dati. La riduzione della dimensionalità, in generale, comporta la creazione di spazi di funzionalità più piccoli. Ora, perché ci preoccupiamo di questi spazi delle caratteristiche dimensionali più piccoli? Esploriamo alcuni motivi:

  1. Maledizione della dimensionalità: i classificatori di machine learning spesso faticano con l'aumentare del numero di funzionalità. Possono soffrire di overfitting, in particolare algoritmi come K-nearest neighbors e alberi decisionali. La riduzione del set di funzionalità può migliorare le prestazioni di tali algoritmi.

  2. Efficienza computazionale: i set di dati di grandi dimensioni con numerose funzionalità possono essere computazionalmente costosi da elaborare. Riducendo il set di funzionalità, possiamo migliorare le prestazioni computazionali senza sacrificare le prestazioni predittive.

  3. Raccolta dati più semplice: a volte, un sottoinsieme di funzionalità più semplice può produrre prestazioni simili rispetto a un sottoinsieme di funzionalità più ampio. Ciò può rendere la raccolta dei dati più semplice ed economica, poiché la raccolta di determinate funzionalità può essere più economica o più accessibile.

  4. Spazio di archiviazione: l'archiviazione di grandi quantità di dati può essere impegnativa e costosa. Le tecniche di estrazione e selezione delle caratteristiche aiutano a ridurre la dimensionalità dei dati, rendendo l'archiviazione più fattibile ed efficiente.

  5. Interpretabilità: la comprensione delle funzionalità può aiutare a interpretare complessi algoritmi di apprendimento automatico. È particolarmente cruciale nei domini in cui sono richieste spiegazioni, come le richieste di carte di credito dei clienti, in cui i clienti hanno il diritto di conoscere la base delle decisioni prese dai sistemi automatizzati.

Per riassumere, la riduzione della dimensionalità può essere suddivisa in due sottoproblemi: selezione delle caratteristiche ed estrazione delle caratteristiche. Nella conferenza di oggi, ci concentreremo sulla selezione delle funzionalità. Nella prossima lezione, discuteremo l'estrazione delle caratteristiche in modo più dettagliato.

Per illustrare l'importanza della selezione delle caratteristiche, permettetemi di condividere un esempio tratto da un progetto di collaborazione con biochimici che studiano il pesce lampreda di mare. L'obiettivo era trovare un inibitore del recettore mon federale per controllare la popolazione di lamprede di mare nei Grandi Laghi. Abbiamo usato la selezione delle caratteristiche per capire quali caratteristiche molecolari erano cruciali. Valutando le prestazioni di diversi sottoinsiemi di funzionalità utilizzando un classificatore di apprendimento automatico, abbiamo scoperto che alcune semplici funzionalità, come il numero di ossigeni di zolfo, erano altamente informative. L'aggiunta di più funzionalità non ha migliorato significativamente le prestazioni, indicando che queste semplici funzionalità erano le più importanti per il nostro compito di classificazione. Questa conoscenza ci ha guidato nello screening di milioni di molecole e alla fine nel trovare un composto che mostrasse una promettente inibizione.

Nel segnale feromone di una percentuale significativa utilizzando solo le caratteristiche selezionate. Questo esempio dimostra il potere della selezione delle funzionalità nell'identificare i componenti o le caratteristiche chiave che contribuiscono al risultato desiderato.

Ora, approfondiamo la selezione delle funzionalità e la sua rilevanza. La selezione delle caratteristiche è una sottocategoria della riduzione della dimensionalità, che mira a ridurre il numero di caratteristiche o variabili in un set di dati conservando informazioni pertinenti e significative. L'obiettivo finale è semplificare il set di dati e migliorare l'efficienza computazionale, l'interpretabilità e le prestazioni predittive.

Esistono diversi motivi per cui la selezione delle funzionalità è importante e vantaggiosa. In primo luogo, la maledizione della dimensionalità rappresenta una sfida per l'apprendimento automatico. Con l'aumentare del numero di funzionalità, alcuni algoritmi potrebbero subire una diminuzione delle prestazioni o diventare più inclini all'overfitting. Riducendo il set di funzionalità, possiamo mitigare questi problemi e migliorare l'accuratezza e l'affidabilità dei modelli, in particolare per algoritmi come K-nearest neighbors e alberi decisionali.

In secondo luogo, l'efficienza computazionale è una considerazione importante quando si ha a che fare con set di dati di grandi dimensioni. Il costo computazionale dell'addestramento e del test dei modelli di machine learning aumenta con il numero di funzionalità. Selezionando un sottoinsieme di funzionalità pertinenti, possiamo ridurre il carico computazionale e accelerare il processo senza sacrificare le prestazioni.

Inoltre, la selezione delle funzioni consente una più facile raccolta dei dati. A volte, un sottoinsieme semplificato di funzionalità può fornire prestazioni predittive simili rispetto a un set di funzionalità più ampio. Ciò è particolarmente utile quando la raccolta dei dati diventa impegnativa o costosa. Ad esempio, nel contesto della diagnosi medica, l'identificazione di caratteristiche facilmente ottenibili che producono comunque risultati accurati può far risparmiare risorse e rendere il processo più accessibile ai pazienti.

Inoltre, la selezione delle funzionalità aiuta nell'ottimizzazione dello spazio di archiviazione. Con la crescita esponenziale della generazione di dati, l'archiviazione e la gestione di grandi set di dati diventa una preoccupazione significativa. Selezionando le funzionalità pertinenti, possiamo ridurre i requisiti di archiviazione senza compromettere le prestazioni complessive o le informazioni ottenute dai dati.

Inoltre, l'interpretabilità gioca un ruolo cruciale, soprattutto quando si ha a che fare con sistemi automatizzati o domini regolamentati. La selezione delle caratteristiche aiuta a identificare le caratteristiche più influenti e interpretabili, consentendo una migliore comprensione e spiegazione del processo decisionale. In contesti in cui i requisiti legali o etici richiedono spiegazioni per le decisioni, la selezione delle funzionalità può facilitare la conformità e la responsabilità.

Per riassumere, la riduzione della dimensionalità, in particolare la selezione delle caratteristiche, offre numerosi vantaggi in vari domini. Selezionando le caratteristiche più informative, possiamo mitigare la maledizione della dimensionalità, migliorare l'efficienza computazionale, semplificare la raccolta dei dati, ottimizzare lo spazio di archiviazione e migliorare l'interpretabilità. Questi vantaggi contribuiscono a modelli di machine learning più accurati ed efficienti e consentono una comprensione più profonda di problemi complessi.

Nelle prossime lezioni, esploreremo l'estrazione delle caratteristiche come un'altra tecnica di riduzione della dimensionalità. L'estrazione delle funzionalità comporta la trasformazione delle funzionalità originali in un nuovo set di funzionalità attraverso metodi come l'analisi dei componenti principali (PCA). Questo processo ci consente di acquisire informazioni rilevanti riducendo la dimensionalità. Comprendendo sia la selezione delle funzionalità che l'estrazione delle funzionalità, possiamo sfruttare la tecnica appropriata in base alle caratteristiche e ai requisiti specifici del set di dati e del problema in questione.

Quindi, nella prossima lezione, approfondiremo l'estrazione di funzionalità ed esploreremo le sue tecniche, vantaggi e applicazioni. Resta sintonizzato mentre continuiamo il nostro viaggio attraverso l'affascinante mondo della riduzione della dimensionalità e il suo impatto sull'apprendimento automatico.

13.0 Introduction to Feature Selection (L13: Feature Selection)
13.0 Introduction to Feature Selection (L13: Feature Selection)
  • 2021.12.08
  • www.youtube.com
This video gives a brief intro of how we care about dimensionality reduction and introduces feature selection as a subcategory that we will cover in more det...
 

13.1 Le diverse categorie di selezione delle caratteristiche (L13: Selezione delle caratteristiche)


13.1 Le diverse categorie di selezione delle caratteristiche (L13: Selezione delle caratteristiche)

Nel video precedente, abbiamo esplorato il concetto di selezione delle caratteristiche come sottocategoria della riduzione della dimensionalità. La selezione delle funzionalità comporta la selezione di sottoinsiemi di funzionalità da un set di dati per migliorare le prestazioni dei modelli di machine learning. Abbiamo discusso varie motivazioni per la selezione delle funzionalità, come il miglioramento delle prestazioni predittive e dell'efficienza computazionale, l'ottimizzazione dello spazio di archiviazione e l'acquisizione di informazioni dettagliate sui dati.

Ora, approfondiamo le diverse categorie di algoritmi di selezione delle funzionalità: metodi filtro, metodi incorporati e metodi wrapper. I metodi di filtro si concentrano sulle proprietà intrinseche delle funzionalità stesse e non coinvolgono un modello o un classificatore. Analizzano le funzionalità in base alle loro caratteristiche individuali, come la varianza o le correlazioni a coppie. Ad esempio, il calcolo della varianza di una caratteristica aiuta a determinarne l'utilità per distinguere tra diversi esempi di addestramento. Se i valori della caratteristica sono distribuiti lungo l'asse, ne indica l'importanza. D'altra parte, caratteristiche altamente correlate suggeriscono ridondanza e una di esse può essere eliminata senza perdere molte informazioni. I metodi di filtro sono spesso indicati come statistiche univariate o bivariate, in quanto analizzano variabili singole o coppie.

I metodi incorporati, come suggerisce il nome, incorporano la selezione delle caratteristiche all'interno dell'algoritmo di apprendimento. Questi metodi sono incorporati nel processo di ottimizzazione del modello e mirano a ottimizzare la funzione obiettivo. Un esempio sono gli alberi decisionali, in cui le funzionalità vengono selezionate internamente durante la crescita dell'albero. L'albero decisionale sceglie la caratteristica che massimizza il guadagno di informazioni ad ogni divisione, determinando la selezione di caratteristiche importanti. Le caratteristiche non utilizzate nell'albero decisionale finale possono essere considerate meno importanti.

I metodi wrapper sono strettamente allineati con l'obiettivo di ottimizzare le prestazioni predittive. Questi metodi comportano l'adattamento di un modello a diversi sottoinsiemi di funzionalità e la selezione o l'eliminazione di funzionalità in base alle prestazioni del modello. Confrontando le prestazioni dei modelli addestrati su diversi sottoinsiemi di funzionalità, possiamo determinare l'importanza di ciascuna funzionalità. Ad esempio, se la rimozione di una funzione porta a un calo significativo della precisione, suggerisce che la funzione è importante per le prestazioni del modello. I metodi wrapper forniscono preziose informazioni sull'importanza delle funzionalità utilizzando direttamente l'accuratezza del modello.

Sebbene i metodi wrapper offrano un'accurata selezione delle funzionalità, possono essere computazionalmente costosi, soprattutto quando si tratta di set di funzionalità di grandi dimensioni. Il processo di adattamento dei modelli a diversi sottoinsiemi e di valutazione delle loro prestazioni può richiedere molto tempo. Al contrario, i metodi filtro sono computazionalmente più efficienti, ma potrebbero non fornire risultati accurati come i metodi wrapper. Il compromesso tra accuratezza ed efficienza computazionale è una considerazione cruciale nella selezione delle caratteristiche.

Nei prossimi video, approfondiremo ciascuna categoria di algoritmi di selezione delle funzionalità. Esploreremo i metodi di filtro in modo più dettagliato, seguiti da metodi incorporati e metodi wrapper. Comprendendo queste tecniche, possiamo ottenere una comprensione completa della selezione delle funzionalità e di come può essere applicata per migliorare i modelli di machine learning.

Resta sintonizzato per il prossimo video, in cui parleremo approfonditamente dei metodi di filtraggio.

13.1 The Different Categories of Feature Selection (L13: Feature Selection)
13.1 The Different Categories of Feature Selection (L13: Feature Selection)
  • 2021.12.09
  • www.youtube.com
In this video, I am introducing the three main categories of feature selection: filter methods, embedded methods, and wrapper methods.Slides: https://sebasti...