nbsynthetic : Une bibliothèque Python simple et robuste pour la génération de données tabulaires synthétiques non supervisées
NextBrain.ai présente nbsynthetic, un projet open-source qui vise à fournir une solution simple et stable pour la génération de données tabulaires synthétiques non supervisées utilisant une architecture de Réseau Adversarial Génératif (GAN) basée sur Keras.
Conçu pour la simplicité et la robustesse, nbsynthetic utilise une architecture GAN non supervisée simple et stable construite avec Keras. Le réglage spécifique des hyperparamètres garantit la stabilité de l'entraînement tout en minimisant les coûts computationnels.
Avantages de nbsynthetic
- Aucun objectif prédéfini requis : En tant qu'architecture non supervisée, nbsynthetic élimine le besoin pour les utilisateurs d'avoir un objectif prédéfini.
- Idéal pour les petits ensembles de données : Il est principalement destiné aux petits ensembles de données contenant à la fois des caractéristiques continues et catégorielles.
- Compatibilité CPU : En raison de sa simplicité, les modèles peuvent être exécutés sur un CPU.
- Préparation de données pratique : La bibliothèque comprend des modules pour une préparation rapide des données d'entrée et de l'ingénierie des caractéristiques.
- Tests statistiques et comparaison : nbsynthetic fournit des modules pour effectuer des tests statistiques et comparer des données réelles et synthétiques, en utilisant le test statistique Maximum Mean Discrepancy (MMD). Ce test mesure la distance entre les moyennes de deux échantillons mappés dans un espace de Hilbert à noyau reproduisant (RKHS).
- Utilitaires de traçage : Des utilitaires de traçage sont inclus pour comparer les distributions de probabilité des données originales et synthétiques.
L'importance de la génération de données synthétiques tabulaires Alors que la génération de données synthétiques a gagné en popularité dans des applications comme la génération d'images et de discours, le développement de données tabulaires synthétiques a été moins ambitieux. Cependant, les données tabulaires sont le type de données le plus courant dans le monde et ont des implications significatives pour des secteurs tels que les véhicules autonomes, la santé et les services financiers. Les données tabulaires synthétiques peuvent répondre aux préoccupations de confidentialité dans l'industrie de la santé, simuler des ensembles de données génomiques synthétiques et faciliter des projets de recherche impliquant des dossiers médicaux de patients.
Autonomiser les utilisateurs de tableurs Chaque jour, près de 700 millions de personnes utilisent des tableurs pour travailler avec de petits échantillons de données tabulaires. Cependant, ces ensembles de données sont souvent considérés comme de mauvaise qualité en raison d'incomplétudes ou d'un manque de signification statistique. Les techniques de Machine Learning, comme les GANs, peuvent offrir des informations précieuses et des capacités de prise de décision pour de telles applications. Malheureusement, les avancées actuelles en ML se concentrent principalement sur de grands ensembles de données, excluant un nombre significatif d'utilisateurs potentiels qui travaillent avec de petits ensembles de données. De plus, la fiabilité des algorithmes de ML appliqués à des données de petite taille d'échantillon est une préoccupation dans les statistiques modernes.
Un nouveau GAN tabulaire
S'attaquer aux limitations des GANs La technologie de base derrière nbsynthetic est le Réseau Adversarial Génératif (GAN). Les GANs consistent en deux réseaux neuronaux, le générateur et le discriminateur, qui s'affrontent. Entraîner les deux modèles simultanément peut entraîner une instabilité et un effondrement des modes. Pour résoudre ces problèmes, nbsynthetic adopte une approche de GAN non conditionnel. Cette configuration est assez polyvalente pour les utilisateurs actifs de tableurs qui peuvent vouloir faire des prédictions sur différentes caractéristiques.
Construire un GAN simple et robuste avec nbsynthetic Pour garantir un GAN non supervisé simple et robuste, nbsynthetic intègre les considérations suivantes :
- Initialisation : L'initialisation aléatoire des poids et la Normalisation par lot sont utilisés pour briser la symétrie et stabiliser l'apprentissage.
- Convergence : Au lieu d'utiliser des réseaux de convolution, nbsynthetic adopte une architecture simple et dense adaptée aux données tabulaires de petite taille d'échantillon.
- Fonctions d'activation : LeakyReLU est utilisé pour les modèles séquentiels du générateur et du discriminateur. Une fonction d'activation tanh est utilisée pour le générateur, tandis que le discriminateur utilise une fonction sigmoïde.
- Optimisation : La descente de gradient stochastique avec l'optimiseur Adam est employée, avec un petit taux d'apprentissage et un terme de momentum réduit pour améliorer la stabilité.
- Injection de bruit : Injection de bruit à l'aide d'un vecteur aléatoire de longueur fixe
Vous pouvez trouver la bibliothèque sur Github. ici.
Vous pouvez également trouver une description des plus compréhensible de la bibliothèque. ici.