Dans le billet précédent, nous avons utilisé une assertion statique. Ces assertions sont faites lors de la compilation : si elles échouent, le programme ne compile pas et – et c'est là l'intérêt principal – le compilateur affiche un message clair, que vous avez défini, plutôt qu'une longue suite d'erreurs template illisibles. La STL C++11 définit un certain nombre de conditions qui peuvent être utilisées dans une expression static_assert. std::is_same<T, U> est l'exemple que nous avons utilisé
Après avoir introduit l'algorithme de détection, j'en ai proposé une implémentation naïve (1, 2). En partant de si bas, beaucoup d'améliorations sont possibles avant d'en faire une implémentation de qualité. Nous commencerons par proposer une interface compatible avec les exigences d'un développeur C++ client.
C'est une affaire de psychologie
Le développeur C++ aime la performance et il déteste tout ce qui l'oblige à créer une structure de données intermédiaire, à allouer de
Dans le billet précédent, vous avez vu comment construire l'arbre des associations fréquentes, ou fptree. Vous verrez dans celui-ci comment utiliser l'arbre pour déduire les associations fréquentes, sans plus retourner à la base de données initiale. Vous terminerez ainsi de découvrir cette première implémentation naïve et "pythonesque" de l'algorithme. Dans les prochains billets, il sera temps de la raffiner pour arriver à un résultat plus conforme à l'esprit du C++ et de ses standards
Comme je l'indiquais dans le billet précédent, je propose maintenant une implémentation naïve, reprise presqu'exactement d'une implémentation en Python, de l'algorithme de détection des associations fréquentes centré autour d'une structure de donnée appelée frequent pattern tree, ou arbre des associations fréquentes. Il peut être utile de relire la présentation de l'algorithme
Une implémentation naïve
Une implémentation en Python se ressent souvent de l'utilisation de ce langage
Pour ceux qui ont suivi ce blog dans une vie antérieure, ce billet n'a aucun rapport avec les précédents. J'ai échoué à susciter le débat autour de la programmation fonctionnelle, dont acte. La série de billets que je prépare portera sur l'élaboration d'une petite bibliothèque d'apprentissage machine en C++ moderne en essayant de faire ressortir la singularité de ce langage. Il serait peut-être plus avisé de créer un autre blog mais la règle de developpez.net semble être: un utilisateur, un blog,
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.