portaldacalheta.pt
  • Principal
  • Science Des Données Et Bases De Données
  • Conception Mobile
  • Design De Marque
  • Personnes Et Équipes Produit
Science Des Données Et Bases De Données

Optimiser les revenus des détaillants avec l'IA de prévision des ventes



La prévision est une technique qui utilise des données et des événements historiques pour construire des estimations sur les tendances futures, les catastrophes potentielles et le comportement général de tout sujet. Les prévisions peuvent être utilisées comme support probabiliste pour l'analyse de décision, pour estimer les dépenses, les revenus et les plans budgétaires.

La prévision en entreprise peut être divisée en deux catégories distinctes: prévision qualitative et prévision quantitative .



  • Prévisions qualitatives. Les prévisions qualitatives concernent les études de marché et les stratégies de marché, elles sont donc davantage axées sur les experts et influencées par les facteurs humains. Il vise généralement à élaborer une stratégie à court terme.
  • Prévisions quantitatives. Les prévisions quantitatives excluent tout facteur humain. Cela dépend uniquement des données historiques dont une entité dispose et vise à prédire quels seront certains facteurs tels que les ventes, les prix et d'autres aspects financiers à long terme.

Pour plus d'informations, vous pouvez consulter Prévisions financières d’Investopedia premier.



Les deux types de prévisions se sont révélés très prometteurs et ont réussi à créer des améliorations commerciales pour de nombreuses entités.



Si vous souhaitez en savoir plus sur la manière dont les prévisions peuvent affecter les décisions de marché, un bon point de départ est Marchés de prédiction: principes de base, conceptions et applications par Stefan Luckner et al.

Un problème que nous pouvons résoudre en utilisant la prévision quantitative est la prévision de la demande ou la prévision des ventes.



Approches de prévision de la demande et de prévision des ventes

Supposons que vous soyez un détaillant exploitant de nombreux magasins et que chaque magasin dispose d'un système de réapprovisionnement de stock de produits statique basé sur des décisions humaines basées sur certains événements tels que les saisons et les tendances du marché.

Parfois, vous rencontrerez l'un de ces problèmes pouvant conduire à deux problèmes majeurs:



  • Produits surchargés. Avoir un stock substantiel de produits prévu pour être vendu pendant un certain laps de temps mais pas vendu.
  • Produits en rupture de stock. Avoir la possibilité de vendre un produit mais être incapable car le produit n'est pas disponible.

Selon une enquête IHL Group auprès de 600 ménages et détaillants , les détaillants perdent près d'un billion de dollars de ventes par an en raison de problèmes de rupture de stock.

«Les acheteurs sont confrontés à des ruptures de stock aussi souvent qu'un voyage d'achat sur trois, selon le rapport, qui a été envoyé par e-mail à Retail Dive. Chez les détaillants de produits alimentaires, pharmaceutiques et de masse, ils rencontrent des articles en rupture de stock au cours d'un voyage sur cinq, dans les grands magasins et les détaillants spécialisés, c'est un sur quatre, et dans les magasins d'électronique, un sur trois ». Groupe IHL trouvé.



Il semble que ces deux problèmes entraînent une diminution des revenus car soit nous avons perdu une probabilité de vente, soit nous avons investi plus d'argent dans des produits invendus, ce qui signifie avoir des actifs qui ne génèrent pas de revenus de sitôt pour compenser leurs coûts.

Ceci est clairement préjudiciable aux flux de trésorerie de l’entité, et pour faire face à ce risque, nous avons besoin de deux choses:



programmation c et c++
  • Plus de contributions pour nous aider à prendre la décision
  • Une équipe de prévision qui peut faire la planification stratégique à long terme des systèmes de réapprovisionnement des stocks

La question est donc la suivante: quelles sont les indications dont vous avez besoin pour adopter l'IA dans votre entreprise pour aider votre processus de prévision?

Pour prendre cette décision, vous avez besoin de réponses d'experts aux questions suivantes:



  • Est-il difficile de prévoir votre pipeline de ventes?
  • Vos prévisions de ventes sont-elles inexactes ou insuffisamment précises (même si vous disposez de données historiques)?
  • Souffrez-vous de problèmes de rupture de stock ou de surstock?
  • Êtes-vous incapable d'extraire des informations descriptives et inférentielles des données que vous possédez pour guider vos décisions et votre planification?

Les réponses à ces questions doivent être un signal clair qui vous aide à décider de commencer ou non à utiliser l'IA dans vos stratégies de prévision.

Comment l'IA peut-elle profiter au processus de prévision des ventes?

L'IA a montré d'excellents résultats en surpassant les prévisions humaines dans de nombreuses entreprises, permettant une prise de décision et une planification plus rapides ainsi que des stratégies de gestion des risques plus fiables. C'est pourquoi les meilleures entreprises adoptent l'IA dans leur planification .

Lorsqu'il s'agit d'un problème de prévision de la demande, la méthode de prévision de séries chronologiques peut être utilisée pour prédire les ventes de chaque produit, permettant ainsi aux entreprises d'optimiser le réapprovisionnement des stocks et de minimiser l'occurrence des problèmes susmentionnés. Cependant, de nombreux modèles ont du mal à prévoir au niveau du produit individuel ou au niveau de la catégorie de produit, en raison du manque de fonctionnalités nécessaires. La question est donc la suivante: comment pouvons-nous le faire fonctionner et tirer le meilleur parti de nos données?

Pour les détaillants réels, ces problèmes sont tout sauf insignifiants. Soit vous avez plus de 1000 produits qui introduisent beaucoup de non-linéarité dans l'ensemble de données et dépendances multivariées , ou vous devez être averti du montant du réapprovisionnement prévu des stocks avec beaucoup de préavis pour pouvoir le produire ou l'acheter, ou faire tout ce dont vous avez besoin pour l'acquérir au moment où la demande se matérialise.

Dans ce cas, les modèles classiques comme ARIMA et ES-TU ne fonctionnera pas et nous aurons besoin d’une méthode plus robuste comme RNN et XGBoost , et c'est pourquoi nous avons besoin de beaucoup de création de fonctionnalités pour résoudre ce problème.

Pour que cela fonctionne, nous devons:

  • Acquérir les fonctionnalités d'entrée nécessaires pour expliquer la variété et la diversité des produits.
  • Catégorisez nos données afin que chaque catégorie ait le même comportement de série chronologique, et chaque catégorie sera traitée à l'aide d'un modèle autonome.
  • Former nos modèles sur les fonctionnalités d'entrée catégorisées acquises.

Pour les besoins de cet article, nous prendrons XGBoost comme exemple d'un tel modèle.

Fonctionnalités requises dans les modèles de prévision des ventes

L'ensemble des fonctionnalités nécessaires à ce problème est classé en quatre groupes principaux:

  • Fonctions liées au temps
  • Fonctionnalités liées aux ventes
  • Fonctionnalités liées aux prix
  • Caractéristiques liées aux stocks

Fonctionnalités liées au temps

contrairement à apprentissage en profondeur (réseau neuronal récurrent) , les modèles d'apprentissage automatique ne peuvent pas obtenir de dépendances à long ou à court terme dans une série chronologique sans créer une couche d'extraction manuelle des entités pour le datetime fonctionnalité.

De nombreuses fonctionnalités peuvent être extraites de la date, telles que:

  • An
  • journée
  • Heure
  • Week-end ou jour de semaine (que le jour soit un jour de semaine ou un week-end)
  • Jour de la semaine

De nombreuses approches extraient simplement ces caractéristiques temporelles et les utilisent comme entrées et forment des modèles, mais une ingénierie supplémentaire peut être effectuée. Comme nous pouvons le voir, les caractéristiques (jour, heure, jour de la semaine) sont périodiques, ce qui signifie qu'elles ont une plage de valeurs répétitives. Comment un modèle peut-il gérer cela?

La réponse courte est que non, car ce que le modèle voit, c'est que 00h00 est à 23 heures de 23h00, mais en fait, il est à une heure. Une façon de résoudre ce problème consiste à convertir ces caractéristiques en transformation cyclique.

Fonctionnalités liées au temps

En utilisant le concept de sinus et cosinus, ou représentation vectorielle, on peut convertir chaque heure (24 heures) en un angle, et en utilisant le sin et le cosinus de ceux-ci, il sera beaucoup plus facile pour le modèle de détecter les proportions réelles entre les heures, indépendamment de la périodicité.

Cela supprimera la discontinuité qui se produit dans les fonctions de temps périodiques ou dans toute caractéristique périodique.

Pour notre article, nous utiliserons le Exemple de jeu de données Superstore trouvé publiquement et essayez de prédire les ventes mensuelles cibles pour une certaine catégorie de produits.

De plus, nous utiliserons l'environnement Python 3.7 avec les bibliothèques suivantes:

  • NumPy
  • Pandas
  • XGBoost
  • Sklearn

Maintenant, je vais vous montrer comment créer la fonction de conversion des caractéristiques de période et tester si cela a été utile ou non.

def convert_periodic(val,period): theta = 2*np.pi*val/period sin_period = np.sin(theta) cos_period = np.cos(theta) return sin_period,cos_period def convert_month(x): return convert_periodic(x,12) df['sin_month'], df['cos_month'] = zip(*df['month'].map(convert_month))

Avec cela en place, nous sommes prêts à tester si la fonctionnalité ajoutée améliorera les performances ou non.

X = df.drop(['Order Date','Sales','sin_month', 'cos_month'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False)

Comme nous pouvons le voir, nous avons effectué une transformation log 1p pour notre fonctionnalité de vente cible, car il s'agit d'une fonctionnalité biaisée (non distribuée normalement).

Maintenant, nous allons ajuster un régresseur XGBoost sur les données.

y_pred = model.predict(X_test) print(f'Loss without cyclic conversion on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss without cyclic conversion on testing set is 0.4313676193485837

Ensuite, nous allons essayer avec notre fonctionnalité créée.

X = df.drop(['Order Date','Sales'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False) y_pred = model.predict(X_test) print(f'Loss with cyclic conversion on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss with cyclic conversion on testing set is 0.33868030449130826

Comme nous pouvons le voir, la perte est passée de 0,43 RMSE à 0,33 RMSE.

Certaines autres fonctionnalités liées au temps auxquelles vous pouvez penser, en fonction de votre problème, sont:

  • Nombre de mois depuis que l'article était dans le magasin
  • Nombre de jours depuis la dernière vente

Fonctionnalités liées aux ventes

Il s'agit de la principale fonction d'entrée de base nécessaire pour prédire nos ventes, alors comment tirer le meilleur parti des données de vente? Nous pouvons y parvenir en utilisant le concept de retard et d'autocorrélation.

Les caractéristiques de décalage sont des records de ventes historiques pour les produits. Par exemple, si nous avons pris une fonctionnalité de 12 décalages pour les ventes mensuelles comme entrée de notre modèle pour prédire les ventes de mai 2020, cela signifie que nous fournirons au modèle des enregistrements de données entre mai 2019 et avril 2020. Cela peut être très utile.

En outre, il peut être interprété à l'aide de tracés d'autocorrélation pour vérifier la corrélation entre l'entité cible et ses entités retardées. Cela permet également de sélectionner uniquement les fonctionnalités corrélées parmi les fonctionnalités retardées, de sorte que nous réduisons l'utilisation de la mémoire et la redondance des fonctionnalités.

Voici comment nous pouvons ajouter des fonctionnalités de décalage dans notre dataframe:

for i in range(3): df[f'lag_{i+1}'] = df['Sales'].shift(i+1) df = df.dropna() df.head()

Fonctionnalités liées aux ventes

Ici, j'ai choisi une valeur d'une fonctionnalité à trois délais à inclure dans notre ensemble de formation. Cette fonction est un hyperparamètre. Vous pouvez la choisir en fonction du tracé d'autocorrélation ou en essayant de nombreuses valeurs et en choisissant simplement la meilleure lors de la phase de réglage.

X = df.drop(['Order Date','Sales'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False) y_pred = model.predict(X_test) print(f'Loss with lag features on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss with lag and aggregated sales features on testing set is 0.2862175857169188

Maintenant, RMSE est passé à 0,28, en utilisant à la fois les fonctionnalités de décalage et les conversions cycliques.

exemples d'authentification basée sur des jetons

Vous pouvez ajouter quelques fonctionnalités supplémentaires liées aux ventes:

  • Fraction d'articles vendus (la fraction d'articles vendus en termes de ventes totales dans un magasin)
  • Fréquence des événements de vente pour la catégorie de l'article
  • Ajout du concept d'ancienneté

Ancienneté est un concept introduit pour attribuer un niveau d'ancienneté aux nouveaux articles dans un magasin:

  • Ancienneté 0: éléments nouveaux pour l'entreprise
  • Ancienneté 1: articles jamais vendus dans ce magasin mais vendus dans d'autres magasins de l'entreprise
  • Ancienneté 2: articles qui ont déjà été vendus dans ce magasin

Caractéristiques liées aux prix

Un argument simple est que l’une des causes directes de la hausse et de la baisse des ventes est le prix et les promotions. Le prix est l'un des meilleurs moyens de différencier les différentes catégories, sous-catégories et super-catégories de produits.

Par exemple, en supposant qu'une catégorie et une sous-catégorie ont été attribuées à chaque produit, on peut créer les caractéristiques de prix suivantes:

  • (Moyenne, Max, Min, Médiane) dans toutes les catégories
  • (Moyenne, Max, Min, Médiane) Prix dans la sous-catégorie
  • Comparaisons entre ces statistiques, telles que la différence entre chaque statistique dans la catégorie et la sous-catégorie

Cette agrégation peut être effectuée plusieurs fois en utilisant de nombreux regroupements par sujet (en supposant que l'on vise à prédire la demande mensuelle), tels que:

  • Mensuel, magasin, catégorie
  • Mensuel, magasin, sous-catégorie
  • Mensuel, magasin, article, catégorie
  • Mensuel, magasin, article, sous-catégorie

En outre, d'autres fonctionnalités peuvent être ajoutées à l'exclusion de Mensuel regroupement pour étudier le comportement global des prix.

Caractéristiques liées aux stocks

Celui-ci n'est pas si courant chez les détaillants et les prévisionnistes des ventes, mais cela fait une grande différence dans les modèles de prévision des ventes. Les ensembles de données de stock contiennent principalement les données d'inventaire de chaque produit, quotidiennement dans chaque magasin. À partir de là, nous pouvons le combiner avec les données de vente pour obtenir un ratio de chiffre d'affaires mensuel pour chaque produit. Ce ratio indiquera à quelle vitesse le stock d'un produit est vendu complètement, et il présente deux avantages principaux:

  • Cela peut aider le modèle à prévoir les ventes en fonction du niveau de stock actuel.
  • Cela peut nous aider à utiliser cette valeur pour regrouper les produits en produits à évolution lente, moyenne et rapide. Ce regroupement nous aidera dans la prise de décision et la modélisation.

Pour cela, vous avez besoin des données d'inventaire quotidiennes pour chaque produit, ainsi que des données de vente, puis vous pouvez calculer le taux de rotation des stocks comme suit:

Caractéristiques liées aux stocks

Allusion: Ces agrégations sont effectuées en fonction d'une plage de temps. Par exemple, si nous travaillons sur la prévision des ventes mensuelles, l'ITO sera calculé comme le total des ventes du mois dernier par rapport à la valeur d'inventaire moyenne du même mois.

La prévision des ventes peut transformer les données en opportunité

En résumé, la prévision des ventes peut aider les entreprises à augmenter leurs revenus et à réaliser des bénéfices, à condition qu'elles disposent des bons pipelines de données et utilisent les bonnes méthodes d'ingénierie des fonctionnalités. Cet article était un essai pour montrer que toutes sortes de données peuvent être utiles pour résoudre ce problème.

Chaque entreprise doit déterminer si l'IA est nécessaire pour ses problèmes de prévision, et si tel est le cas, elle aura besoin d'ingénieurs experts en IA et des conseils d'ingénieurs en apprentissage automatique pour créer son propre système de prévision des ventes.

Si vous êtes une entreprise / un détaillant prêt à appliquer cette technique de prévision des ventes, commencez par rassembler toutes les données possibles, en particulier les ventes quotidiennes, l'inventaire quotidien et les transactions quotidiennes.

Une fois que vous possédez ces données, vous pouvez les utiliser pour augmenter vos revenus et optimiser les stratégies de réapprovisionnement des stocks, permettant à votre entreprise de réaliser le profit le plus élevé possible avec les ressources disponibles, comme le montrent plusieurs exemples ci-dessus, ainsi que les pratiques de prévision des ventes utilisées par les principaux détaillants. .

Les références:

Le jeu de données
Lectures complémentaires sur les prévisions financières

Comprendre les bases

Comment calculez-vous une prévision de ventes (au niveau du produit)?

En rassemblant les données sur les ventes, le stock, les prix, en créant une base de données pour eux, en les prétraitant et en effectuant une ingénierie des fonctionnalités pour créer des fonctionnalités explicables, puis en appliquant une méthode de prévision comme XGBoost ou RNN.

Quelles sont les quatre étapes pour préparer une prévision de ventes?

Le processus de prévision des ventes est divisé en quatre étapes: la collecte des données, le prétraitement des données, l'ingénierie des fonctionnalités et la modélisation des données.

Quelle est la meilleure méthode de prévision des ventes?

ARIMA et ETS sont parfaits pour les ventes totales, mais au niveau du produit, quelque chose comme XGBoost ou RNN fonctionne mieux.

Pourquoi la prévision de la demande / des ventes est-elle importante?

Parce qu'il résout les deux principaux problèmes de demande et de vente, qui sont des problèmes de stock excessif et des problèmes de rupture de stock. Cela conduit à des revenus plus élevés et à un meilleur flux de trésorerie.

Quelle est la différence entre le potentiel de vente et les prévisions de ventes?

Le potentiel de vente répond à la question 'Combien d'unités d'une certaine marque pourraient être vendues?' En revanche, une prévision de ventes répond à la question 'Combien d'unités seront vendues?'

Un guide de programmation orientée processus dans Elixir et OTP

Back-End

Un guide de programmation orientée processus dans Elixir et OTP
Réingénierie logicielle: des spaghettis au design épuré

Réingénierie logicielle: des spaghettis au design épuré

Back-End

Articles Populaires
Explorer la fonctionnalité Get & Transform d'Excel
Explorer la fonctionnalité Get & Transform d'Excel
Comment aborder les wrappers pour les propriétés Swift
Comment aborder les wrappers pour les propriétés Swift
ApeeScape s'associe à Guidant Global pour offrir un accès à la demande au réseau Elite de pigistes
ApeeScape s'associe à Guidant Global pour offrir un accès à la demande au réseau Elite de pigistes
Tutoriel Apache Spark Streaming: Identifier les hashtags Twitter tendances
Tutoriel Apache Spark Streaming: Identifier les hashtags Twitter tendances
Conception accessible vs conception inclusive (avec infographie)
Conception accessible vs conception inclusive (avec infographie)
 
L'intégration continue d'iOS avec le serveur Xcode expliquée
L'intégration continue d'iOS avec le serveur Xcode expliquée
Meilleurs éditeurs de programmation? Une bataille sans fin sans vainqueur clair
Meilleurs éditeurs de programmation? Une bataille sans fin sans vainqueur clair
Comment GWT déverrouille la réalité augmentée dans votre navigateur
Comment GWT déverrouille la réalité augmentée dans votre navigateur
Webpack ou Browserify & Gulp: quel est le meilleur?
Webpack ou Browserify & Gulp: quel est le meilleur?
Business Analyst - Stratégie & Analytics
Business Analyst - Stratégie & Analytics
Articles Populaires
  • comment ça marche l'investissement dans une startup
  • qu'est-ce qu'adobe xd ?
  • pourquoi json est meilleur que xml
  • rapide vs objectif c 2017
  • comment faire un bot discord c++
  • avoir des taux d'intérêt réels négatifs pourrait stimuler l'économie si, en réponse,
Catégories
  • Science Des Données Et Bases De Données
  • Conception Mobile
  • Design De Marque
  • Personnes Et Équipes Produit
  • © 2022 | Tous Les Droits Sont Réservés

    portaldacalheta.pt