Introduction aux dépendances fonctionnelles

Dans cet article, nous parlerons des dĂ©pendances fonctionnelles dans les bases de donnĂ©es : ce qu'elles sont, oĂč elles sont utilisĂ©es et quels algorithmes existent pour les trouver.

Nous considĂ©rerons les dĂ©pendances fonctionnelles dans le contexte des bases de donnĂ©es relationnelles. En gros, dans de telles bases de donnĂ©es, les informations sont stockĂ©es sous forme de tableaux. Ensuite, nous utilisons des concepts approximatifs qui ne sont pas interchangeables en thĂ©orie relationnelle stricte : nous appellerons la table elle-mĂȘme une relation, les colonnes - des attributs (leur ensemble - un schĂ©ma de relation), et l'ensemble des valeurs de ligne sur un sous-ensemble d'attributs. - un tuple.

Introduction aux dépendances fonctionnelles

Par exemple, dans le tableau ci-dessus, (Benson, M, orgue M) est un tuple d'attributs (Patient, Paul, Docteur).
Plus formellement, cela s'Ă©crit ainsi : Introduction aux dĂ©pendances fonctionnelles[Patient, sexe, mĂ©decinđŸ‡§đŸ‡· (Benson, M, orgue M).
Nous pouvons maintenant introduire la notion de dĂ©pendance fonctionnelle (FD) :

DĂ©finition 1. La relation R satisfait la loi fĂ©dĂ©rale X → Y (oĂč X, Y ⊆ R) si et seulement si pour tout tuple Introduction aux dĂ©pendances fonctionnelles, Introduction aux dĂ©pendances fonctionnelles ∈ R est vrai : si Introduction aux dĂ©pendances fonctionnelles[X] = Introduction aux dĂ©pendances fonctionnelles[X], alors Introduction aux dĂ©pendances fonctionnelles[Y] = Introduction aux dĂ©pendances fonctionnelles[Y]. Dans ce cas, nous disons que X (l’ensemble dĂ©terminant ou dĂ©finissant d’attributs) dĂ©termine fonctionnellement Y (l’ensemble dĂ©pendant).

Autrement dit, la prĂ©sence d'une loi fĂ©dĂ©rale X → Oui signifie que si nous avons deux tuples R et ils correspondent dans les attributs X, alors ils coĂŻncideront dans les attributs Y.
Et maintenant, dans l'ordre. Regardons les attributs Le patient Đž Genre pour lequel on veut savoir s'il existe ou non des dĂ©pendances entre eux. Pour un tel ensemble d'attributs, les dĂ©pendances suivantes peuvent exister :

  1. Patient → Sexe
  2. Sexe → Patient

Comme dĂ©fini ci-dessus, pour que la premiĂšre dĂ©pendance soit conservĂ©e, chaque valeur de colonne unique Le patient une seule valeur de colonne doit correspondre Genre. Et pour le tableau exemple, c’est effectivement le cas. Cependant, cela ne fonctionne pas dans le sens inverse, c'est-Ă -dire que la deuxiĂšme dĂ©pendance n'est pas satisfaite et que l'attribut Genre n'est pas un dĂ©terminant pour Patient. De mĂȘme, si l’on prend la dĂ©pendance MĂ©decin → Patient, vous pouvez voir qu'il est violĂ©, puisque la valeur rouge-gorge cet attribut a plusieurs significations diffĂ©rentes - Ellis et Graham.

Introduction aux dépendances fonctionnelles

Introduction aux dépendances fonctionnelles

Ainsi, les dĂ©pendances fonctionnelles permettent de dĂ©terminer les relations existantes entre des ensembles d'attributs de table. A partir de lĂ , nous examinerons les connexions les plus intĂ©ressantes, ou plutĂŽt celles X → Ouique sont ils:

  • non trivial, c'est-Ă -dire que le cĂŽtĂ© droit de la dĂ©pendance n'est pas un sous-ensemble du cĂŽtĂ© gauche (Y ̞⊆ X);
  • minime, c'est-Ă -dire qu'il n'y a pas une telle dĂ©pendance Z → OuiQue Z ⊂X.

Les dĂ©pendances considĂ©rĂ©es jusqu'Ă  prĂ©sent Ă©taient strictes, c'est-Ă -dire qu'elles ne prĂ©voyaient aucune violation sur la table, mais en plus d'elles, il y a aussi celles qui permettent une certaine incohĂ©rence entre les valeurs des tuples. De telles dĂ©pendances sont placĂ©es dans une classe distincte, appelĂ©e approximation, et peuvent ĂȘtre violĂ©es pour un certain nombre de tuples. Ce montant est rĂ©gulĂ© par l'indicateur d'erreur maximale emax. Par exemple, le taux d'erreur Introduction aux dĂ©pendances fonctionnelles = 0.01 peut signifier que la dĂ©pendance peut ĂȘtre violĂ©e de 1 % des tuples disponibles sur l'ensemble d'attributs considĂ©rĂ©. Autrement dit, pour 1000 10 enregistrements, un maximum de XNUMX tuples peuvent enfreindre la loi fĂ©dĂ©rale. Nous considĂ©rerons une mĂ©trique lĂ©gĂšrement diffĂ©rente, basĂ©e sur des valeurs deux Ă  deux diffĂ©rentes des tuples comparĂ©s. Pour la dĂ©pendance X → Oui sur l'attitude r on le considĂšre ainsi :

Introduction aux dépendances fonctionnelles

Calculons l'erreur pour MĂ©decin → Patient de l'exemple ci-dessus. Nous avons deux tuples dont les valeurs diffĂšrent sur l'attribut Le patient, mais coĂŻncident sur MĂ©decin: Introduction aux dĂ©pendances fonctionnelles[MĂ©decin, Patient] = (Robin, Ellis) Et Introduction aux dĂ©pendances fonctionnelles[MĂ©decin, Patient] = (Robin, Graham). Suite Ă  la dĂ©finition d'une erreur, il faut prendre en compte toutes les paires en conflit, ce qui signifie qu'il y en aura deux : (Introduction aux dĂ©pendances fonctionnelles, Introduction aux dĂ©pendances fonctionnelles) et son inversion (Introduction aux dĂ©pendances fonctionnelles, Introduction aux dĂ©pendances fonctionnelles). Remplaçons-le dans la formule et obtenons :

Introduction aux dépendances fonctionnelles

Essayons maintenant de rĂ©pondre Ă  la question : « À quoi ça sert ? En fait, les lois fĂ©dĂ©rales sont diffĂ©rentes. Le premier type concerne les dĂ©pendances dĂ©terminĂ©es par l'administrateur au stade de la conception de la base de donnĂ©es. Ils sont gĂ©nĂ©ralement peu nombreux, stricts et leur application principale est la normalisation des donnĂ©es et la conception de schĂ©mas relationnels.

Le deuxiĂšme type concerne les dĂ©pendances, qui reprĂ©sentent des donnĂ©es « cachĂ©es » et des relations jusque-lĂ  inconnues entre les attributs. Autrement dit, de telles dĂ©pendances n'ont pas Ă©tĂ© prises en compte au moment de la conception et elles sont trouvĂ©es pour l'ensemble de donnĂ©es existant, de sorte que plus tard, sur la base des nombreuses lois fĂ©dĂ©rales identifiĂ©es, des conclusions puissent ĂȘtre tirĂ©es sur les informations stockĂ©es. Ce sont prĂ©cisĂ©ment ces dĂ©pendances avec lesquelles nous travaillons. Ils sont traitĂ©s par tout un domaine de data mining avec diverses techniques de recherche et algorithmes construits sur cette base. Voyons comment les dĂ©pendances fonctionnelles trouvĂ©es (exactes ou approximatives) dans n'importe quelle donnĂ©e peuvent ĂȘtre utiles.

Introduction aux dépendances fonctionnelles

Aujourd’hui, l’une des principales applications des dĂ©pendances est le nettoyage des donnĂ©es. Il s’agit de dĂ©velopper des processus permettant d’identifier les « donnĂ©es sales » puis de les corriger. Les exemples frappants de « donnĂ©es sales Â» sont les doublons, les erreurs de donnĂ©es ou les fautes de frappe, les valeurs manquantes, les donnĂ©es obsolĂštes, les espaces supplĂ©mentaires, etc.

Exemple d'erreur de donnĂ©es :

Introduction aux dépendances fonctionnelles

Exemple de doublons dans les donnĂ©es :

Introduction aux dépendances fonctionnelles

Par exemple, nous avons un tableau et un ensemble de lois fĂ©dĂ©rales qui doivent ĂȘtre exĂ©cutĂ©es. Dans ce cas, le nettoyage des donnĂ©es implique la modification des donnĂ©es afin que les lois fĂ©dĂ©rales deviennent correctes. Dans ce cas, le nombre de modifications doit ĂȘtre minime (cette procĂ©dure possĂšde ses propres algorithmes, sur lesquels nous ne nous concentrerons pas dans cet article). Vous trouverez ci-dessous un exemple d'une telle transformation de donnĂ©es. À gauche se trouve la relation originale dans laquelle, Ă©videmment, les FL nĂ©cessaires ne sont pas remplies (un exemple de violation de l'un des FL est surlignĂ© en rouge). À droite se trouve la relation mise Ă  jour, les cellules vertes affichant les valeurs modifiĂ©es. AprĂšs cette procĂ©dure, les dĂ©pendances nĂ©cessaires ont commencĂ© Ă  ĂȘtre maintenues.

Introduction aux dépendances fonctionnelles

Une autre application populaire est la conception de bases de données. Ici, il convient de rappeler les formes normales et la normalisation. La normalisation est le processus de mise en conformité d'une relation avec un certain ensemble d'exigences, dont chacune est définie à sa maniÚre par la forme normale. Nous ne décrirons pas les exigences des différentes formes normales (cela se fait dans n'importe quel livre sur un cours de base de données pour débutants), mais notons seulement que chacune d'elles utilise le concept de dépendances fonctionnelles à sa maniÚre. AprÚs tout, les FL sont intrinsÚquement des contraintes d'intégrité qui sont prises en compte lors de la conception d'une base de données (dans le contexte de cette tùche, les FL sont parfois appelées superkeys).

Considérons leur application pour les quatre formes normales dans l'image ci-dessous. Rappelons que la forme normale de Boyce-Codd est plus stricte que la troisiÚme forme, mais moins stricte que la quatriÚme. Nous ne considérons pas cette derniÚre pour l'instant, car sa formulation nécessite une compréhension des dépendances multivaluées, qui ne nous intéressent pas dans cet article.

Introduction aux dépendances fonctionnelles
Introduction aux dépendances fonctionnelles
Introduction aux dépendances fonctionnelles
Introduction aux dépendances fonctionnelles

Un autre domaine dans lequel les dĂ©pendances ont trouvĂ© leur application est la rĂ©duction de la dimensionnalitĂ© de l'espace des fonctionnalitĂ©s dans des tĂąches telles que la crĂ©ation d'un classificateur Bayes naĂŻf, l'identification des fonctionnalitĂ©s significatives et le reparamĂ©trage d'un modĂšle de rĂ©gression. Dans les articles originaux, cette tĂąche est appelĂ©e la dĂ©termination de la redondance et de la pertinence des fonctionnalitĂ©s [5, 6], et elle est rĂ©solue grĂące Ă  l'utilisation active des concepts de bases de donnĂ©es. Avec l'avĂšnement de tels travaux, nous pouvons dire qu'il existe aujourd'hui une demande pour des solutions qui nous permettent de combiner la base de donnĂ©es, l'analyse et la mise en Ɠuvre des problĂšmes d'optimisation ci-dessus en un seul outil [7, 8, 9].

Il existe de nombreux algorithmes (Ă  la fois modernes et moins modernes) pour rechercher des lois fĂ©dĂ©rales dans un ensemble de donnĂ©es. Ces algorithmes peuvent ĂȘtre divisĂ©s en trois groupes :

  • Algorithmes utilisant le parcours de rĂ©seaux algĂ©briques (Algorithmes de parcours de treillis)
  • Algorithmes basĂ©s sur la recherche de valeurs convenues (algorithmes de diffĂ©rence et d'accord)
  • Algorithmes basĂ©s sur des comparaisons par paires (Algorithmes d'induction de dĂ©pendances)

Une brĂšve description de chaque type d’algorithme est prĂ©sentĂ©e dans le tableau ci-dessous :
Introduction aux dépendances fonctionnelles

Vous pouvez en savoir plus sur cette classification [4]. Vous trouverez ci-dessous des exemples d'algorithmes pour chaque type :

Introduction aux dépendances fonctionnelles

Introduction aux dépendances fonctionnelles

Actuellement, de nouveaux algorithmes apparaissent qui combinent plusieurs approches pour trouver des dépendances fonctionnelles. Des exemples de tels algorithmes sont Pyro [2] et HyFD [3]. Une analyse de leurs travaux est attendue dans les articles suivants de cette série. Dans cet article, nous examinerons uniquement les concepts de base et le lemme nécessaires pour comprendre les techniques de détection des dépendances.

Commençons par un simple - les ensembles de diffĂ©rences et d'accords, utilisĂ©s dans le deuxiĂšme type d'algorithmes. DiïŹ€erence-set est un ensemble de tuples qui n'ont pas les mĂȘmes valeurs, tandis que l'accord-set, au contraire, est constituĂ© de tuples qui ont les mĂȘmes valeurs. Il convient de noter que dans ce cas, nous considĂ©rons uniquement le cĂŽtĂ© gauche de la dĂ©pendance.

Un autre concept important rencontrĂ© ci-dessus est le rĂ©seau algĂ©brique. Étant donnĂ© que de nombreux algorithmes modernes fonctionnent sur ce concept, nous devons avoir une idĂ©e de ce dont il s’agit.

Afin d'introduire la notion de treillis, il est nécessaire de définir un ensemble partiellement ordonné (ou ensemble partiellement ordonné, en abrégé poset).

DĂ©finition 2. Un ensemble S est dit partiellement ordonnĂ© par la relation binaire ⩜ si pour tout a, b, c ∈ S les propriĂ©tĂ©s suivantes sont satisfaites :

  1. La rĂ©flexivitĂ©, c'est-Ă -dire a ⩜ a
  2. AntisymĂ©trie, c'est-Ă -dire si a ⩜ b et b ⩜ a, alors a = b
  3. TransitivitĂ©, c'est-Ă -dire que pour a ⩜ b et b ⩜ c, il s'ensuit que a ⩜ c


Une telle relation est appelĂ©e relation d'ordre partiel (vrac), et l'ensemble lui-mĂȘme est appelĂ© un ensemble partiellement ordonnĂ©. Notation formelle : ⟹S, ⩜⟩.

Comme exemple le plus simple d'un ensemble partiellement ordonnĂ©, nous pouvons prendre l'ensemble de tous les nombres naturels N avec la relation d'ordre habituelle ⩜. Il est facile de vĂ©rifier que tous les axiomes nĂ©cessaires sont satisfaits.

Un exemple plus significatif. ConsidĂ©rons l'ensemble de tous les sous-ensembles {1, 2, 3}, ordonnĂ©s par la relation d'inclusion ⊆. En effet, cette relation satisfait toutes les conditions d'ordre partiel, donc ⟹P ({1, 2, 3}), ⊆⟩ est un ensemble partiellement ordonnĂ©. La figure ci-dessous montre la structure de cet ensemble : si un Ă©lĂ©ment peut ĂȘtre atteint par des flĂšches vers un autre Ă©lĂ©ment, alors ils sont dans une relation d'ordre.

Introduction aux dépendances fonctionnelles

Nous aurons besoin de deux définitions plus simples du domaine des mathématiques : supremum et infimum.

DĂ©finition 3. Soit ⟹S, ⩜⟩ un ensemble partiellement ordonnĂ©, A ⊆ S. La borne supĂ©rieure de A est un Ă©lĂ©ment u ∈ S tel que ∀x ∈ S : x ⩜ u. Soit U l'ensemble de toutes les bornes supĂ©rieures de S. S'il y a un plus petit Ă©lĂ©ment dans U, alors il est appelĂ© le supremum et est notĂ© sup A.

Le concept de limite infĂ©rieure exacte est introduit de la mĂȘme maniĂšre.

DĂ©finition 4. Soit ⟹S, ⩜⟩ un ensemble partiellement ordonnĂ©, A ⊆ S. L'infimum de A est un Ă©lĂ©ment l ∈ S tel que ∀x ∈ S : l ⩜ x. Soit L l'ensemble de toutes les limites infĂ©rieures de S. S'il y a un plus grand Ă©lĂ©ment dans L, alors il est appelĂ© un infimum et est notĂ© inf A.

ConsidĂ©rons Ă  titre d'exemple l'ensemble partiellement ordonnĂ© ci-dessus ⟹P ({1, 2, 3}), ⊆⟩ et trouvez-y le supremum et l'infimum :

Introduction aux dépendances fonctionnelles

Nous pouvons maintenant formuler la dĂ©finition d’un rĂ©seau algĂ©brique.

DĂ©finition 5. Soit ⟹P,⩜⟩ un ensemble partiellement ordonnĂ© tel que chaque sous-ensemble de deux Ă©lĂ©ments ait une limite supĂ©rieure et infĂ©rieure. Alors P est appelĂ© rĂ©seau algĂ©brique. Dans ce cas, sup{x, y} s'Ă©crit x √ y, et inf {x, y} comme x ∧ y.

VĂ©rifions que notre exemple de travail ⟹P ({1, 2, 3}), ⊆⟩ est un treillis. En effet, pour tout a, b ∈ P ({1, 2, 3}), a√b = aâˆȘb, et a∧b = a∩b. Par exemple, considĂ©rons les ensembles {1, 2} et {1, 3} et trouvez leur infimum et supremum. Si nous les croisons, nous obtiendrons l'ensemble {1}, qui sera l'infimum. Nous obtenons le suprĂȘme en les combinant - {1, 2, 3}.

Dans les algorithmes d'identification de problĂšmes physiques, l'espace de recherche est souvent reprĂ©sentĂ© sous la forme d'un rĂ©seau, oĂč des ensembles d'un Ă©lĂ©ment (lire le premier niveau du rĂ©seau de recherche, oĂč le cĂŽtĂ© gauche des dĂ©pendances est constituĂ© d'un attribut) reprĂ©sentent chaque attribut. de la relation originelle.
Tout d’abord, nous considĂ©rons des dĂ©pendances de la forme ∅ → Attribut unique. Cette Ă©tape vous permet de dĂ©terminer quels attributs sont des clĂ©s primaires (pour de tels attributs, il n'y a pas de dĂ©terminants, et donc le cĂŽtĂ© gauche est vide). De plus, ces algorithmes se dĂ©placent vers le haut le long du rĂ©seau. Il convient de noter que la totalitĂ© du rĂ©seau ne peut pas ĂȘtre parcourue, c'est-Ă -dire que si la taille maximale souhaitĂ©e du cĂŽtĂ© gauche est transmise Ă  l'entrĂ©e, l'algorithme n'ira pas plus loin qu'un niveau ayant cette taille.

La figure ci-dessous montre comment un rĂ©seau algĂ©brique peut ĂȘtre utilisĂ© dans le problĂšme de recherche d'une FZ. Ici chaque bord (X, XY) reprĂ©sente une dĂ©pendance X → Oui. Par exemple, nous avons passĂ© le premier niveau et savons que l'addiction est entretenue A→B (nous l'afficherons sous la forme d'une connexion verte entre les sommets A Đž B). Cela signifie que plus loin, lorsque nous progressons le long du rĂ©seau, nous ne pouvons pas vĂ©rifier la dĂ©pendance A, C → B, car il ne sera plus minime. De mĂȘme, nous ne le vĂ©rifierions pas si la dĂ©pendance Ă©tait maintenue C → B.

Introduction aux dépendances fonctionnelles
Introduction aux dépendances fonctionnelles

De plus, en rĂšgle gĂ©nĂ©rale, tous les algorithmes modernes de recherche de lois fĂ©dĂ©rales utilisent une structure de donnĂ©es telle qu'une partition (dans la source originale - partition supprimĂ©e [1]). La dĂ©finition formelle d'une partition est la suivante :

DĂ©finition 6. Soit X ⊆ R un ensemble d'attributs pour la relation r. Un cluster est un ensemble d'indices de tuples dans r qui ont la mĂȘme valeur pour X, c'est-Ă -dire c(t) = {i|ti[X] = t[X]}. Une partition est un ensemble de clusters, hors clusters de longueur unitaire :

Introduction aux dépendances fonctionnelles

En termes simples, une partition pour un attribut X est un ensemble de listes, oĂč chaque liste contient des numĂ©ros de ligne avec les mĂȘmes valeurs pour X. Dans la littĂ©rature moderne, la structure reprĂ©sentant les partitions est appelĂ©e index de liste de positions (PLI). Les clusters de longueur unitaire sont exclus Ă  des fins de compression PLI, car ce sont des clusters qui contiennent uniquement un numĂ©ro d'enregistrement avec une valeur unique qui sera toujours facile Ă  identifier.

Regardons un exemple. Revenons Ă  la mĂȘme table avec les patients et construisons des partitions pour les colonnes Le patient Đž Genre (une nouvelle colonne est apparue Ă  gauche, dans laquelle les numĂ©ros de lignes du tableau sont marquĂ©s) :

Introduction aux dépendances fonctionnelles

Introduction aux dépendances fonctionnelles

De plus, selon la définition, la partition de la colonne Le patient sera en fait vide, puisque les clusters uniques sont exclus de la partition.

Les partitions peuvent ĂȘtre obtenues par plusieurs attributs. Et il y a deux maniĂšres de procĂ©der : en parcourant le tableau, construire une partition en utilisant tous les attributs nĂ©cessaires d'un coup, ou en la construisant en utilisant l'opĂ©ration d'intersection de partitions en utilisant un sous-ensemble d'attributs. Les algorithmes de recherche de lois fĂ©dĂ©rales utilisent la deuxiĂšme option.

En termes simples, pour par exemple obtenir une partition par colonnes abc, vous pouvez prendre des partitions pour AC О B (ou tout autre ensemble de sous-ensembles disjoints) et les croiser les uns avec les autres. L'opération d'intersection de deux partitions sélectionne les clusters de plus grande longueur communs aux deux partitions.

Regardons un exemple:

Introduction aux dépendances fonctionnelles

Introduction aux dépendances fonctionnelles

Dans le premier cas, nous avons reçu une partition vide. Si vous regardez attentivement le tableau, alors en effet, il n'y a pas de valeurs identiques pour les deux attributs. Si on modifie lĂ©gĂšrement le tableau (cas de droite), on obtiendra dĂ©jĂ  une intersection non vide. De plus, les lignes 1 et 2 contiennent en rĂ©alitĂ© les mĂȘmes valeurs pour les attributs Genre Đž MĂ©decin.

Ensuite, nous aurons besoin d'un concept tel que la taille de la partition. Officiellement:

Introduction aux dépendances fonctionnelles

En termes simples, la taille de la partition correspond au nombre de clusters inclus dans la partition (rappelez-vous que les clusters uniques ne sont pas inclus dans la partition !) :

Introduction aux dépendances fonctionnelles

Introduction aux dépendances fonctionnelles

Nous pouvons maintenant dĂ©finir l'un des lemmes clĂ©s, qui, pour des partitions donnĂ©es, nous permet de dĂ©terminer si une dĂ©pendance est maintenue ou non :

Lemme 1. La dĂ©pendance A, B → C est vraie si et seulement si

Introduction aux dépendances fonctionnelles

Selon le lemme, pour dĂ©terminer si une dĂ©pendance est vraie, quatre Ă©tapes doivent ĂȘtre effectuĂ©es :

  1. Calculer la partition pour le cÎté gauche de la dépendance
  2. Calculer la partition pour le cÎté droit de la dépendance
  3. Calculer le produit de la premiÚre et de la deuxiÚme étape
  4. Comparez les tailles des partitions obtenues aux premiÚre et troisiÚme étapes

Vous trouverez ci-dessous un exemple de vĂ©rification si la dĂ©pendance est vraie selon ce lemme :

Introduction aux dépendances fonctionnelles
Introduction aux dépendances fonctionnelles
Introduction aux dépendances fonctionnelles
Introduction aux dépendances fonctionnelles

Dans cet article, nous avons examinĂ© des concepts tels que la dĂ©pendance fonctionnelle, la dĂ©pendance fonctionnelle approximative, examinĂ© oĂč ils sont utilisĂ©s, ainsi que quels algorithmes existent pour rechercher des fonctions physiques. Nous avons Ă©galement examinĂ© en dĂ©tail les concepts fondamentaux mais importants qui sont activement utilisĂ©s dans les algorithmes modernes de recherche de lois fĂ©dĂ©rales.

Les références:

  1. Huhtala Y. et coll. TANE : Un algorithme efficace pour dĂ©couvrir des dĂ©pendances fonctionnelles et approximatives //Le journal informatique. – 1999. – T. 42. – Non. 2. – pp. 100-111.
  2. Kruse S., Naumann F. DĂ©couverte efficace des dĂ©pendances approximatives // Actes de la Dotation VLDB. – 2018. – T. 11. – Non. 7. – pp. 759-772.
  3. Papenbrock T., Naumann F. Une approche hybride de la dĂ©couverte des dĂ©pendances fonctionnelles // Actes de la ConfĂ©rence internationale 2016 sur la gestion des donnĂ©es. – ACM, 2016. – p. 821-833.
  4. Papenbrock T. et coll. DĂ©couverte des dĂ©pendances fonctionnelles : une Ă©valuation expĂ©rimentale de sept algorithmes //Actes du VLDB Endowment. – 2015. – T. 8. – Non. 10. – pp. 1082-1093.
  5. Kumar A. et al. Rejoindre ou ne pas adhĂ©rer ? : RĂ©flĂ©chir Ă  deux fois avant de sĂ©lectionner les fonctionnalitĂ©s // Actes de la ConfĂ©rence internationale 2016 sur la gestion des donnĂ©es. – ACM, 2016. – p. 19-34.
  6. Abo Khamis M. et coll. Apprentissage dans la base de donnĂ©es avec des tenseurs clairsemĂ©s // Actes du 37e Symposium ACM SIGMOD-SIGACT-SIGAI sur les principes des systĂšmes de bases de donnĂ©es. – ACM, 2018. – p. 325-340.
  7. Hellerstein JM et al. La bibliothùque d'analyse MADlib : ou MAD skills, le SQL //Actes du VLDB Endowment. – 2012. – T. 5. – Non. 12. – pp. 1700-1711.
  8. Qin C., Rusu F. approximations spĂ©culatives pour l'optimisation de la descente de gradient distribuĂ©e terascale // Actes du quatriĂšme atelier sur l'analyse des donnĂ©es dans le cloud. – ACM, 2015. – P. 1.
  9. Meng X. et coll. Mllib : Apprentissage automatique dans Apache Spark //The Journal of Machine Learning Research. – 2016. – T. 17. – Non. 1. – pp. 1235-1241.

Auteurs des articles : Anastasia Birillo, chercheur Ă  Recherche JetBrains, Étudiant du centre CS Đž Nikita Bobrov, chercheur Ă  Recherche JetBrains

Source: habr.com

Achetez un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Achetez un hĂ©bergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster