Assessing the Existence of a Function in a Dataset with the g3 Indicator
Évaluer l'Existence d'une Fonction dans un Jeu de Données avec l'Indicateur g3
Résumé
Taking domain knowledge into account is a long-standing issue in AI, especially nowadays where huge amounts of data are collected in the hope of delivering new insights and value. Let us consider the following scenario. Let D(y, x1,. .. , xn) be a dataset, Alice a data scientist, Bob a domain expert and y=f (x1,. .. , xn) a function known by Bob from his background knowledge. We are interested in the following simple yet crucial questions for Alice: how to define the satisfaction of f in D and how difficult is it to measure that satisfaction? It turns out that those problems are related to functional dependencies (FDs) and especially FD measurements used to quantify their satisfaction in a dataset such as the g3 indicator.
In this paper, we examine the computation of g3 with crisp FDs (aka. exact FDs) and a large class of non-crisp FDs replacing strict equality by more flexible predicates. Interestingly, it is known that the computation of g3 with crisp FDs is polynomial but turns out to be NP-Hard for non-crisp FDs. In this paper, we propose different exact and approximate solutions for the computation of g3 for both types. First, for crisp FDs with very large datasets, we propose solutions based on uniform and stratified random sampling. Second, for non-crisp FDs we present a detailed computation pipeline with various computation optimizations, including approximation algorithms and adaptations of recent developments in sublinear algorithms for NP-Hard problems.
We also propose an in-depth experimental study of the algorithms presented in terms of time performances and approximation accuracy. All the algorithms are also made available through FASTG3, an open-source Python library designed to be intuitive and efficient thanks to an underlying C++ implementation.
La prise en compte de la connaissance métier dans l'IA est un problème connu, surtout de nos jours où d'énormes quantités de données sont collectées dans l'espoir d'offrir de nouvelles perspectives de valorisation. Considérons le scénario suivant : soit $D(y, x_1, \ldots, x_n)$ un jeu de données, Alice une experte en science des données, Bob un expert du domaine et $y = f(x_1, \ldots, x_n)$ une fonction connue par Bob grâce à sa connaissance du métier. Nous nous intéressons aux questions suivantes, simples mais cruciales pour Alice : comment définir la satisfaction de f dans D ? Quelle est la difficulté de mesurer cette satisfaction ? Il s'avère que ces problèmes sont liés aux dépendances fonctionnelles (DFs) et surtout aux mesures de DFs permettant de quantifier leur satisfaction dans un jeu de données tel que l'indicateur $g_3$.
Dans cet article, nous étudions le calcul de $g_3$ avec des DFs strictes et une large classe de DFs non-strictes remplaçant l'égalité stricte par des prédicats plus flexibles. Si le calcul de $g_3$ avec des DFs strictes peut-être réalisé en temps polynomial, il s'avère être NP-Hard pour les DFs non-strictes. Ainsi, nous proposons différentes solutions exactes et approximées pour le calcul de $g_3$ pour les deux types de DFs. Tout d'abord, pour les très grands jeux de données, nous proposons des solutions basées sur de l'échantillonnage aléatoire, uniforme et stratifié, pour les DFs strictes. Nous présentons également des algorithmes d'approximation et l'adaptation des progrès récents dans les algorithmes sublinéaires dans le cadre des problèmes NP-Hard pour les DFs non-strictes.
Nous introduisons également FASTG3, une bibliothèque Python open-source qui sera utilisée pour proposer une étude expérimentale approfondie des algorithmes présentés en termes de performances temporelles et de précision d'approximation.
Origine | Fichiers produits par l'(les) auteur(s) |
---|