Académique Documents
Professionnel Documents
Culture Documents
Université d’Abomey-Calavi
Elwis KOULO
Le 13 Avril 2021
Membres du Jury :
• Président du jury :
Dr. Médésu SOGBOHOSSOU
• Membres :
Dr. Maurice COMLAN
Ing. Ambarka RAHAMAN
Ing. René HOUNTONDJI
À
• Mon père Augustin KOULO, pour avoir soutenu mes études et assuré mon éducation.
Reçois ici le fruit de tes efforts.
• Ma mère Pauline TODEGNI, pour tes sacrifices, ton amour, ta tendresse, ton soutien et
tes prières tout au long de mes études.
i
Remerciements
En préambule de ce mémoire, je tiens à remercier le Seigneur tout puissant qui nous a ac-
cordé la santé, la force et la persévérance nécessaires pour la réalisation de ce projet de fin
d’études.
Mes remerciements vont à l’endroit de tous ceux qui, de près ou de loin, ont participé à la
réalisation de ce travail. Je pense particulièrement :
• au Pr. Guy ALITONOU, Directeur de l’EPAC ainsi qu’au Directeur Adjoint Pr. François-
Xavier FIFATIN ;
• au Dr. Ing. Maurice COMLAN, mon superviseur pour ses conseils, ses directives et tout
ce qu’il a apporté dans la concrétisation de ce travail ;
• à mon maitre de stage, Ing. René HOUNTONDJI, Business Analyst à John Walkden et
Compagnie, pour son accueil, le temps passé ensemble et le partage de son expertise au
quotidien ;
• à mes amis Zianath ADECHINA, Enselme AGUIDIGODO et à tous ceux que je ne pour-
rais citer ici.
ii
Sommaire
Dédicaces i
Remerciements ii
Introduction 1
1 Etat de l’art 4
1.1 Le commerce du textile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Prédiction des ventes dans le domaine du textile et de la mode . . . . . . . . . . . 6
1.3 Génération de motif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Intelligence Artificielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Matériel et Méthodes 17
2.1 Matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Choix techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 Solution proposée 24
3.1 Prédiction de ventes dans les boutiques . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Génération de motifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4 Résultats et discussion 44
4.1 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
iii
SOMMAIRE SOMMAIRE
Conclusion et perspectives 57
English Part
Sales forecast and design generation for textile products using machine
learning 58
4.3 Textile trade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.4 Related Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.5 Material and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.6 Proposed solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.7 Results and discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Bibliographie 73
A Dropout 77
iv
Liste des figures
2.1 KDnuggets Analytics / Data Science 2019. Sondage sur les logiciels : les princi-
paux outils en 2019 et leur part dans les sondages 2017-8 . . . . . . . . . . . . . . 20
2.2 Diagramme des étapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1 Prédictions de ventes obtenues avec Decision Tree pour Woodin Ganhi de Jan-
Dec 2019 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Prédictions de ventes obtenues avec Decision Tree pour Vlisco Ganhi de Jan-Dec
2019 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3 Prédictions de ventes obtenues avec Random forest pour Woodin Ganhi de Jan-
Dec 2019 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.4 Prédictions de ventes obtenues avec Random forest pour Vlisco Ganhi de Jan-Dec
2019 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
v
LISTE DES FIGURES LISTE DES FIGURES
4.5 Prédictions de ventes obtenues avec Xgboost pour Woodin Ganhi de Jan-Dec 2019 47
4.6 Prédictions de ventes obtenues avec Xgboost pour Vlisco Ganhi de Jan-Dec 2019 47
4.7 Prédictions de ventes obtenues avec ANN pour Woodin Ganhi de Jan-Dec 2019 . 48
4.8 Prédictions de ventes obtenues avec ANN pour Vlisco Ganhi de Jan-Dec 2019 . . 48
4.9 Prédiction de ventes Septembre 2020 à Décembre 2021 de Vlisco Ganhi . . . . . . 50
4.10 Prédiction de ventes Septembre 2020 à Décembre 2021 de Woodin Ganhi . . . . . 51
4.11 Images générées avec le GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.12 Images générées avec le DCGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.13 Sales predictions obtained with Random forest for Woodin Ganhi of Jan-Dec 2019 66
4.14 Sales predictions obtained with Random forest for Vlisco Ganhi of Jan-Dec 2019 . 67
4.15 Images generated with GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.16 Images generated with DCGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
vi
Liste des tableaux
vii
Liste des sigles et abréviations
IA : Intelligence Artificielle
viii
Résumé
Dans le contexte de la vente au détail, une détermination erronée des quantités à acheter de
chaque article auprès des fournisseurs, soit par excès, soit par défaut, peut entraîner respecti-
vement des coûts de stockage inutiles ou des pertes de ventes. Ces deux situations doivent être
évitées par les entreprises, ce qui favorise la nécessité de déterminer efficacement les quantités
à acheter. Dans cette étude, nous avons appliqué des méthodes d’intelligence artificielle pour
prévoir les ventes en fonction de plusieurs caractéristiques. Nous avons développé quatre mo-
dèles (arbre de décision, forêt aléatoire, XGBoost et réseaux de neurones) en nous basant sur les
données de vente de l’entreprise John Walkden et Compagnie, filiale de distribution du Groupe
VLISCO, spécialisée dans l’importation et la distribution exclusive de ses quatre (04) marques
de produits textiles : VLISCO, WOODIN, UNIWAX et GTP. Il a été démontré que l’algorithme
random forest fournit les meilleures performances sur ces données de ventes. Par ailleurs, nous
avons aussi abordé la conception de dessins en proposant deux modèles (GAN et DCGAN) ba-
sés sur les techniques d’IA. Ces modèles sont capables de générer des dessins à partir d’un bruit
dans le but d’automatiser la conception desdits dessins ou motifs qui jusque là est fait par des
humains. Nous avons formé ces deux modèles en utilisant un dataset public "QuickRaw data-
set" et à la fin de nos expérimentations, il ressort que le modèle DCGAN fournit les meilleures
performances.
Mots clés : produits textiles, intelligence artificielle, arbre de décision, forêt aléatoire
ix
Abstract
In the retail context, an incorrect determination of the quantities to be purchased of each article
from vendors, either in excess or by default, can lead to unnecessary storage costs or loss of
sales, respectively. Both of these situations should be avoided by companies, thus promoting
the need for efficient determination of quantities to be purchased. In this study, we applied
artificial intelligence methods to forecast sales based on several characteristics. We developed
four models (Decision tree, Random forest, XGBoost and ANN) based on sales data from John
Walkden et Compagnie, a distribution subsidiary of the VLISCO Group, which specializes in
the importation and exclusive distribution of its four (04) brands of textile products: VLISCO,
WOODIN, UNIWAX and GTP. It has been demonstrated that the random forest algorithm pro-
vides the best performance on these sales data. In addition, we also approached the design of
drawings by proposing two models (GAN and DCGAN) based on IA techniques. These mod-
els are able to generate designs from noise in order to automate the design of these designs or
patterns which until now has been done by humans. We formed these two models using a pub-
lic "QuickRaw dataset" and at the end of our experiments, it appears that the DCGAN model
provides the best performance.
Key words: textile products, artificial intelligence, decision tree, random forest
x
Introduction
Contexte et Justification
En Afrique sub-saharienne, le pagne est devenu un outil important de distinction culturelle et
sociale. La rencontre des Africains avec ce tissu qui occupe une place capitale dans leur mœurs
remonte à plus d’un siècle. Le pagne imprimé, porteur d’un message, est considéré comme une
expression de la personnalité [1]. L’intégration du pagne dans les cultures vestimentaires lo-
cales a été si poussée que des usines d’impression se sont installées un peu partout en Afrique
(Côte d’Ivoire, Ghana,...) mais une grande partie du volume consommé continue d’être im-
portée d’Europe et d’Asie. La demande est plus forte que jamais et ne cesse de croître. Par
conséquent, l’industrie évolue à un rythme alarmant dont il est nécessaire de rationaliser les
processus de conception et de production. La plupart des progrès technologiques de l’indus-
trie ont révolutionné la production grâce à l’automatisation. Toutefois, l’aspect design reste un
obstacle considérable à la commercialisation d’un plus grand nombre de pagnes ou de nou-
veaux modèles. Aujourd’hui, les conceptions de motifs de pagnes prennent racine dans l’esprit
des concepteurs humains et sont méticuleusement raffinées au fil de nombreuses itérations.
Le pari retenu dans ce travail est de voir s’il est possible d’utiliser les dernières avancées de
l’intelligence artificielle pour générer numériquement de nouveaux modèles afin d’accélérer le
processus de conception.
L’autre aspect tout aussi important que le design, est la vente du produit car l’objectif de toute
entreprise est de réaliser un profit. Ceci est accompli en ayant plus de ventes que de coûts.
JOHN WALKDEN et Cie S.A. (JWC) est une filiale de distribution du Groupe VLISCO, spé-
cialisée dans l’importation et la distribution exclusive de ses quatre (04) marques de produits :
VLISCO, WOODIN, UNIWAX et GTP, basée à Cotonou. L’environnement commercial actuel
exige des entreprises qu’elles maintiennent un avantage concurrentiel qui peut générer de la
rentabilité. Le marketing joue un rôle crucial dans la concurrence et les entreprises qui gèrent ef-
ficacement leurs coûts peuvent générer des profits. Les prévisions de ventes permettent aux en-
treprises de gérer efficacement leurs budgets, de réduire les incertitudes, de réduire les risques,
d’accélérer le processus décisionnel, etc. Il est donc essentiel de prévoir la quantité des ventes
1
et des produits des ventes pour qu’une entreprise puisse prendre des mesures pour la période
suivante.
A l’heure où l’intelligence artificielle a de nombreuses applications et des résultats encoura-
geants, il serait intéressant d’analyser son utilité tant dans la conception de nouveaux motifs
que dans la prévision des ventes afin de faciliter la prise de décision.
Problématique
Avant d’arriver dans les magasins, les produits passent par une chaîne d’approvisionnement
qui commence par la conception des motifs des pagnes et la production des produits plusieurs
mois avant leur entrée sur le marché. Ce fait impose aux entreprises de prévoir la quantité
vendue de chaque produit afin de définir la quantité à acquérir du fournisseur. Une prévision
erronée se traduit par un manque à gagner, dû à une perte de ventes ou à un excédent de stocks.
Les entreprises collectent en permanence des données concernant leurs ventes. Par conséquent,
ces données peuvent constituer une source importante de connaissances pour améliorer la qua-
lité des prévisions de ventes.
Malheureusement, ces connaissances sont rarement utilisées pour aider à la prise de décision.
Il y a une mine d’informations cachées dans ces connaissances qui sont pour la plupart inex-
ploitées. Cela soulève une question cruciale : « A partir de ces connaissances, comment faciliter
la prise de décision ? » Pour répondre à cette question, nous ferons recours à l’intelligence arti-
ficielle plus précisément aux algorithmes de machine learning.
Dans ce projet nous nous intéressons aussi à la conception des motifs, tout d’abord il faut savoir
qu’actuellement les motifs sont dessinés à la main par des designers et sont affinés par plusieurs
itérations ce qui prend un temps important. Le marché de consommation étant de plus en plus
important, nous allons être confrontés d’ici là à une pénurie. Il serait donc intéressant de penser
à un système capable de produire de manière automatique et dynamique des motifs pouvant
servir à la conception de tissu.
Objectifs
Compte tenu du contexte introduit, l’objectif de ce travail est de développer deux modèles,
l’un capable d’estimer les ventes de produits textiles (dans les boutiques de ventes en détail) à
travers l’analyse des ventes des années précédentes et l’autre permettant de générer des motifs
créatifs pour les pagnes. De façon spécifique, il s’agira :
• de créer une base de données pour la prédiction des ventes à partir des données collec-
tionnées auprès des boutiques de vente de produits textiles ;
2
• de collectionner un certains nombre d’images pour le système de génération de motifs de
pagne
• de faire une étude comparative et de déduire le meilleur modèle après une étude théo-
rique et empirique
Plan du document
La suite de ce document est organisée comme suit : le chapitre 1 fait l’état de l’art des recherches
effectuées dans le cadre de la prédiction des ventes et de la génération d’images ; le chapitre 2
présente le matériel ainsi que les choix techniques effectués que nous utilisons pour l’élabora-
tion des modèles de prédiction ; le chapitre 3 présente notre solution et les modèles mis en place
et enfin, dans le chapitre 4, nous présentons les résultats obtenus après les différents tests ainsi
que l’analyse de ces résultats.
3
Chapitre 1
Etat de l’art
Introduction
Ce chapitre sera divisé en quatre (04) sections. La première partie décrira les principales ca-
ractéristiques du marché pour lequel le projet sera développé et son influence sur les modèles
de prévision. Les deuxième et troisième parties décriront respectivement plusieurs méthodes
proposées par différents auteurs pour résoudre les problèmes de prévision des ventes et ce-
lui de la génération d’images. Et la dernière partie présentera quelques notions de bases de
l’intelligence artificielle nécessaire pour la suite de ce document.
• les ventes sont conditionnées par de nombreuses autres variables telles que les ventes de
fin de saison, la promotion des ventes, le pouvoir d’achat des consommateurs, etc.
• il y a une grande variabilité des produits. Ils peuvent avoir différentes couleurs, formes et
tailles. Tous doivent satisfaire le consommateur final.
4
• sur le marché de la mode, les achats se font le plus souvent par impulsion lorsqu’on est
confronté au produit dans un magasin, et non par nécessité, de sorte que la disponibi-
lité et la visibilité du produit dans les magasins est d’une grande importance, il est donc
important d’avoir le bon produit à vendre ;
• les produits de mode ont également une grande instabilité de la demande, car ils sont
généralement affectés par des conditions extérieures telles que les conditions météorolo-
giques ou l’utilisation de tels articles par des célébrités ;
Compte tenu de tous ces facteurs, la prévision des ventes est un problème réel dans le commerce
du textile.
Selon une étude réalisée par Thomassey [2], les modèles prévisionnels de mode sont in-
fluencés par plusieurs caractéristiques. Ces caractéristiques seront décrites dans les sections
suivantes.
• Les variables explicatives sont essentielles pour modéliser les ventes de vêtements et, si
possible, les plus pertinentes devraient être intégrées dans le calcul des prévisions. Les
variables sont nombreuses et variées et il n’est pas possible d’établir une liste exhaustive.
• L’impact de chacune de ces variables est particulièrement difficile à estimer et n’est pas
constant dans le temps.
• Certaines variables ne sont pas disponibles (p. ex. données concurrentes) ou prévisibles
(p. ex. données météorologiques) et ne peuvent donc pas être intégrées dans le système
de prévision.
5
1.1.2 La saisonnalité
Une autre caractéristique de l’industrie de la mode est la saisonnalité. La saisonnalité des
ventes est un phénomène par lequel le niveau des ventes de produits ou service est influencé de
manière régulière par la saison, une période de l’année ou un événement calendaire récurrent.
Chaque analyse de séries chronologiques doit utiliser le facteur de saisonnalité pour ajuster les
résultats des prévisions. Cependant, dans l’industrie de la mode, certains articles sont logique-
ment très sensibles aux variations saisonnières, d’autres ne sont pas affectés. Ainsi, en fonction
de la sensibilité du domaine considéré, la saisonnalité devrait être plus ou moins intégrée dans
le système de prévision des ventes.
6
passent aussi par la difficulté de travailler sur des données de demande intermittentes ou ir-
régulières. Ces méthodes se limitent également à leur structure linéaire. Ce type de méthodes
nécessite également de grands ensembles de données historiques et il est difficile d’incorpo-
rer d’autres variables telles que les caractéristiques exogènes du marché. Par conséquent, les
méthodes statistiques pures peuvent ne pas permettre d’obtenir un résultat de prédiction sou-
haitable. Comparées à des méthodes plus sophistiquées, les méthodes purement statistiques ne
donnent pas de résultats très prometteurs. L’adoption d’autres techniques en conjonction avec
ces méthodes statistiques peut être un moyen de surmonter certains de ces obstacles.
Comme nous l’avons vu, les modèles statistiques purs ne permettent pas de faire des prévi-
sions sur les ventes. Afin d’améliorer la précision des prévisions, les méthodes d’IA émergent
avec les progrès de la technologie informatique. En fait, les modèles d’IA peuvent efficacement
dériver des fonctions d’approximation "arbitrairement non linéaires" directement à partir des
données. Des algorithmes populaires du machine learning comme decision tree, random fo-
rest ou Xgboost ont été appliqués pour la prévision des ventes que ce soit dans le secteur de
la mode ou dans d’autres. Par exemple Mikael Holmberg et Pontus Halldén [9] ont appliqué
les algorithmes tels que Xgboost, decision tree pour prédire les ventes d’un restaurant. Dans le
secteur de la mode, nous avons aussi Nelson da Silva Alves [10] qui a appliqué en plus du de-
cision et du random forest, Le SVm pour prédire les ventes, il démontre à la fin que son modèle
random forest offre les meilleures performances comparé aux autres modèles developpés. Par
ailleurs, d’autres méthodes telles que les modèles de réseaux neurones artificiels (ANN) [11]
et les modèles logiques flous sont couramment utilisés dans la littérature. Plus précisément,
des modèles ANN ont été développés et donnent des résultats satisfaisants dans différents do-
maines [12, 13, 14]. Dans la littérature sur la prévision des ventes dans le secteur de la mode, C.
Frank [11] explorent l’utilisation du modèle ANN pour la prévision des ventes. En le compa-
rant à deux autres méthodes statistiques en termes de résultats prévisionnels, on constate que le
modèle ANN obtient les meilleures performances. Malgré le fait que les modèles d’IA donnent
de bons résultats en termes de précision des prévisions (comme l’indiquent les mesures de per-
formance telles que l’erreur quadratique moyenne), ces modèles de prévision nécessitent un
temps très long pour accomplir la tâche de prévision. La raison d’un tel inconvénient vient du
fait que ces modèles utilisent des algorithmes d’apprentissage basés sur le gradient tels que le
réseau de neurone de rétro-propagation.
Les méthodes de prévision hybrides sont habituellement élaborées en fonction du fait qu’elles
peuvent utiliser les forces de différents modèles ensemble pour former une nouvelle méthode
de prévision. Ainsi, bon nombre d’entre eux sont considérés comme étant plus efficaces que les
modèles statistiques purs et les modèles d’IA purs. En raison de l’utilisation de plusieurs tech-
niques dans un même modèle, les modèles statistiques ou même comme ANN pur finissent
par devenir moins efficaces. Il n’est pas surprenant qu’au cours des dernières années, un cer-
tain nombre de travaux de recherche aient examiné les méthodes de prévision hybrides, par
exemple [15, 16, 17, 18]. Les méthodes hybrides utilisées dans la littérature de prévision de la
7
mode combinent souvent différents schémas tels que le modèle flou, ANN, avec d’autres tech-
niques.
Vroman et al [19] ont mis au point un modèle adaptatif flou qui contrôle les facteurs de
pondération d’une méthode de prédiction statistique "Holt-Winter" à lissage exponentiel. Ils
montrent que le modèle hybride flou proposé surpasse la méthode Holt-Winter convention-
nelle. Ils préconisent également que la méthode qu’ils proposent puisse être appliquée à la pré-
vision des ventes de nouveaux articles dans le secteur de la mode. Récemment, Yesil et al [20]
développent une méthode qui combine la logique floue et le modèle statistique pour effectuer
des prévisions. Dans leur méthode hybride, ils calculent les prévisions finales hebdomadaires
sur la base de la moyenne pondérée des prévisions que sont générés par de multiples méthodes.
Ils font valoir que la méthode proposée permet d’obtenir une grande précision.
8
classe d’image comme entrée conditionnelle pour générer des nombres MNIST dans une classe
particulière.
Dans le secteur de la mode, Jaime Deverall, Jiwoo Lee, Miguel Ayala proposent un modèle
Conditional Deep Convolutional GAN (CDCGAN) capable de générer des modèles de chaus-
sures en fonction d’un vecteur d’entrée codant les caractéristiques désirées [31]. Aussi Fashion-
GAN proposé par Y. R.Cui, Q.Liu, C.Y.Gao et Z.Su [32] génère directement certaines images de
vêtements spécifiques à partir des éléments de conception du vêtement tels que les croquis de
mode et les motifs de tissu.
9
utilisateurs ainsi que les sujets d’actualités (Google Search), Prédictions (Prix, Trafic), Diagnos-
tiques médical (Imagia), Reconnaissance d’images (Amis Facebook, Microsoft Cognitive Ser-
vices), Détection de fraude (Paypal), etc.
10
• apprentissage semi-supervisé (Semi-supervised learning) : il se situe entre l’apprentissage
supervisé et l’apprentissage non supervisé. Il utilise ainsi des données étiquetées et des
données non étiquetées. Cette méthode permet d’améliorer la qualité de l’apprentissage.
• apprentissage par transfert (Transfer learning) : C’est un apprentissage qui peut venir
optimiser et améliorer un modèle d’apprentissage déjà en place. Sa compréhension est
donc assez conceptuelle. L’idée est de pouvoir appliquer un ensemble acquis sur une tâche
à un second ensemble relatif. Exemple d’usage : word2vec
• apprentissage profond (Deep Learning) : Sans doute le plus connu car très utilisé et effi-
cace, l’apprentissage profond est une méthode d’apprentissage automatique. La machine
va elle même apprendre à réaliser une tâche. Il existe plusieurs champs d’application
comme la reconnaissance de forme, la reconnaissance de la parole, le traitement automa-
tique des langues (TAL), les prédictions (Prix, Trafic).
11
Couche Couche Couche
d’entrée cachée de sortie
Entrée #1
Entrée #2
Sortie
Entrée #3
Entrée #4
Chaque couche accepte les informations de la précédente et les transmet à la suivante. Dif-
férents éléments caractérisent un neurone à savoir :
Poids de connexion
Les poids sur les connexions dans un réseau de neurones sont des cœfficients qui modifient
(amplifient ou minimisent) le signal entrant dans un neurone donné du réseau. Dans les repré-
sentations communes des réseaux de neurones, il s’agit des lignes allant d’un point à l’autre,
des arêtes du graphe mathématique. Souvent, les connexions sont notées comme w dans les re-
présentations mathématiques des réseaux de neurones. Les réseaux neuronaux sont formés par
un réglage fin des poids, afin de découvrir l’ensemble optimal de poids qui génère la prédiction
la plus précise.
Les biais
Les biais sont des valeurs scalaires ajoutées à l’entrée pour garantir qu’au moins quelques
nœuds par couche soient activés, quelle que soit la puissance du signal. Les biais permettent
l’apprentissage en donnant au réseau une action en cas de faible signal. Ils permettent au réseau
d’essayer de nouvelles interprétations ou comportements. Les biais sont généralement notés b
et, comme les poids, ils sont modifiés tout au long du processus d’apprentissage.
Fonctions d’activation
Une fonction d’activation est une équation mathématique qui détermine la sortie de chaque
élément (neurone) dans le réseau de neurone. Elle prend l’entrée de chaque neurone et la trans-
forme en une sortie, généralement comprise entre 1 et 0 ou entre -1 et 1. Les fonctions d’ac-
12
tivation classiques utilisées dans les réseaux neuronaux comprennent la fonction sigmoïde et
tangente hyperbolique (tanh). Parmi les nouvelles fonctions d’activation, destinées à améliorer
l’efficacité des calculs, figure la fonction linéaire rectifiée (ReLu).
• sigmoïde : une fonction sigmoïde est une machine qui convertit des variables indépen-
dantes d’une étendue quasi infinie en probabilités simples comprises entre 0 et 1, et la
plupart de ses sorties seront très proches de 0 ou 1. Sa formule est :
1
g(x) = σ(x) = (1.1)
1 + e−x
• tanh : est une fonction trigonométrique hyperbolique (voir figure 1.4). Tout comme la
tangente représente un rapport entre les côtés opposés et adjacents d’un triangle rectangle,
tanh représente le rapport entre le sinus hyperbolique et le cosinus hyperbolique :
sinh(x)
tanh(x) = (1.2)
cosh(x)
13
F IGURE 1.4 – Fonction tangente hyperbolique
• fonction linéaire rectifiée : est une transformation plus intéressante qui active un nœud
uniquement si l’entrée dépasse une certaine quantité. Lorsque l’entrée est inférieure à
zéro, la sortie est égale à zéro, mais lorsque l’entrée dépasse un certain seuil, elle présente
une relation linéaire avec la variable dépendante :
Cette fonction possède une variante assez populaire et efficace du nom de LeakyReLU.
Celle ci possède une faible pente pour les valeurs négatives, au lieu d’être totalement
nulles. Par exemple, une LeakyReLU peut avoir y = 0,1x lorsque x < 0 comme illustré à la
Figure 1.6
14
F IGURE 1.6 – Fonction LeakyReLU
L’apprentissage
Les pondérations commencent avec des valeurs aléatoires, et à mesure que le réseau de neurone
en apprend davantage sur le type de données en entrée, le réseau ajuste les pondérations en
fonction des erreurs que les pondérations précédentes ont entraînées. C’est ce que l’on appelle
la formation, l’apprentissage ou encore entraînement du réseau de neurone. Une fois le réseau
formé, nous pouvons l’utiliser pour prédire la sortie pour les données d’entrée similaires.
15
F IGURE 1.7 – Generative Adversarial Networks [36]
Le GAN imite les images en opposant deux réseaux de neurones, l’un étant le "généra-
teur", et l’autre le "discriminateur". Le générateur part d’un bruit aléatoire et crée de nou-
velles images, qu’il transmet au discriminateur, dans l’espoir qu’elles seront jugées authen-
tiques (même si elles sont fausses). Le discriminateur vise à identifier les images provenant du
générateur comme étant fausses, en les distinguant des images réelles. Au début, c’est facile,
mais cela devient de plus en plus difficile. Le discriminateur apprend sur la base des échan-
tillons d’images réels qu’il connaît. Le générateur quant à lui apprend à partir du retour d’in-
formation du discriminateur. Les réseaux GAN peuvent générer ou améliorer des photos, pein-
tures, discours, vidéo. Dans le cas de notre projet, nous avons utilisé les réseaux GAN pour
générer des images.
Conclusion
Dans ce chapitre, nous avons exposé les différentes méthodes utilisées généralement pour
prédire les ventes ainsi que celles utilisées pour la génération d’image. Nous avons aussi pré-
senté des notions relatives à l’intelligence artificielle qui seront utiles à comprendre la suite de
ce document. Plus précisément nous avons abordé le machine learning et ses différentes caté-
gories.
16
Chapitre 2
Matériel et Méthodes
Introduction
Ce chapitre fait la synthèse des différents outils aussi bien matériels que logiciels que nous
avons utilisé tout au long de notre étude. Nous y présentons aussi les différents choix tech-
niques que nous avons opéré pour mener à bien ce travail.
2.1 Matériel
Pour mener à bien notre projet, les expériences et les tests ont été effectués sur un ordinateur
dont les caractéristiques sont les suivantes :
• Architecture : 64 bits
17
permet des manipulations matricielles, le traçage de fonctions et de données, la mise
en œuvre d’algorithmes, la création d’interfaces utilisateur et l’interfaçage avec des pro-
grammes écrits dans d’autres langages, notamment C, C ++, C#, Java, Fortran et Python.
Avantages :
Inconvénients :
• impossible d’exécuter les scripts de façon autonome - ils doivent être traduits dans
un autre langage ;
• prix d’acquisition de licence élevé ;
• mauvaise intégration avec d’autres langages ;
• mauvaise performance pour les boucles itératives.
Inconvénients :
• lent par rapport à Python en particulier dans les boucles itératives et les fonctions
non vectorisées ;
18
• mauvais tracé de figure par rapport à Python et des difficultés à mettre en œuvre des
graphiques interactifs ;
• capacités limitées pour créer des applications autonomes.
Inconvénients :
• erreurs silencieuses pouvant être très longues à retrouver (même avec les débogueurs
visuels / IDE) ;
• plus de code requis pour les mêmes opérations que R ou MATLAB ;
• certains paquets ne sont pas compatibles avec d’autres ou contiennent des chevau-
chements.
De même une étude menée par KDNuggets [38] auprès de ses utilisateurs sur les outils les
plus utilisés dans les sciences de données entre 2017 et 2019 a donné les résultats présentés dans
la figure 2.1.
19
F IGURE 2.1 – KDnuggets Analytics / Data Science 2019. Sondage sur les logiciels : les principaux
outils en 2019 et leur part dans les sondages 2017-9 [38]
La Figure 2.1 nous montre ainsi que depuis 2017, Python avec ses différents avantages est
l’outil le plus utilisé pour le Machine Learning à la vue des différentes possibilités qu’il offre.
Notre choix après ces différentes analyses s’est donc porté sur lui en tant qu’outil principal pour
mener à bien notre étude.
En outre, il existe plusieurs distributions, paquets et modules conçus pour Python facilitant
l’utilisation des concepts clés de l’apprentissage automatique. Listés sur la Figure 2.1, ils se sont
avérés importants dans notre étude. Il s’agit de :
Anaconda[39] : c’est une distribution libre et gratuite des langages de programmation Py-
thon et R ainsi que de nombreux autres outils tels que spyder (un environnement de déve-
loppement intégré abrégé EDI en français pour écrire du code en python), matplotlib (pour
visualiser des données à travers les courbes) pour les applications liées à la science des données
et à l’apprentissage automatique (traitement de données à grande échelle, analyse prédictive,
calcul scientifique). Il vise à simplifier la gestion et le déploiement d’applications relatives à
cette dernière.
20
multi-dimensionnelles, appelées Tenseurs (Tensor). Un Tenseur à deux dimensions est l’équi-
valent d’une matrice. Aujourd’hui, les principaux produits de Google sont basés sur Tensor-
Flow ( Gmail, Google Photos, Reconnaissance de voix) ; sa documentation très riche fait d’elle
une bibliothèque facile à utiliser.
Keras[41] : est une API de réseaux de neurones de haut niveau, écrite en Python et capable
de fonctionner sur TensorFlow ou Theano. Il a été développé en mettant l’accent sur l’expéri-
mentation rapide. Être capable d’aller de l’idée à un résultat avec le moins de délai possible est
la clé pour faire de bonnes recherches. Il a été développé dans le cadre de l’effort de recherche
du projet ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System), et son
principal auteur et mainteneur est François Chollet, un ingénieur Google. En 2017, l’équipe Ten-
sorFlow de Google a décidé de soutenir Keras dans la bibliothèque principale de TensorFlow.
Chollet a expliqué que Keras a été conçu comme une interface plutôt que comme un cadre
d’apprentissage end-to-end. Il présente un ensemble d’abstractions de niveau supérieur et plus
intuitif qui facilitent la configuration des réseaux neuronaux.
Dans ce projet, nous avons utilisé Tensorflow, Keras et Scikit-learn pour la construction de
nos modèles.
21
2.3 Méthodes
L’exécution du projet a été divisée en plusieurs étapes, afin de définir le problème de ma-
nière structurée. Ainsi, les principales étapes ont été les suivantes :
Collecte de données
La toute première et la plus importante étape est de collecter les données pertinentes corres-
pondant à notre problématique. La collecte de données précises est essentielle au maintien de
l’intégrité de notre projet d’apprentissage machine.
Prétraitement
Le prétraitement des données est un processus de nettoyage des données brutes, c’est-à-
dire que les données recueillies dans le monde réel sont converties en un ensemble de données
propres. En d’autres termes, l’ensemble de données qui soutient le projet est analysé. La base
de données est étudiée, la qualité des données sera analysée, par exemple s’il y a des données
manquantes, des valeurs redondantes, des informations incohérentes, des données bruyantes,
des valeurs aberrantes ou des données à valeurs impossibles qui nécessitent un traitement. Les
données feront l’objet d’une analyse statistique, de sorte qu’elles puissent être mieux interpré-
tés. A la fin de cette étape nous divisons notre ensemble de donnée en deux : une partie qui
servira à la formation des modèles et l’autre servira lors de l’évaluation.
22
Modélisation
Evaluation
Une fois la formation terminée, il est temps de voir si le modèle est bon, à l’aide de l’éva-
luation. C’est là que l’ensemble de données que nous avons mis de côté plus tôt entre en jeu.
L’évaluation nous permet de comparer notre modèle à des données qui n’ont jamais été utilisées
pour la formation. Cette mesure nous permet de voir comment le modèle pourrait fonctionner
par rapport à des données qu’il n’a pas encore vues. Cela se veut représentatif de la façon dont
le modèle pourrait fonctionner dans le monde réel.
Conclusion
Dans ce chapitre nous avons fait la synthèse du matériel aussi bien physique que logiciel
que nous avons utilisé dans notre étude. Nous y avons aussi présenté les raisons qui nous ont
poussé à faire certains choix techniques dans le choix des outils nécessaires pour cette étude.
Ce chapitre fait aussi la synthèse sur la méthodologie utilisée dans l’élaboration des modèles.
23
Chapitre 3
Solution proposée
Introduction
Dans ce chapitre, nous présentons l’ensemble des solutions que nous avons développé pour
répondre aux problèmes posés. Pour parvenir à ces solutions nous avons suivi une méthodolo-
gie bien précise déjà présenté au chapitre précédent, il s’agira donc dans ce chapitre de décrire
pour chaque étape de la méthodologie les différentes actions ou opérations menées qui nous ont
conduit à nos différents modèles. Ce chapitre sera divisé en deux parties qui décriront respecti-
vement nos solutions pour résoudre le problème de prévision des ventes et celui de génération
de motifs.
Dataset 1
Le présent dataset relatif à la prédiction de vente a été extrait de la base de données de JWC
à l’aide du logiciel QlickView et contient 170294 échantillons de données. Il contient des infor-
mations relatives aux ventes journalières des boutiques couvrant la période de Janvier 2013 à
Décembre 2019. Chaque entrée de produit dans l’ensemble de données présente diverses va-
riables qui sont décrites ci-après :
24
• Inv Date : C’est la date à laquelle le produit est vendu.
• Boutique : C’est le nom des boutiques. Dans l’ensemble de données utilisé, il y a : "Woodin
Ganhi" et "Vlisco Ganhi".
• Product_Type : C’est le type de produit. Il est important de noter que dans les boutiques
deux (02) types de produit sont vendus. Il s’agit des prêts-à-porter et des tissus représen-
tés respectivement par les valeurs "PAP" et "Fabric" dans notre ensemble de données. La
Figure 3.1 présente la quantité vendue par type de produit, on note que les tissus sont
plus vendus que les prêts-à-porter.
25
F IGURE 3.2 – Quantité vendue par type de produit
• Item code : Il s’agit d’un code qui permet d’identifier chaque produit de façon unique.
Nous pouvons énumérer quelques codes dont VL317 A0979F008, WOPEGHA, VL327
49600F002, UWBLKCO.
• Marque : C’est la marque du produit. Dans notre dataset les produits sont de marques :
Vlisco, GTP, Woodin, Uniwax(UW). La Figure 3.3 présente le total des ventes regroupées
par type de produit et par marque. On remarque que les tissus de marque Vlisco sont les
plus vendus mais en ce qui concerne les prêts-à-porter les produits de marques Woodin
dominent.
• Sales : Il s’agit du volume en yards vendu par produit. C’est notre variable cible c’est à
dire la variable qu’on veut prédire.
26
3.1.2 Prétraitement
La base de données comprend des données relatives aux ventes journalières des boutiques
de vente en détail. Dans un premier temps, les données ont été groupées par mois grâce à l’attri-
but "Inv date" puis par type de produit (PAP et Fabrics) proposé dans les boutiques (figures 3.4
et 3.5). L’analyse du dataset, nous a fait remarquer que certains tuples n’avaient pas de valeurs.
Ces données ont été filtrées et retirées de l’ensemble de données. Par ailleurs, aucune valeur
redondante, aucune information incohérente,n’a été trouvée. En observant les figures 3.4 et 3.5
on remarque une hausse des ventes pendant les trois derniers mois de l’année. Cette hausse est
due aux fêtes de fin d’année (Noël et Nouvel an).
27
Les sections suivantes présenteront d’autres méthodes utilisées pour le prétraitement.
Les attributs utilisés pour la phase d’entraînement sont très déterminants pour une bonne
prédiction. Cependant, l’ingénierie des caractéristiques consiste non seulement à créer des at-
tributs mais aussi à sélectionner les bons. La première étape, celle de la création d’attributs,
exige de l’expérience, des connaissances spécialisées et de la créativité.
Dans le cas d’espèce, il s’agira de créer des attributs susceptibles d’affecter les ventes dans
les boutiques et ceux qui peuvent stimuler le système d’apprentissage. Ainsi on a :
• Season : Indique la saison météorologique du mois courant. Compte tenu du climat bé-
ninois il n’y a que deux valeurs possibles : "0" pour indiquer la saison pluvieuse et "1"
pour indiquer la saison sèche. Cet attribut a été créé à partir des informations relatives
au climat tiré du site web du gouvernement du Bénin [43] et de l’attribut "Inv Date" ini-
tialement présent dans l’ensemble de données. La Figure 3.6 indique que les ventes des
saisons sèches sont supérieures à celles des saisons pluvieuses.
• goodPeriod : Indique les mois spéciaux ou festifs c’est-à-dire les mois qui contiennent des
évènements de fêtes tels que Noël, Fêtes des mères, Fêtes des pères, St valentin, Tabaski,
Ramadan. Les valeurs possibles sont : "0" pour les mois normaux(sans événements de
fêtes) et "1" pour signifier le contraire. La Figure 3.7 présente une répartition des ventes
suivant cet attribut. Comme on pouvait s’y attendre les ventes des périodes festives sont
largement supérieure à celles des périodes non festives.
28
F IGURE 3.7 – Quantité vendue par type de produit et par période
• Boutique_type : Il est possible de catégoriser les boutiques selon la marque qui constitue
leurs spécialités. Par exemple "Woodin Ganhi" est une boutique spécialisée dans la vente
de la marque "Woodin".
Nous pouvons classer l’ensemble des variables ou attribut de notre dataset en deux groupes
(quantitative et qualitative) comme le montre le tableau 3.1.
29
TABLEAU 3.1 – Variables quantitatives et qualitatives
Quantitatives Qualitatives
• Nb_boutique
• Boutique
• Nb_boutique_type
• Product_Type
• Sales
• Location
• Sales_last_1_month
• Marque
• Sales_last_3_month
• Season
• Sales_last_6_month
• goodPeriod
• Sales_Avg_last_3_month
• item code
• Sales_Avg_last_6_month
La sélection des caractéristiques est une très importantes étapes de l’apprentissage d’une
machine. Lorsque nous prenons un ensemble de données, chaque attribut (caractéristique)
n’aura pas nécessairement un impact sur la variable de sortie. Si nous ajoutons ces variables
non pertinentes dans le modèle, cela ne fera qu’aggraver les performances du modèle. D’où
la nécessité de procéder à une sélection. Pour faire la sélection nous avons étudié la corréla-
tion entre les différents variables quantitative de notre dataset en évaluant le coefficients de
corrélation de Pearson.
Le coefficient de corrélation de Pearson (du nom de Karl Pearson) peut être utilisé pour me-
surer la relation linéaire entre deux échantillons de données. Ce coefficient est calculé comme
la covariance de deux variables divisée par le produit de l’écart-type de chaque échantillon de
données. C’est la normalisation de la covariance entre deux variables pour donner un score
interprétable. Le résultat du calcul, le coefficient de corrélation peut être interprété pour com-
prendre la relation.
Cov(X, Y )
ρX,Y = (3.1)
σX σY
30
où : Cov(X, Y ) : est la covariance
σX : est l’écart-type de la variable X
σY : est l’écart-type de la variable Y
Le coefficient renvoie une valeur entre -1 et 1 qui représente les limites de corrélation d’une
corrélation négative complète à une corrélation positive complète. Une valeur de 0 signifie qu’il
n’y a pas de corrélation. Le tableau 3.2 illustre le coefficient de corrélation de Pearson entre la
variable cible (Sales) et les autres variables quantitatives de notre dataset.
TABLEAU 3.2 – Corrélation de Pearson entre la variable cible et les autres variables quantitatives
Nb_boutique_type 0.02
Nb_boutique 0.3
Sales_last_1_month 0.72
Sales_last_2_month 0.71
Sales_last_3_month 0.75
Sales_last_6_month 0.71
Sales_Avg_last_3_month 0.75
Sales_Avg_last_6_month 0.74
La variable "Nb_boutique_type" est la moins corrélée avec la variable cible. Toutefois, le pro-
cessus de sélection ne s’arrête pas là, car un bon ensemble de données se compose de variables
pertinentes mais aussi de variables indépendantes les unes des autres. Gennari [44][45] affirme
que les variables qui sont fortement corrélées entre elles sont des informations redondantes et
devraient être éliminées de l’ensemble de données, car elles décrivent essentiellement la même
chose. Vérifions donc la corrélation des variables les unes avec les autres. Le tableau 3.3 pré-
sente le coefficient de corrélation de Pearson entre les différentes variables quantitatives. Il n’y
a pas de valeur exacte du coefficient de corrélation qui détermine si une caractéristique doit être
incluse ou non, mais pour ce projet nous considérons les paires de variable ayant une valeur
supérieure ou égale à 0.8, et des deux nous supprimons celle qui est la moins corrélé avec la
variable cible en se référant au tableau 3.2.
En ce qui concerne les variables qualitatives nous avons conservé l’ensemble des variables
à l’exception de "item code" qui ne nous sera pas utile. Ainsi les attributs retenus pour le reste
de notre étude sont présentés au tableau 3.4
31
TABLEAU 3.3 – Corrélation de Pearson entre les variables quantitatives
Date
season
goodPeriod
Location
Marque
Product_Type
Nb_boutique
Boutique_type
Sales_last_1_month
Sales_last_3_month
Sales_last_6_month
Sales_Avg_last_3_month
Sales_Avg_last_6_month
Sales
32
Elle s’exprime par la formule suivante :
0 x − min(x)
x = (3.2)
max(x) − min(x)
0
où : x : est la valeur normalisée
x : est une valeur originale
Après la normalisation nous avons divisé notre dataset en deux parties : une pour la for-
mation des modèles (Train dataset) qui contient les données de 2013 à 2018 et l’autre pour
l’évaluation des résultats (Test dataset) qui contient les données de 2019.
3.1.3 Modélisation
Comme annoncé dans le chapitre précédent, après la phase d’exploration, de nettoyage et de
préparation de données, vient la phase de modélisation. Le but de cette étape est de construire
un modèle capable de prédire les ventes. Dans cette étude, plusieurs algorithmes de machine
learning ont été appliqués pour la prévision des ventes. Ces différents algorithmes sont présen-
tés dans les sections suivantes.
33
F IGURE 3.8 – Exemple d’arbre de décision
L’algorithme des « forêts aléatoires » a été proposé par Leo Breiman et Adèle Cutler en
2001. La forêt aléatoire est simplement une amélioration par rapport à l’algorithme de l’arbre
de décision. Dans sa formule la plus classique, il effectue un apprentissage en parallèle sur de
multiples arbres de décision construits aléatoirement et entraînés sur des sous-ensembles de
données différents. Le nombre idéal d’arbres, qui peut aller jusqu’à plusieurs centaines voire
plus, est un paramètre important : il est très variable et dépend du problème. Concrètement,
chaque arbre de la forêt aléatoire est entraîné sur un sous ensemble aléatoire de données, avec
un sous ensemble aléatoire de features (caractéristiques ou variables). Les prédictions sont en-
suite moyennées lorsque les données sont quantitatives ou utilisés pour un vote pour des don-
nées qualitatives.
L’algorithme de forêts aléatoires a été implémenté en utilisant la bibliothèque Scikit-learn
avec l’aide de la classe RandomForestRegressor. La documentation officielle de cette classe se
trouve à la référence [47], dans laquelle ses nombreux paramètres et méthodes sont énumérés
et expliqués.
34
sont construits séquentiellement de telle sorte que chaque arbre suivant vise à réduire les er-
reurs de l’arbre précédent. Chaque arbre apprend de ses prédécesseurs et met à jour les er-
reurs résiduelles. Par conséquent, l’arbre qui croîtra ensuite dans la séquence apprendra à par-
tir d’une version mise à jour des résidus. Les modèles de base en boosting sont des modèles
faibles dans lesquels le biais1 est élevé, et le pouvoir prédictif est juste un peu meilleur que
la devinette aléatoire. Chacun de ces modèles faibles apporte des informations vitales pour la
prédiction, permettant à la technique de stimulation de produire un modèle fort en combinant
efficacement ces modèles faibles. Le modèle fort final réduit à la fois le biais et la variance2 .
L’algorithme de XGBoost a été implémenté en utilisant la bibliothèque Scikit-learn [48].
Pour répondre à notre question, nous avons essayé différents modèles de réseaux de neu-
rones en modifiant le nombre de couches ou de neurones en fonction des résultats obtenus. Du
point de vue du test et de la correction, les hyperparamètres que nous avons modifiés peuvent
être divisés en deux catégories :
• nombre de couches cachées : nous avons testé des configurations avec 2 et 3 couches
cachées dont nous faisons varier le nombre de neurones ;
• les fonctions d’activation : étant dans un cas de régression car prédisant des valeurs
réelles dans la couche de sortie, nous utilisons la fonction d’activation linéaire. Dans les
couches cachées, nous avons utilisé la fonction d’activation relu ;
1
Le biais est la différence entre la prédiction moyenne de notre modèle et la valeur correcte que nous essayons
de prédire.
2
La variance est la variabilité de la prédiction du modèle pour un point de données donné ou une valeur qui
nous indique la propagation de nos données
35
Hyperparamètres liés à l’algorithme d’entraînement
• le nombre d’époques entre 20 et 150 avec une époque qui correspond au passage de l’en-
semble de données entier à travers le réseau de neurones une seule fois ;
• la taille de lot (3, 4, 5) : au cours de l’entraînement, des poids sont affectés aux neurones
et on calcule une perte ou une précision. L’ensemble de données entier est divisé en lots.
Ainsi, afin de minimiser la perte ou augmenter la précision après une évaluation, le réseau
de neurones modifie en conséquence les poids à chaque lot.
Dataset 2
L’ensemble de données sur lequel s’est porté notre choix est dénommé « QuickRaw dataset
». Il est une collection de 50 millions de dessins de 345 catégories différentes, fournis par les
joueurs du jeu Quick Draw. Les dessins ont été capturés sous forme de vecteurs et étiquetés
avec des métadonnées incluant ce que le joueur devait dessiner et dans quel pays le joueur
se trouvait. Nous avons choisi de former et de valider cet ensemble de données particulier
en raison de sa taille relativement grande. Notifions qu’à la base nous avons voulu former
notre dataset à partir des dessins de VLISCO mais suite à plusieurs raisons telles que l’aspect
confidentiel et la contrefaçon des motifs de VLISCO nous avons été contraint de trouver un
autre dataset et c’est ce qui nous a conduit au « QuickRaw dataset ».
3.2.2 Prétraitement
En ce qui concerne le dataset 2, la phase de prétraitement permet de préparer les images
de telle sorte qu’elles soient exploitables. On l’appelle aussi phase de normalisation puisqu’elle
ramène à un format prédéfini toutes les images extraites de notre dataset. Pour garantir la bonne
performance du système, il est important que toutes les images soient de taille identique, à la
même échelle et au même format concernant les couleurs. Initialement toutes les images de
notre dataset sont en niveaux de gris sur ce point aucune transformation n’a été fait. Elles sont
36
donc représentées uniquement sur une seule couche et la valeur d’un pixel est comprise entre
0 et 255 car codée sur 8 bits. Ensuite on normalise les images ce qui a pour effet de ramener
la valeur d’un pixel entre -1 et 1. Et pour finir, on redimensionne pour une taille de 28 x 28
pixels toutes les images afin de réduire la taille en mémoire et de facilité l’apprentissage de
notre modèle. En effet, les images utilisées pour entraîner notre système sont au format 28 x 28
pixels.
3.2.3 Modélisation
Comme introduit dans le chapitre 1, le GAN imite les images en opposant deux réseaux de
neurones l’un à l’autre, l’un appelé le «générateur» et l’autre appelé le «discriminateur». Le gé-
nérateur part d’un bruit aléatoire et crée de nouvelles images, en les passant au discriminateur,
dans l’espoir qu’ils seront considérés comme authentiques (même s’ils sont faux). Le discrimi-
nateur vise à identifier les images provenant du générateur comme fausses, en les distinguant
des images réelles. Dans le cadre de notre projet nous avons implémenté deux(02) architectures
du GAN qui seront présentées dans les sections suivantes.
3.2.3.1 GAN
L’architecture d’un GAN comporte deux éléments de base : le réseau générateur et le réseau
discriminateur. Chaque réseau peut être un réseau de neurone quelconque. Le discriminateur
doit avoir des couches entièrement connectées avec un classificateur à l’extrémité. Examinons
de plus près les composants de l’architecture du GAN que nous avons implémenté :
• Le générateur de notre GAN est un simple réseau de neurones comportant cinq couches :
une couche d’entrée, trois couches cachées et une couche de sortie. La fonction d’activa-
tion utilisée pour chaque couche est le "LeaklyRelu" sauf la couche de sortie qui utilise
tanh.
37
F IGURE 3.9 – Le générateur du GAN
38
F IGURE 3.10 – Le discriminateur du GAN
39
3.2.3.2 DCGAN
Le DCGAN est une extension de l’architecture GAN qui utilise des réseaux de neurones
convolutifs pour la configuration du générateur et du discriminateur.
• Le générateur similaire a l’architecture de GAN à la différence que ici nous utilisons des
couches de convolution transposée ou sur échantillonnage (Conv2DTranspose) pour pro-
duire une image à partir d’un bruit. Comme le montre la figure ci dessous, l’architecture
est composée de cinq couches, dont une couche d’entrée, une couche de sortie, et trois
couches cachées.
40
F IGURE 3.11 – Le générateur du DCGAN
41
• Le discriminateur de notre DCGAN est un réseau de neurones convolutif standard com-
portant cinq couches, dont une couche d’entrée, une couche de sortie, deux couches de
convolution (conv2D) et une couche flatten comme le montre la figure ci dessous. La
fonction d’activation utilisée pour chaque couche est le "LeaklyRelu" accompagné d’un
"dropout" sauf la couche de sortie qui utilise une fonction sigmoïde.
42
Conclusion
Ce chapitre fait la synthèse sur la méthodologie utilisée dans l’élaboration des modèles de
prédiction en décrivant les différentes étapes qui ont permis d’aboutir aux modèles finaux.
Ensuite, il fait le point sur la configuration expérimentale ainsi que les différents paramètres
utilisés.
43
Chapitre 4
Résultats et discussion
Introduction
Ce chapitre correspond à la dernière étape de notre travail. On y présentera dans un premier
temps les résultats obtenu grâce à nos différents modèles et par la suite on les évaluera afin de
déterminer leurs efficacités.
4.1 Résultats
44
• Arbre de décisions :
F IGURE 4.1 – Prédictions de ventes obtenues avec Decision Tree pour Woodin Ganhi de Jan-Dec
2019
F IGURE 4.2 – Prédictions de ventes obtenues avec Decision Tree pour Vlisco Ganhi de Jan-Dec
2019
45
• Forêts aléatoires
F IGURE 4.3 – Prédictions de ventes obtenues avec Random forest pour Woodin Ganhi de Jan-
Dec 2019
F IGURE 4.4 – Prédictions de ventes obtenues avec Random forest pour Vlisco Ganhi de Jan-Dec
2019
46
• Extreme Gradient Boosting (XGBoost)
F IGURE 4.5 – Prédictions de ventes obtenues avec Xgboost pour Woodin Ganhi de Jan-Dec 2019
F IGURE 4.6 – Prédictions de ventes obtenues avec Xgboost pour Vlisco Ganhi de Jan-Dec 2019
47
• Réseaux de neurones artificiels
F IGURE 4.7 – Prédictions de ventes obtenues avec ANN pour Woodin Ganhi de Jan-Dec 2019
F IGURE 4.8 – Prédictions de ventes obtenues avec ANN pour Vlisco Ganhi de Jan-Dec 2019
Pour évaluer la précision des modèles développés nous allons calculer des métriques de
48
mesures de performance mais avant présentons ces métriques. Dans chacune des définitions à
venir, Y est la valeur réelle, Y 0 est la valeur prédite, Y est la moyenne des valeurs réelles et n est
la taille de l’ensemble de test :
• L’erreur moyenne absolue (MAE, 4.1) : L’erreur moyenne absolue est un très bon indi-
cateur de performance (KPI) pour mesurer la précision des prévisions. Comme son nom
l’indique, il s’agit de la moyenne de l’erreur absolue. Elle est calculée en tant que moyenne
des différences absolues entre les valeurs cibles et les prédictions.
n
1X
M AE = |Y −Y0 | (4.1)
n i=1
• L’erreur quadratique moyenne (RMSE, 4.2) : est l’écart type des erreurs qui se produisent
lorsqu’une prédiction est faite sur un ensemble de données. Cette mesure est utilisée pour
mesurer les différences entre les valeurs prédites par un modèle et les valeurs réelles. Plus
l’erreur est faible, meilleur est le modèle. Pour calculer l’erreur quadratique moyenne,
pour chaque point, il faut calculer le carré de la différence entre les prédictions et la cible,
puis calculer la racine carrée de la moyenne de ces valeurs.
v
u n
u1 X 2
RM SE = t Y −Y0 (4.2)
n i=1
Pn 2
0
i=1 Y − Y
R2 = 1 − P 2 (4.3)
n
i=1 Y − Y
Nous présentons dans le tableau 4.1 les résultats obtenus en calculant les différentes mé-
triques entre les valeurs exactes et les valeurs prédites sur l’ensemble de validation pour chaque
modèle.
49
TABLEAU 4.1 – Mesures de performance
R2 MAE RMSE
ANN 0.74 1134 2674
Decision Tree 0.83 1074 2143
Random Forest 0.91 904 1570
Xgboost 0.86 1138 1948
Prédiction 2020-2021
D’après le tableau 4.1 le modèle random forest offre les meilleures performances avec une
précision de 91%, nous allons donc utilisé ce modèle pour faire des prédictions de ventes (pour
les deux magasins de notre ensemble de données ) de Septembre 2020 à Décembre 2021. Les
prédictions sont renseignées au niveau des figures 4.9 et 4.10, on note que sur toutes l’année
2021 la boutique Vlisco Ganhi pourrait vendre plus ou moins 102660 yards de tissus Vlisco
contre 450 prêt à porter tandis que la boutique woodin Ganhi pourrait vendre 126200 yards de
tissu woodin contre 11745 prêt à poter.
F IGURE 4.9 – Prédiction de ventes Septembre 2020 à Décembre 2021 de Vlisco Ganhi
50
F IGURE 4.10 – Prédiction de ventes Septembre 2020 à Décembre 2021 de Woodin Ganhi
• GAN
51
(a) 1 epoch (b) 5 epoch
52
(e) 1000 epoch (f) 2000 epoch
• DCGAN
53
(a) 1 epoch (b) 5 epoch
54
(e) 1000 epoch (f) 2000 epoch
En général, il n’existe pas de moyens objectifs d’évaluer la performance d’un modèle GAN[49].
Nous ne pouvons donc pas calculer un score d’erreur objectif pour les images générées. La
qualité des images doit donc plutôt être évaluée subjectivement par un opérateur humain. En
observant les images 4.11 et 4.12 générées, l’un des premiers constats à faire est que la qualité
des images générées évolue de manière proportionnelle par rapport au nombre d’epoch c’est à
dire plus nous augmentons le nombre d’epoch plus nos motifs générés sont de meilleure qua-
lité et ceci pour nous deux modèles. Ensuite, à travers une analyse comparative des résultats
ci-dessus nous remarquons que la qualité des images obtenue à 1000 (voir figure 4.11e) epochs
avec le GAN est déjà obtenue à l’epoch 50 avec le DCGAN (voir figure 4.12c). On peut alors
conclure que le DCGAN donne de meilleurs résultats par rapport GAN.
4.2 Discussion
Des résultats présentés dans la section précédente, nous pouvons tirer plusieurs conclu-
sions :
55
comme coefficient de corrélation multiple. Et pour finir nous avons les modèles arbres
de décisions (Decision Tree) et Réseau de neurones qui ferment la marche avec respec-
tivement 0.83 et 0.74 comme coefficient de corrélation multiple. Comme il est expliqué
dans la section d’état de l’art, plusieurs études ont appliqué les approches d’analyse des
séries chronologiques, des algorithmes d’intelligence artificielle et même des méthodes
hybrides pour prédire les ventes. Dans cette étude, nous nous sommes concentrés sur
certaines méthodes d’intelligence artificielle plus précisément celles du machine learning
et avons démontré que ces méthodes sont performantes avec des résultats satisfaisants
dans l’ensemble. Toutefois choisir des algorithmes pour un problème n’est pas un choix
trivial. Il n’y a pas d’algorithme parfait qui fonctionne pour chaque problème. Ainsi pour
de futurs travaux, il serait donc intéressant d’essayer d’autres types d’algorithmes afin
d’obtenir des modèles de prédiction encore plus performants. De plus, il pourrait aussi
être avisé d’élargir notre dataset et de créer une application web qui intègre nos différents
modèles afin de faciliter leur utilisation par le commun des mortels.
• Quant au problème de génération de motif nous avons implémenté deux modèles (GAN
et DCGAN) qui présentent des résultats encourageant. La qualité des images varie de fa-
çon proportionnelle au nombre d’epoch pour chacun des deux modèles mais par contre
le modèle DCGAN est plus intéressant parce qu’il arrive à produire des images avec une
bonne qualité, beaucoup plus rapidement que le GAN. En effet, nous avons observé qu’à
partir de 50 epochs le DCGAN produit deja des dessins alors que avec GAN il faut at-
teindre au minimum 1000 epochs. Il est aussi important de notifier que les motifs générés
de façon générale sont à l’image du dataset utilisé et ne sont pas assez représentatifs des
motifs de pagnes, on pourrait obtenir des résultats beaucoup plus intéressants avec un
meilleur dataset. Pour la suite de ce travail, il serait impératif de changer de dataset et
d’essayer d’autres architectures de modèles toujours dans l’objectif d’améliorer nos résul-
tats.
Conclusion
Ce chapitre a fait la synthèse des résultats de notre étude. Nous avons dans un premier
temps présenté les résultats obtenus et nous avons ensuite ressorti les meilleurs modèles obte-
nus.
56
Conclusion et perspectives
Comme mentionné tout au long de ce document, les objectifs étaient de développer deux
modèles, l’un capable d’estimer les ventes de produits textiles (dans les boutiques de ventes en
détail) à travers l’analyse des ventes des années précédentes et l’autre permettant de générer
des motifs. Pour ce qui est de la prédiction des ventes, nous avons développé quatre diffé-
rents modèles (Decision tree, random forest, XGBoost et ANN) en nous basant sur un ensemble
de données contenant des informations relatives aux ventes journalières des boutiques (Vlisco
Ganhi et Woodin Ganhi) couvrant la période de janvier 2013 à décembre 2019. Nos modèles
dans l’ensemble montrent de bons résultats sur l’ensemble de données. L’algorithme de régres-
sion Random Forest est celle qui a donné les meilleurs résultats. Les résultats montrent que le
modèle proposé présente une capacité prédictive dont le coefficient de détermination est d’en-
viron 91% ce qui montre que les méthodes d’intelligence artificielle représentent une option
assez intéressante dans la prédiction des ventes. En ce qui concerne la génération des motifs,
nous avons aussi obtenu des résultats assez encourageants avec nos deux modèles développés
(GAN et DCGAN). Le modèle DCGAN est plus performant parce qu’il arrive à produire des
images avec une bonne qualité, beaucoup plus rapidement que le GAN. Mais les motifs pro-
duits par notre modèle le plus performant ne sont pas directement exploitables par l’équipe
de fabrication pour en confectionner des tissus compte tenu de l’ensemble de données utilisé
pour la formation et l’entraînement de notre modèle. N’empêche que ces résultats valident
l’hypothèse selon laquelle nous pouvons obtenir des motifs à partir d’un bruit en utilisant les
techniques de l’intelligence artificielle.
À l’avenir, il serait intéressant d’appliquer d’autres méthodes d’intelligence artificielle aux
différents problèmes afin d’obtenir des modèles encore plus performants. Aussi, construire une
application web qui intègre nos différents modèles afin de faciliter leur usage. Pour la généra-
tion de motif de façon spécifique il serait important de changer de dataset afin d’obtenir des
motifs beaucoup plus parlants et exploitables.
57
English Part
Sales forecast and design generation for
textile products using machine learning
58
Introduction
In sub-Saharan Africa, the loincloth has become an important tool of cultural and social
distinction. The encounter of Africans with this fabric, which occupies a capital place in their
customs, goes back more than a century. The printed loincloth, carrying a message, is consid-
ered as an expression of the personality [1]. The integration of the loincloth into local clothing
cultures has been so extensive that printing plants have been set up all over Africa (Ivory Coast,
Ghana) but a large part of the volume consumed continues to be imported from Europe and
Asia. Demand is stronger than ever and continues to grow. As a result, the industry is evolving
at an alarming rate. Part of the challenge is to streamline design and production processes. Most
of the industry’s technological advances have revolutionized production through automation.
However, the design aspect remains a considerable obstacle to the marketing of more loincloths
or new models. Today, designs for loincloth patterns take root in the minds of human designers
and are meticulously refined over many iterations. What we want to see is whether we can use
the latest advances in artificial intelligence to digitally generate new designs to speed up the
design process.
Just as important as the design is the sale of the product because the goal of any business is to
make a profit. This is accomplished by having more sales than costs. JOHN WALKDEN et Cie
S.A. (JWC) is a distribution subsidiary of the VLISCO Group, specialized in the importation and
exclusive distribution of its four (04) product brands: VLISCO, WOODIN, UNIWAX and GTP,
based in Cotonou. Before arriving in stores, the products go through a supply chain that begins
with the design of the designs of the loincloths and the production of the products several
months before they enter the market. This fact requires companies to forecast the quantity sold
of each product in order to determine the quantity to be purchased from the supplier. A wrong
forecast results in a loss of profit, due to a loss of sales or an excess of stocks. In this work we
propose models based on artificial intelligence methods to predict sales.
To summarize the objective of this work is to develop two models, one capable of estimating
the sales of textile products (in retail shops) through the analysis of previous years sales and
the other capable of generating creative designs for loincloths.
• fashion trends lead to high volatility in consumer demand. The style of articles must
59
always be updated and articles are often not repeated for the next collection. Due to
the constant novelty and short duration of the articles in the stores, historical sales are
practically non-existent. This results in a low predictability of demand;
• sales are conditioned by many other variables such as end-of-season sales, sales promo-
tion, consumer purchasing power, etc.
• there is a high variability of products. They can have different colours, shapes and sizes.
All of them must satisfy the final consumer;
• in the fashion market, purchases are most often made on impulse when confronted with
the product in a store, and not out of necessity, so the availability and visibility of the
product in stores is of great importance, so it is important to have the right product to sell;
• fashion products also have a high instability of demand, as they are usually affected by
external conditions such as weather or the use of such items by celebrities;
Taking all these factors into account, sales forecasting is a real problem in the textile trade.
60
other techniques in conjunction with these statistical methods may be a way to overcome some
of these obstacles.
As we have seen, pure statistical models do not provide good sales forecasts. In order to
improve forecast accuracy, AI methods are emerging with advances in computer technology. In
fact, AI models can effectively derive "arbitrarily non-linear" approximation functions directly
from the data. Popular machine learning algorithms such as decision tree, random forest or
Xgboost have been applied for sales forecasting in the fashion industry and elsewhere. For ex-
ample Mikael Holmberg and Pontus Halldén [9] applied algorithms such as Xgboost, decision
tree to predict the sales of a restaurant. In the fashion industry, we also have Nelson da Silva
Alves [10] who applied in addition to decision and random forest, the SVm to predict sales, he
demonstrates at the end that his random forest model offers the best performance compared
to other models developed. In addition, other methods such as artificial neural network mod-
els (ANN) [11] and fuzzy logic models are commonly used in the literature. More specifically,
ANN models have been developed and give satisfactory results in different domains. Despite
the fact that ANN models perform well in terms of forecast accuracy (as indicated by perfor-
mance measures such as root mean square error), these forecast models require a very long
time to complete the forecasting task. The reason for this drawback is that these models use
gradient-based learning algorithms such as the neural network of backpropagation.
Hybrid forecasting methods are usually developed on the basis that they can use the strengths
of different models together to form a new forecasting method. As such, many of them are con-
sidered to be more efficient than pure statistical models and pure AI models. Due to the use of
several techniques in the same model, statistical models or even pure ANN models eventually
become less efficient. Not surprisingly, in recent years, a number of research studies have ex-
amined hybrid forecasting methods, for example[15, 16, 17, 18]. Hybrid methods used in the
fashion forecasting literature often combine different schemes such as the fuzzy model, ANN,
with other techniques.
61
[26]. Goodfellow proposed an image generation system based on a network of generators, G,
and a network of discriminators, D. At each iteration of shaping, G generates a set of images
and tries to make them as realistic as possible. Simultaneously, D tries to determine whether
each of the images of G is real or not. As G and D train against each other, the generated images
should become increasingly realistic. Based on this model, researchers from different countries
have developed interesting applications for the technology, including image animation, super-
resolution images [27] and text-to-speech image synthesis [28].
62
Experimental setup The implementations and tests have been realized with python and ana-
conda distribution packages [50, 39]. We also use keras [41] with tensorflow [40] as backend to
build Our different models. All experiments were conducted on a 2.8 GHz Intel core i3 proces-
sor using Ubuntu 18.04 LTS [37].
Methods The execution of the project was divided into several stages in order to define the
problem in a structured manner. Thus, the main steps were as follows:
• Data collection: The very first and most important step was to collect the relevant data
corresponding to our problem. Accurate data collection is essential to maintain the in-
tegrity of our machine learning project;
• Data pre-processing: It is a process of cleaning up raw data, i.e. data collected in the real
world is converted into a clean data set. In other words, the data set that supports the
project is analyzed. The database is studied, the quality of the data will be analyzed, e.g.
if there are missing data, redundant values, inconsistent information, noisy data, outliers,
or data with impossible values that need to be processed. The data will be subject to
statistical analysis so that they can be better interpreted.
• Evaluation: Once the training is completed, it is time to see if the model is good, using
evaluation. This is where the data set we set aside earlier comes in. Evaluation allows
us to compare our model to data that has never been used for training. It allows us to
see how the model might work against data that it has not yet seen. This is meant to be
representative of how the model might work in the real world.
63
Sales Prediction As with all machine learning problems, the training and evaluation of a
learning model is done using a dataset with examples called a "dataset". In our work we used
a dataset for the prediction of sales in stores (dataset 1). This dataset for sales prediction was
extracted from the JWC database using QlickView software and contains 170294 sample data
sets. It contains daily store sales information covering the period from January 2013 to Decem-
ber 2019. During the pre-processing phase we analyzed our dataset, created new variables,
made a selection by studying the correlation between the variables as well as with the target
variable. At the end of all this process we were able to retain the variables indicated in the
following table4.2 for the training and validation of our prediction models.
Date
season
goodPeriod
Location
Marque
Product_Type
Nb_boutique
Boutique_type
Sales_last_1_month
Sales_last_3_month
Sales_last_6_month
Sales_Avg_last_3_month
Sales_Avg_last_6_month
Sales
In order to respond to our problem, we developed four (04) models of the learning machines
during the modeling phase:
• Decesion Tree;
• Random Forest;
• Xgboost;
• ANN
These models were mainly developed using the Scikit-learn and tensorflow library. It is
important to add that for the training of the models we used data from 2013 to 2018 and for
64
the tests we used data from 2019. The next chapter will present the results and scores obtained
with these models.
Design Generation Within the framework of our work we used another dataset, different
from the previous one for the generation of patterns for loincloths (dataset 2). The dataset we
chose is called "QuickRaw dataset". It is a collection of 50 million designs from 345 different
categories, provided by players of the Quick Draw game. The drawings were captured as
vectors and tagged with metadata including what the player should draw and in which country
the player was located. We chose to train and validate this particular dataset because of its
relatively large size. Let’s note that we originally wanted to form our dataset from the VLISCO
drawings but due to several reasons such as the confidential aspect and the counterfeiting of
the VLISCO patterns we were forced to find another dataset and this is what led us to the
"QuickRaw dataset". In order to guarantee the good performance of the system, it is important
that all the images are of the same size, at the same scale and in the same format concerning the
colors. Initially all the images of our dataset are in grayscale on this point no transformation
was made. They are thus represented only on a single layer and the value of a pixel is between 0
and 255 because coded on 8 bits. Then we normalize the images which has the effect of reducing
the value of a pixel between -1 and 1. And finally, we resize all the images to a size of 28 x 28
pixels in order to reduce the size in memory and facilitate the learning of our model. Indeed,
the images used to train our system are in 28 x 28 pixels format.
To answer our problem of pattern generation we have developed two models namely GAN
and DCGAN. Each of these models is composed of two neural networks (generator and dis-
crimer) whose architectures will be described in figures 3.9, 3.10 for GAN and 3.11, 3.12 for
DCGAN.
65
Table 4.3 – Performance measures
R2 MAE RMSE
ANN 0.74 1134 2674
Decision Tree 0.83 1074 2143
Random Forest 0.91 904 1570
Xgboost 0.86 1138 1948
The Random Forest model offers better results with lower root mean square errors (MAE:904
and RMSE 1570) and a higher multiple correlation coefficient(0.91). This means that the predic-
tions made with this model are closer to the validation data and thus it is the architecture that
gave the best results. Not far from this model we find in second position the Xgboost model
with 0.86 as multiple correlation coefficient. And finally we have the Decision Tree and Neural
Network models that close the gap with respectively 0.83 and 0.74 as multiple correlation coef-
ficient. The figures 4.13 and 4.14 show the results obtained with the random forest model and
we notice that the predictive data (see orange color) are quite close to the real values (see blue
color).
Figure 4.13 – Sales predictions obtained with Random forest for Woodin Ganhi of Jan-Dec 2019
66
Figure 4.14 – Sales predictions obtained with Random forest for Vlisco Ganhi of Jan-Dec 2019
2
Indeed, as explained in the state of the art section, several studies have applied time se-
ries analysis approaches, artificial intelligence algorithms and even hybrid methods to predict
sales. In this study, we focused on some artificial intelligence methods more specifically those
of machine learning and demonstrated that these methods are efficient with satisfactory results
overall. However, choosing algorithms for a problem is not a trivial choice. There is no perfect
algorithm that works for every problem. Therefore, for future work, it would be interesting
to try other types of algorithms in order to obtain even better prediction models. Moreover,
it could also be wise to expand our dataset and create a web application that integrates our
different models to facilitate their use by the common man.
• GAN
67
(a) 1 epoch (b) 5 epoch
68
(e) 1000 epoch (f) 2000 epoch
• DCGAN
69
(a) 1 epoch (b) 5 epoch
70
(e) 1000 epoch (f) 2000 epoch
Analyzing the results obtained we realize that the quality of the images varies proportion-
ally to the number of epochs for each of the two models, but on the other hand the DCGAN
model is more interesting because it is able to produce images with good quality, much faster
than GAN. Indeed, we have observed that from 50 epochs DCGAN already produces drawings
whereas with GAN it is necessary to reach at least 1000 epochs. We can therefore say that our
results are encouraging but it is also important to note that the design generated in general are
like the dataset used and are not representative enough of the design of loincloths, we could
obtain much more interesting results with a better dataset. For the continuation of this work,
it would be imperative to change dataset and try other model architectures always with the
objective of improving our results.
Conclusion
As mentioned throughout this document, the objectives were to develop two models, one
capable of estimating sales of textile products (in retail shops) through the analysis of previous
years’ sales and the other capable of generating patterns. In terms of sales prediction, we de-
veloped four different models (Decision tree, random forest, XGBoost and ANN) based on a
data set containing information on daily sales in boutiques (Vlisco Ganhi and Woodin Ganhi)
covering the period from January 2013 to December 2019. Our models as a whole show good re-
sults on the dataset. The Random Forest regression algorithm gave the best results. The results
show that the proposed model has a predictive capability with a coefficient of determination
of about 91% which shows that artificial intelligence methods are a fairly interesting option in
71
sales prediction. As far as pattern generation is concerned, we also obtained quite encouraging
results with our two developed models (GAN and DCGAN). The DCGAN model is more ef-
ficient because it can produce images with good quality, much faster than GAN. However, the
patterns produced by our best performing model are not directly usable by the manufacturing
team to make fabrics from it, given the data set used for the training and practice of our model.
Nevertheless, these results validate the hypothesis that we can obtain patterns from noise using
artificial intelligence techniques.
In the future, it would be interesting to apply other artificial intelligence methods to different
problems in order to obtain even better models. Also, build a web application that integrates
our different models in order to facilitate their use. For pattern generation in a specific way,
it would be important to change dataset in order to obtain much more meaningful and usable
patterns.
72
Bibliographie
[1] Romaric AHODEGNON et David MAFONGOU., Quelles stratégies pour JOHN WALKDEN
et Compagnie S.A pour accroître la consommation des produits de la marque VLISCO au Bénin ?.pp.
1–3.
[2] Thomassey, S. (2014)., Intelligent fashion forecasting systems : Models and applications. In T.-M.
Choi, C.-L. Hui, Y. Yu(eds.), pp. 9–27.
[3] P. Vroman, M. Happiette, and C. Vasseur, A hybrid neural model for mean-term sales forecasting
of textile items, Studies in Informatics and Control, vol. 10, no. 2, pp. 149–168, 2001
[4] Papalexopoulos AD, Hesterberg TC., A regression-based approach to short-term system load fo-
recasting. IEEE Trans Power Syst 5 :1535–1547. 1990.
[5] Brown RG., Smoothing forecasting and prediction of discrete time series. Prentice Hall, Engle-
wood Cliffs. 1959.
[6] Armstrong JS., Principles of forecasting – a handbook for researchers and practitioners. Kluwer,
Norwell. 2001.
[7] M. Green and P. J. Harrison., Fashion forecasting for a mail order company using a bayesian
approach. Operational Research Quarterly, vol. 24, no. 2, pp. 193–205, 1973.
[8] P. M. Yelland and X. J. Dong, Forecasting demand for fashion goods : a hierarchical Bayesian
approach. in Handbook on Intelligent Fashion Forecasting Systems, 2013.
[9] Mikael Holmberg and Pontus Halldén, Machine Learning for Restaurant Sales Forecast. May
2018
[10] Nelson da Silva Alves, Predicting product sales in fashion retailing : a data analytics approach.
July 2017
[11] C. Frank, A. Garg, A. Raheja, and L. Sztandera, Forecasting women’s apparel sales using ma-
thematical modeling. International Journal of Clothing Science and Technology, vol. 15, no. 2,
pp. 107–125, 2003.
73
[12] D. Olson and C. Mossman, Neural network forecasts of Canadian stock returns using accounting
ratios. International Journal of Forecasting, vol. 19, no. 3, pp. 453–465, 2003.
[13] H. Yoo, Short term load forecasting using a self-supervised adaptive neural network. IEEE Tran-
sactions on Power Systems, vol. 14, no. 2, pp. 779–784, 1999.
[15] P. G. Zhang., Time series forecasting using a hybrid ARIMA and neural network mo-
del,.Neurocomputing, vol. 50, pp. 159-175, 2003.
[16] A. Sfetsos and C. Siriopoulos., Time series forecasting with a hybrid clustering scheme and pat-
tern recognition,.IEEE Transactions on Systems, Man, and Cybernetics Part A, vol. 34, no. 3,
pp. 399–405, 2004.
[17] L. Aburto and R. Weber., Improved supply chain management based on hybrid demand fore-
casts,.Applied Soft Computing Journal, vol. 7, no. 1, pp. 136–144, 2007.
[18] F. Pan, H. Zhang, and M. Xia, A hybrid time-series forecasting model using extreme learning ma-
chines. in Proceedings of the 2nd International Conference on Intelligent Computing Tech-
nology and Automation (ICICTA ’09), pp. 933–936, Changsha, China, October 2009.
[19] S. Thomassey and M. Happiette, A neural clustering and classification system for sales fore-
casting of new apparel items. Applied Soft Computing Journal, vol. 7, no. 4, pp. 1177–1187,
2007.
[20] E. Yesil, M. Kaya, and S. Siradag, Fuzzy forecast combiner design for fast fashion demand fore-
casting,. in Proceedings of the IEEE International Symposium in Innovations in Intelligent
Systems and Applications (INISTA ’12), pp. 1–5, 2012.
[21] Aaron van den Oord, Nal Kalchbrenner, and Koray Kavukcuoglu, Pixel recurrent neural
networks,.In : arXiv preprint arXiv :1601.06759 (2016).
[22] Aaron van den Oord et al., Conditional Image Generation with PixelCNN Decoders,.In : arXiv
preprint arXiv :1606.05328 (2016).
[23] P. Machado, J. Romero, and B. Manaris., An iterative approach to stylistic change in evolutio-
nary art,
[24] P. Machado and A. Cardoso, Nevar–the assessment of an evolutionary art tool,In Proc. of the
AISB00 Symposium on Creative & Cultural Aspects and Applications of AI & Cognitive
Science, volume 456, 2000.
74
[25] S. DiPaola and L. Gabora., Incorporating characteristics of human creativity into an evolutionary
art algorithm,.In : Genetic Programming and Evolvable Machines, 10(2) :97–110, 2009.
[26] Ian Goodfellow et al, Generative adversarial nets, In : Advances in neural information pro-
cessing systems. 2014, pp. 2672–2680
[27] Christian Ledig et al., Photo-realistic single image super-resolution using a generative adversa-
rial network, In : arXiv preprint arXiv :1609.04802 2016.
[28] Scott Reed et al., Generative adversarial text to image synthesis, In : Proceedings of The 33rd
International Conference on Machine Learning. Vol. 3. 2016.
[29] Alec Radford, Luke Metz, and Soumith Chintala., Unsupervised representation learning with
deep convolutional generative adversarial networks, In : arXiv preprint arXiv :1511.06434, 2015.
[30] Mehdi Mirza and Simon Osindero. Conditional generative adversarial nets In : arXiv preprint
arXiv :1411.1784,2014.
[31] Jaime Deverall,Jiwoo Lee,Miguel Ayala, Using Generative Adversarial Networks to Design
Shoes (June 13, 2017).
[32] Y. R.Cui, Q.Liu, C.Y.Gao et Z.Su, Display your fashion design using Conditional Generative
Adversarial Nets (2018).
[33] Raschka, S., and Mirjalili, V.,Python Machine Learning, 2nd Ed,. Packt Publishing, Birmin-
gham, UK, 2 edition, 2017.
[35] Harold KIOSSOU, Prédiction des performances d’une architecture 2D SOME-Bus avec le deep
learning, pp.22, 2018.
[36] https://missinglink.ai/guides/neural-network-concepts/complete-
guide-artificial-neural-networks/. Consulté le 21 Janvier 2020.
75
[40] Tensorflow. Google. Disponible depuis : https://www.tensorflow.org/. Consulté le
19 Septembre 2019.
[44] John Gennari, Pat Langley, and Doug Fisher. Models of incremental concept formation..
40 :11–61, 09 1989.
[45] Ron Kohavi and George H. John. Wrappers for feature subset selection. Artif. Intell.. 97(1-
2) :273–324, December 1997.
[46] https://scikit-learn.org/stable/modules/generated/sklearn.tree.
DecisionTreeRegressor.html/. Consulté le 19 Janvier 2020.
[47] https://scikit-learn.org/stable/modules/generated/sklearn.
ensemble.RandomForestRegressor.html. Consulté le 19 Janvier 2020.
[49] Jason Brownlee ; How to Develop a GAN for Generating MNIST Handwritten Digits :
https://machinelearningmastery.com/how-to-develop-a-generative-
adversarial-network-for-an-mnist-handwritten-digits-from-scratch-
in-keras/. Consulté le 2 Févrié 2020.
76
Annexe A
Dropout
Le dropout consiste à passer en revue toutes les couches d’un réseau de neurone et à établir
la probabilité de conserver ou non certains nœuds. Bien sûr, la couche d’entrée et la couche
de sortie restent les mêmes. La probabilité de conserver chaque nœud est fixée au hasard. On
décide seulement du seuil : une valeur qui déterminera si le nœud est conservé ou non. Par
exemple, le seuil est fixé à 0,7, alors il y a une probabilité de 30% qu’un nœud soit retiré du
réseau. Il en résultera donc un réseau de neurones beaucoup plus petit et plus simple, comme
indiqué ci-dessous.
77
F IGURE A.2 – Example de réseau de neurone après dropout
Il peut sembler fou de retirer aléatoirement des nœuds d’un réseau de neurones pour le
régulariser. Pourtant, c’est une méthode largement utilisée et il a été prouvé qu’elle améliorait
considérablement les performances des réseaux de neurones[51]. Alors, pourquoi cela fonctionne-
t-il si bien ? Le dropout signifie que le réseau de neurone ne peut compter sur aucun nœud
d’entrée, puisque chacun a une probabilité aléatoire d’être retiré. Par conséquent, le réseau de
neurone hésitera à accorder un poids élevé à certaines caractéristiques, car elles pourraient dis-
paraître. Par conséquent, les poids sont répartis sur toutes les caractéristiques, ce qui les rend
plus petites. Cela a pour effet de rétrécir le modèle et de le régulariser et donc d’éviter le over-
fitting.
78
Annexe B
Quelques portions de codes
Ici nous présentons nos codes implémentés pour les modèles GAN et DCGAN.
• GAN
1 def get_generator(optimizer):
2 generator = Sequential()
3 generator.add(Dense(256, input_dim=random_dim, kernel_initializer=
initializers.RandomNormal(stddev=0.02)))
4 generator.add(LeakyReLU(0.2))
5 generator.add(Dense(512))
6 generator.add(LeakyReLU(0.2))
7
8 generator.add(Dense(1024))
9 generator.add(LeakyReLU(0.2))
10
11 generator.add(Dense(784, activation='tanh'))
12 generator.compile(loss='binary_crossentropy', optimizer=optimizer)
13 return generator
14
2 def get_discriminator(optimizer):
3 discriminator = Sequential()
4 discriminator.add(Dense(1024, input_dim=784, kernel_initializer=
initializers.RandomNormal(stddev=0.02)))
5 discriminator.add(LeakyReLU(0.2))
6 discriminator.add(Dropout(0.3))
7 discriminator.add(Dense(512))
8 discriminator.add(LeakyReLU(0.2))
9 discriminator.add(Dropout(0.3))
10 discriminator.add(Dense(256))
11 discriminator.add(LeakyReLU(0.2))
79
12 discriminator.add(Dropout(0.3))
13 discriminator.add(Dense(1, activation='sigmoid'))
14 discriminator.compile(loss='binary_crossentropy', metrics=['accuracy'],
optimizer=optimizer)
15 return discriminator
16
17
• DCGAN
1 def get_generator(optimizer):
2 model = Sequential()
3 model.add(Dense(7*7*256, use_bias=False, input_dim=random_dim))
4 model.add(BatchNormalization())
5 model.add(LeakyReLU())
6
7 model.add(Reshape((7, 7, 256)))
8 assert model.output_shape == (None, 7, 7, 256) # Note: None is the batch
size
9
2 def get_discriminator(optimizer):
3 discriminator = Sequential()
4 discriminator.add(Conv2D(64, kernel_size=(5, 5), strides=(2, 2), padding='
same', input_shape=(28, 28, 1), kernel_initializer=initializers.
RandomNormal(stddev=0.02)))
80
5 discriminator.add(LeakyReLU(0.2))
6 discriminator.add(Dropout(0.3))
7 discriminator.add(Conv2D(128, kernel_size=(5, 5), strides=(2, 2), padding=
'same'))
8 discriminator.add(LeakyReLU(0.2))
9 discriminator.add(Dropout(0.3))
10 discriminator.add(Flatten())
11 discriminator.add(Dense(1, activation='sigmoid'))
12 discriminator.compile(loss='binary_crossentropy', metrics=['accuracy'],
optimizer=optimizer)
13
14 return discriminator
15
16
81
Table des matières
Dédicaces i
Remerciements ii
Introduction 1
1 Etat de l’art 4
1.1 Le commerce du textile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Les variables exogènes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 La saisonnalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Prédiction des ventes dans le domaine du textile et de la mode . . . . . . . . . . . 6
1.3 Génération de motif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Intelligence Artificielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.3 Generative Adversarial Networks (GAN) . . . . . . . . . . . . . . . . . . . 15
2 Matériel et Méthodes 17
2.1 Matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Choix techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 Solution proposée 24
3.1 Prédiction de ventes dans les boutiques . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1 Collecte de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.2 Prétraitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Génération de motifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
82
3.2.1 Collecte des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.2 Prétraitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4 Résultats et discussion 44
4.1 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1 Prédiction de ventes dans les boutiques . . . . . . . . . . . . . . . . . . . . 44
4.1.2 Génération de motif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Conclusion et perspectives 57
English Part
Sales forecast and design generation for textile products using machine
learning 58
4.3 Textile trade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.4 Related Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.1 Sales Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.2 Design generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.3 Primer on Artificial Neural Network . . . . . . . . . . . . . . . . . . . . . . 62
4.5 Material and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.6 Proposed solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.7 Results and discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.7.1 Sales Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.7.2 Design Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Bibliographie 73
A Dropout 77