I pregi, i difetti e gli aspetti negativi di Pd.Get_Dummies
Pd.Get_Dummies pros, cons, and negatives.
Questo è per gli appassionati di pd.get_dummies
Ciao a tutti 🤠
Okay, ho capito. Uno dei modi più semplici per convertire una variabile categorica in un array di variabili dummy in Python è con il metodo pd.get_dummies()
di Pandas. Perché perdere tempo importando OneHotEncoder
da sklearn, eseguendo un .fit_transform()
eccetera, eccetera, eccetera? Parliamo di noia!
In questo articolo verrà prima introdotto un semplice set di dati a scopo dimostrativo che consiste in un set di test che contiene variabili categoriche non presenti nel set di addestramento. Successivamente, verrà dimostrato come l’utilizzo di pd.get_dummies()
possa causare problemi con i dati dimostrativi. E infine, mostrerà come evitare tale problema con OneHotEncoder
di sklearn.

Un set di dati semplice per la dimostrazione
Ecco un semplice set di dati che include una variabile categorica chiamata OS. La colonna OS elenca i sistemi operativi dei computer. Utilizzeremo questi dati fittizi a scopo dimostrativo. In train_df
ci saranno i dati di addestramento di dimostrazione fittizi. Mentre in test_df
avremo i dati di test di dimostrazione fittizi.
- Cohere presenta Coral un assistente di conoscenza per le aziende che desiderano migliorare la produttività dei loro team più strategici.
- Ricercatori UBC Canada Introducono un Nuovo Algoritmo di IA Che Mappa Percorsi Più Sicuri per gli Automobilisti in Città
- Come orientarsi nel mercato attuale del lavoro nel campo della Data Science
Nel nostro caso di dimostrazione fittizio, il set di test contiene valori categorici non presenti nel set di addestramento. Questa discrepanza causerà dei problemi.
import pandas as pdtrain_df = pd.DataFrame({'OS': ['Windows', 'MacOS', 'Linux', 'Windows', 'MacOS']})test_df = pd.DataFrame({'OS': ['Windows', 'MacOS', 'Android', 'Unix' 'iOS']})
Nel nostro set di dati di addestramento, abbiamo tre sistemi operativi: Windows, MacOS e Linux. Ma nel nostro set di dati di test, abbiamo le categorie aggiuntive tra cui Android, Unix e iOS.
Un modello addestrato su train_df.get_dummies()
non funzionerà con i dati di test da test_df.get_dummies()
. I risultati non corrispondono.

Il problema con pd.get_dummies()
Quando si applica la funzione pd.get_dummies()
sia ai dati di addestramento che ai dati di test, ecco cosa otterrete.