Régression logistique en Python - Préparation des données

Pour créer le classificateur, nous devons préparer les données dans un format demandé par le module de construction du classificateur. Nous préparons les données en faisantOne Hot Encoding.

Codage des données

Nous discuterons brièvement de ce que nous entendons par encodage des données. Tout d'abord, exécutons le code. Exécutez la commande suivante dans la fenêtre de code.

In [10]: # creating one hot encoding of the categorical columns.
data = pd.get_dummies(df, columns =['job', 'marital', 'default', 'housing', 'loan', 'poutcome'])

Comme le dit le commentaire, l'instruction ci-dessus créera le seul encodage à chaud des données. Voyons ce que cela a créé? Examinez les données créées appelées“data” en imprimant les enregistrements de tête dans la base de données.

In [11]: data.head()

Vous verrez la sortie suivante -

Pour comprendre les données ci-dessus, nous allons lister les noms de colonnes en exécutant le data.columns commande comme indiqué ci-dessous -

In [12]: data.columns
Out[12]: Index(['y', 'job_admin.', 'job_blue-collar', 'job_entrepreneur',
'job_housemaid', 'job_management', 'job_retired', 'job_self-employed', 
'job_services', 'job_student', 'job_technician', 'job_unemployed',
'job_unknown', 'marital_divorced', 'marital_married', 'marital_single', 
'marital_unknown', 'default_no', 'default_unknown', 'default_yes', 
'housing_no', 'housing_unknown', 'housing_yes', 'loan_no',
'loan_unknown', 'loan_yes', 'poutcome_failure', 'poutcome_nonexistent', 
'poutcome_success'], dtype='object')

Maintenant, nous allons expliquer comment le seul encodage à chaud est effectué par le get_dummiescommander. La première colonne de la base de données nouvellement générée est le champ «y» qui indique si ce client s'est abonné à un TD ou non. Maintenant, regardons les colonnes qui sont encodées. La première colonne encodée est“job”. Dans la base de données, vous constaterez que la colonne «emploi» a de nombreuses valeurs possibles telles que «admin», «cols bleus», «entrepreneur», etc. Pour chaque valeur possible, nous avons une nouvelle colonne créée dans la base de données, avec le nom de la colonne ajouté comme préfixe.

Ainsi, nous avons des colonnes appelées «job_admin», «job_blue-necklace», et ainsi de suite. Pour chaque champ encodé dans notre base de données d'origine, vous trouverez une liste de colonnes ajoutées dans la base de données créée avec toutes les valeurs possibles que la colonne prend dans la base de données d'origine. Examinez attentivement la liste des colonnes pour comprendre comment les données sont mappées à une nouvelle base de données.

Comprendre le mappage de données

Pour comprendre les données générées, imprimons toutes les données à l'aide de la commande data. La sortie partielle après l'exécution de la commande est indiquée ci-dessous.

In [13]: data

L'écran ci-dessus montre les douze premières lignes. Si vous faites défiler vers le bas, vous verrez que le mappage est effectué pour toutes les lignes.

Une sortie d'écran partielle plus bas dans la base de données est affichée ici pour votre référence rapide.

Pour comprendre les données mappées, examinons la première ligne.

Il indique que ce client ne s'est pas abonné à TD comme indiqué par la valeur dans le champ «y». Il indique également que ce client est un client «cols bleus». En défilant horizontalement, il vous indiquera qu'il a un «logement» et n'a pris aucun «prêt».

Après cet encodage à chaud, nous avons besoin d'un traitement supplémentaire des données avant de pouvoir commencer à construire notre modèle.

Laisser tomber «l'inconnu»

Si nous examinons les colonnes de la base de données mappée, vous trouverez la présence de quelques colonnes se terminant par «inconnu». Par exemple, examinez la colonne à l'index 12 avec la commande suivante affichée dans la capture d'écran -

In [14]: data.columns[12]
Out[14]: 'job_unknown'

Cela indique que le travail du client spécifié est inconnu. De toute évidence, il ne sert à rien d'inclure de telles colonnes dans notre analyse et la construction de modèles. Ainsi, toutes les colonnes avec la valeur «inconnue» doivent être supprimées. Ceci est fait avec la commande suivante -

In [15]: data.drop(data.columns[[12, 16, 18, 21, 24]], axis=1, inplace=True)

Assurez-vous de spécifier les bons numéros de colonne. En cas de doute, vous pouvez à tout moment examiner le nom de la colonne en spécifiant son index dans la commande colonnes comme décrit précédemment.

Après avoir supprimé les colonnes indésirables, vous pouvez examiner la liste finale des colonnes comme indiqué dans la sortie ci-dessous -

In [16]: data.columns
Out[16]: Index(['y', 'job_admin.', 'job_blue-collar', 'job_entrepreneur', 
'job_housemaid', 'job_management', 'job_retired', 'job_self-employed', 
'job_services', 'job_student', 'job_technician', 'job_unemployed',
'marital_divorced', 'marital_married', 'marital_single', 'default_no', 
'default_yes', 'housing_no', 'housing_yes', 'loan_no', 'loan_yes',
'poutcome_failure', 'poutcome_nonexistent', 'poutcome_success'], 
dtype='object')

À ce stade, nos données sont prêtes pour la création de modèles.