Techniques d'imputation | Quels sont les types de techniques d'imputation?

Contenu

Cet article a été publié dans le cadre du Blogathon sur la science des données

L'imputation est une technique utilisée pour remplacer les données manquantes par une valeur de substitution afin de conserver la plupart des données / informations sur l'ensemble de données. Estas técnicas se utilizan porque eliminar los datos del conjunto de datos cada vez no es factible y puede conducir a una reducción en el tamaño del conjunto de datos en gran mesure, ce qui soulève non seulement des inquiétudes quant au biais de l'ensemble de données, cela conduit également à une analyse incorrecte.

63685imputation-9732974
Figure 1: Imputation
La source: créé par l'auteur

Je ne sais pas quelles données sont manquantes? Comment ça se passe? Et ton genre? Jetez un oeil ICI pour en savoir plus.

Comprenons le concept d'imputation de la figure {Figure 1} antérieur. Dans l'image ci-dessus, J'ai essayé de représenter les données manquantes dans le tableau de gauche (marqué en rouge) et en utilisant des techniques d'imputation, nous avons complété l'ensemble de données manquantes dans le tableau de droite (marqué en jaune), sans réduire la taille réelle de l'ensemble de données. Si nous réalisons ici, nous avons augmenté la taille de la colonne, ce qui est possible dans l'imputation (ajout de l'imputation de catégorie “Manque”).

Pourquoi l'imputation est-elle importante?

Ensuite, après avoir connu la définition de l'imputation, la question suivante est pourquoi devrions-nous l'utiliser et que se passerait-il si je ne l'utilise pas?

C'est parti avec les réponses aux questions précédentes.

Nous utilisons l'imputation parce que les données manquantes peuvent causer les problèmes suivants: –

  1. Incompatible avec la plupart des bibliothèques Python utilisées en Machine Learning: – Oui, tu lis bien. Lors de l'utilisation des bibliothèques pour le ML (le plus courant est skLearn), n'ont pas de disposition pour traiter automatiquement ces données manquantes et peuvent générer des erreurs.
  2. Distorsion dans l'ensemble de données: – Una gran cantidad de datos faltantes puede causar distorsiones en la distribución de la variable, c'est-à-dire, peut augmenter ou diminuer la valeur d'une catégorie particulière dans l'ensemble de données.
  3. Affecte le modèle final: – les données manquantes peuvent entraîner un biais dans l'ensemble de données et peuvent conduire à une analyse erronée par le modèle.

Une autre raison et la plus importante est “Nous voulons restaurer l'ensemble de données complet”. Cela se produit principalement dans le cas où nous ne voulons pas perdre (plus) les données de notre jeu de données, puisque tout est important et, en second lieu, la taille de l'ensemble de données n'est pas très importante et en supprimer une partie peut avoir un impact significatif. dans le modèle final.

Excellent..!! nous avons quelques notions de base sur les données manquantes et l'imputation. À présent, Jetons un coup d'œil aux différentes techniques d'imputation et comparons-les. Mais avant de se lancer, nous devons connaître les types de données dans notre ensemble de données.

Cela semble étrange..!!! Ne vous inquiétez pas... La plupart des données proviennent de 4 les types: – Numérique, Catégorique, Date-heure et Mixte. Ces noms sont explicites, donc ils ne creusent pas beaucoup ou ne les décrivent pas.

28513types20de20données-7056604

Figure 2: – Type de données
La source: créé par l'auteur

Techniques d'imputation

Passons aux points saillants de cet article … Techniques utilisées en imputation …

30381imputation20techniques20types-6102120

Figure 3: – Techniques d'imputation
La source: créé par l'auteur

Noter: – Ici, je me concentrerai uniquement sur l'imputation mixte, numérique et catégoriel. La date et l'heure feront partie du prochain article.

1. Analyse complète du cas (ACC): –

C'est une méthode assez simple pour gérer les données manquantes, qui supprime directement les lignes qui ont des données manquantes, c'est-à-dire, nous ne considérons que les lignes dans lesquelles nous avons des données complètes, c'est-à-dire, aucune donnée manquante. Cette méthode est également connue sous le nom de “supprimer par liste”.

  • Hypothèses: –
    • Des données aléatoires sont manquantes (MAR).
    • Les données manquantes sont complètement supprimées de la table.
  • avantage: –
    • Facile à mettre en œuvre.
    • Aucune manipulation de données requise.
  • Limites: –
    • Les données supprimées peuvent être informatives.
    • Cela peut entraîner la suppression d'une grande partie des données.
    • Vous pouvez créer un biais dans l'ensemble de données, si une grande quantité d'un type particulier de variable est supprimée.
    • Le modèle de production ne saura pas quoi faire des données manquantes.
  • Quand utiliser:-
    • Les données sont MAR (Manquant au hasard).
    • Bon pour les données mixtes, numérique et catégoriel.
    • Les données manquantes ne sont pas plus de 5% à 6% de l'ensemble de données.
    • Les données ne contiennent pas beaucoup d'informations et ne fausseront pas l'ensemble de données.
  • Code:-
## Pour vérifier la forme de l'ensemble de données d'origine
train_df.shape
## Sortir (614 Lignes & 13 Colonnes)
(614,13)
## Trouver les colonnes qui ont des valeurs nulles(Données manquantes) 
## Nous utilisons une boucle for pour toutes les colonnes présentes dans l'ensemble de données avec des valeurs nulles moyennes supérieures à 0
na_variables = [ var pour var dans train_df.columns si train_df[où].est nul().moyenne() > 0 ]

## Sortie des noms de colonnes avec des valeurs nulles
['Genre','Marié',« personnes à charge »,'Travailleur indépendant','Montant du prêt',« Loan_Amount_Term »,'Histoire de credit']

## On peut aussi voir les valeurs nulles moyennes présentes dans ces colonnes {Montré dans l'image ci-dessous}
data_na = trainf_df[na_variables].est nul (). moyenne ()

## Mise en œuvre des techniques CCA pour supprimer les données manquantes
data_cca = train_df(axe=0)  ### axis=0 est utilisé pour spécifier les lignes
## Vérification de la forme finale de l'ensemble de données restant
data_cca.shape
## Sortir (480 Lignes & 13 Colonnes)
(480,13)
60570cca-5010229

Chiffre 3: – ACC
La source: Créé par l'auteur

Ici, nous pouvons voir, l'ensemble de données avait initialement 614 rangées et 13 Colonnes, desquelles 7 les lignes avaient des données manquantes(variables_variables), ses rangées du milieu manquantes sont indiquées par data_na. Nous avons observé que, à part et , ont tous une moyenne inférieure à 5%. Ensuite, selon le CCA, nous supprimons les lignes avec des données manquantes, qui a abouti à un ensemble de données avec seulement 480 Lignes. Ici vous pouvez voir autour de la 20% de la réduction des données, ce qui peut causer beaucoup de problèmes à l'avenir.

2. Imputation de valeur arbitraire

Il s'agit d'une technique importante utilisée dans l'imputation, car il peut gérer à la fois des variables numériques et catégorielles. Cette technique indique que nous regroupons les valeurs manquantes dans une colonne et les affectons à une nouvelle valeur qui est loin de la plage de cette colonne. En général, nous utilisons des valeurs comme 99999999 O -9999999 O “Manque” O “Non défini” pour les variables numériques et catégorielles.

  • Hypothèses: –
    • Les données ne manquent pas au hasard.
    • Les données manquantes sont imputées avec une valeur arbitraire qui ne fait pas partie de l'ensemble de données ou de la moyenne / médian / mode de données.
  • avantage: –
    • Facile à mettre en œuvre.
    • Nous pouvons l'utiliser en production.
    • Préserve l'importance de “valeurs manquantes” s'il existe.
  • Désavantages: –
    • Vous pouvez fausser la distribution de la variable d'origine.
    • Les valeurs arbitraires peuvent créer des valeurs aberrantes.
    • Une prudence supplémentaire est requise lors de la sélection de la valeur arbitraire.
  • Quand utiliser:-
    • Lorsque les données ne sont pas MAR (Manquant au hasard).
    • convient à tous.
  • Code:-
## Trouver les colonnes qui ont des valeurs nulles(Données manquantes) 
## Nous utilisons une boucle for pour toutes les colonnes présentes dans l'ensemble de données avec des valeurs nulles moyennes supérieures à 0
na_variables = [ var pour var dans train_df.columns si train_df[où].est nul().moyenne() > 0 ]

## Sortie des noms de colonnes avec des valeurs nulles
['Genre','Marié',« personnes à charge »,'Travailleur indépendant','Montant du prêt',« Loan_Amount_Term »,'Histoire de credit']
## Utilisez la colonne Sexe pour trouver les valeurs uniques dans la colonne
train_df['Genre'].unique()
## Sortir
déployer(['Homme','Femelle',dans])
## Ici, nan représente les données manquantes
## Utilisation de la technique d'imputation arbitraire, nous imputerons le genre manquant avec "Disparu"  {Vous pouvez également utiliser n'importe quelle autre valeur}
arb_impute = train_df['Genre'].remplir('Disparu')
arb.impute.unique()
## Sortir
déployer(['Homme','Femelle','Disparu'])
42392aimpu-8485782

Figure 4: – Imputation arbitraire
La source: créé par l'auteur

On peut voir ici la colonne Genre J'avais 2 valeurs uniques {'Homme Femme'} et quelques valeurs manquantes {dans}. Lors de l'utilisation de l'imputation arbitraire, nous remplissons les valeurs de {dans} dans cette colonne avec {disparu}, pour ce que vous obtenez 3 valeurs uniques pour la variable « Sexe ».

3. Imputation par catégorie fréquente

Cette technique dit de remplacer la valeur manquante par la variable avec la fréquence la plus élevée ou en mots simples en remplaçant les valeurs par le Mode de cette colonne. Cette technique est également connue sous le nom de Mode d'imputation.

  • Hypothèses: –
    • Des données aléatoires sont manquantes.
    • Il y a une forte probabilité que les données manquantes ressemblent à la plupart des données.
  • avantage: –
    • La mise en œuvre est simple.
    • Nous pouvons obtenir un ensemble de données complet en très peu de temps.
    • Nous pouvons utiliser cette technique dans le modèle de production.
  • Désavantages: –
    • Plus le pourcentage de valeurs manquantes est élevé, plus la distorsion est grande.
    • Peut conduire à une surreprésentation d'une catégorie particulière.
    • Vous pouvez fausser la distribution de la variable d'origine.
  • Quand utiliser:-
    • Des données aléatoires sont manquantes (MAR)
    • Les données manquantes ne sont pas plus de 5% à 6% de l'ensemble de données.
  • Code:-
## trouver le nombre de valeurs uniques dans le genre
train_df['Genre'].par groupe(train_df['Genre']).compter()
## Sortir (489 Homme & 112 Femelle)
Homme 489
Femelle 112
## Le mâle a la fréquence la plus élevée. On peut aussi le faire en vérifiant le mode
train_df['Genre'].mode()
## Sortir
Homme
## Utilisation de l'imputeur de catégorie fréquente
frq_impute = train_df['Genre'].remplir('Homme')
frq_impute.unique()
## Sortir
déployer(['Homme','Femelle'])
22828fre20impu-6110399

Figure 4: – Imputation par catégorie fréquente
La source: créé par l'auteur

On note ici que “Masculin” était la catégorie la plus fréquente, nous l'utilisons donc pour remplacer les données manquantes. Maintenant, nous sommes laissés seuls 2 catégories, c'est-à-dire, masculin et féminin.

Donc, on voit que chaque technique a ses avantages et ses inconvénients, et cela dépend de l'ensemble de données et de la situation pour laquelle les différentes techniques que nous allons utiliser.

C'est tout d'ici …

Jusque là, este es Shashank Singhal, un passionné de Big Data et de science des données.

Bon apprentissage ...

Si vous avez aimé mon article vous pouvez me suivre ICI

Profil LinkedIn:- www.linkedin.com/in/shashank-singhal-1806

Noter: – Toutes les images utilisées ci-dessus ont été créées par moi (Auteur).

Les médias présentés dans cet article ne sont pas la propriété de DataPeaker et sont utilisés à la discrétion de l'auteur.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.