“Au moment où vous faites une erreur de prix, érode votre réputation ou vos profits”. – Catherine Paine
L'optimisation des prix consiste à utiliser des données historiques pour identifier le prix le plus approprié d'un produit ou d'un service qui maximise la rentabilité de l'entreprise. Il existe de nombreux facteurs tels que la démographie, les coûts d'exploitation, données de l'Enquête, etc. qui jouent un rôle dans la tarification efficace, cela dépend aussi de la nature des entreprises et du produit servi. La société ajoute / mettre à jour régulièrement les fonctionnalités pour ajouter plus de valeur au produit et, évidemment, cela a un coût associé en termes d'effort, temps et, le plus important, la réputation des entreprises.
Par conséquent, il est important de comprendre le prix correct, un peu trop haut, vous perdrez vos clients et une légère sous-tarification entraînera une perte de revenus. L'optimisation des prix aide les entreprises à trouver le bon équilibre entre des prix efficaces, atteindre les objectifs de profit et servir également vos clients. Dans ce blog, nous examinerons l'approche simpliste de l'optimisation des prix et créerons également une application de simulation.
Chiffre"Chiffre" est un terme utilisé dans divers contextes, De l’art à l’anatomie. Dans le domaine artistique, fait référence à la représentation de formes humaines ou animales dans des sculptures et des peintures. En anatomie, désigne la forme et la structure du corps. En outre, en mathématiques, "chiffre" Il est lié aux formes géométriques. Sa polyvalence en fait un concept fondamental dans de multiples disciplines.... 1: Instantané de l'application de recommandation de prix
Les défis de l'optimisation des prix:
Optimisation des prix pour un seul produit: L'optimisation des prix pour un seul produit prédit l'évolution de la demande en réponse à différents prix. Aide l'entreprise à fixer les prix que les clients sont prêts à payer et à maximiser les profits. Par exemple: sur le marché des smartphones, c'est un bon équilibre entre les nouvelles fonctionnalités et le prix.
Optimisation des prix pour une famille de produits: Toute modification du prix d'un produit peut déclencher une réaction en chaîne dans une famille de produits. Pourtant, La tarification des familles de produits devient une tâche ardue. Pas .: Sur le marché des glaces, il peut y avoir différentes saveurs, tailles comme dans les tasses, des sucreries, cônes, packs familiers ou tarrinas. C'est le même produit avec des tailles et des prix différents.
Avantages de l'optimisation des prix:
Avantages économiques immédiats: Las empresas pueden obtener resultados instantáneos al apuntar a múltiples KPILos KPI, o indicadores clave de rendimiento, son métricas utilizadas por las organizaciones para evaluar su éxito en alcanzar objetivos específicos. Estos indicadores permiten monitorear el progreso y tomar decisiones informadas. Existen diferentes tipos de KPI, que pueden variar según el sector y los objetivos estratégicos de la empresa. Su correcta implementación es esencial para mejorar la eficiencia y efectividad de las operaciones...., Soit margeLa marge est un terme utilisé dans divers contextes, comme la comptabilité, Économie et imprimerie. En comptabilité, fait référence à la différence entre les revenus et les coûts, qui permet d’évaluer la rentabilité d’une entreprise. Dans le domaine de l’édition, La marge est l’espace blanc autour du texte d’une page, qui le rend facile à lire et offre une présentation esthétique. Sa bonne gestion est essentielle.., conversions de ventes, ajouter de nouveaux clients ou entrer dans un nouvel espace de marché, etc., puis examinez les résultats pour apporter les modifications de prix appropriées.
Automatisation des processus métier: Les optimisations de prix devraient être davantage un processus axé sur les données. Analyse des données historiques, tendances des ventes, demande, etc. aide les entreprises à concevoir des règles ou à créer des modèles de ML ou à créer un modèle hybride entièrement automatisé, éliminant ainsi les erreurs humaines ou les décisions de tarification basées sur les émotions.
Réponse rapide aux tendances changeantes du marché: La demande et la tendance du marché changent assez fréquemment et, parfois, lorsqu'un concurrent lance un produit similaire à un prix inférieur, mange les actions des autres. Dans un tel scénario, l'optimisation des prix des produits dans un segment de produit ou une géographie particulier aide les entreprises à relever ce défi.
Objectifs:
Nous explorerons les prochaines étapes et, à la fin de ce blog, nous allons créer le Application de simulation d'optimisation des prix avec script d'intrigue.
- Présentation de l'optimisation des prix
- Défis et avantages de l'optimisation
- Exploration des données
- Construction et optimisation de modèles
- Développement d'applications avec Plotly Dash
- Défis dans la création et la mise en œuvre de modèles et d'applications d'optimisation des prix
Départ:
Données: Nous utiliserons les données des jouets. Prix.csv et voici un aperçu rapide des données. Comme l'ensemble de données est petit et propre, aucun prétraitement n'est nécessaire.
Année Trimestre Quantité Prix 1977 1 22.9976 142.1667 1977 2 22.6131 143.9333 1977 3 23.4054 146.5000 1977 4 22.7401 150.8000 1978 1 22.0441 160.0000 1978 2 21.7602 182.5333 1978 3 21.6064 186.2000 1978 4 21.8814 186.4333 1979 1 20.5086 211.7000 1979 2 19.0408 231.5000
Structure du projet: Voici la structure de notre projet.
Optimisation des prix
| app.py # Le fichier pour créer des applications qui ont une logique de rappel et une interface utilisateur
+ -Les atouts # La feuille de style qui définit l'esthétique de l'application.
|
+ -Données
| prix.csv # Le fichier de jeu de données
+ -Python
| optimizar_precio.py # Le fichier Python avec logique pour l'optimisation des prix.
| optimizar_cantidad.py # Le fichier python avec logique pour l'optimisation des quantités
Chargement des bibliothèques: Créons un fichier par nom optimizar_precio.py et chargez toutes les bibliothèques nécessaires.
importer des pandas au format pd importer numpy en tant que np à partir de pandas importer DataFrame importer matplotlib.pyplot en tant que plt importer seaborn comme sns à partir de statsmodels.formula.api importer des outils importer plotly.express au format px importer plotly.graph_objects au fur et à mesure
Regardons la relation entre le prix et la quantité et nous nous attendons à voir une tendance linéaire.
fig_PriceVsQuantity = px.scatter( df, x="Prix", y ="Quantité", couleur="Coût", ligne de tendance="vieux") fig_PriceVsQuantity.show()
Chiffre 2: Prix Vs Quantité
Construire un modèle de base: Dans notre cas, nous allons construire un modèle OLS (Moindres carrés ordinaires) très basique.
# adapter le modèle OLS modèle = ols("Quantité ~ Prix", données=df).ajuster()
Plage d'optimisation: Dans la majorité des cas, nous avons une idée approximative des prix minimum et maximum basés sur l'expérience passée. Comment nous sommes en train d'identifier le meilleur prix, ce sera un bon point de départ et nous l'affinerons davantage avec plusieurs itérations.
Prix = liste(gamme(var_range[0], var_range[1], 10)) coût = entier(var_coût) quantité = [] Revenu = [] pour moi dans le prix: demande = modèle.params[0] + (model.params[1] * je) quantité.ajouter(demande) Revenu.append((Je coûte) * demande)
Nous allons créer un bloc de données avec le 3 Colonnes de prix, Revenu et Montant qui nous permettront d'accéder facilement à ces valeurs lors de la phase de développement de l'application.
profit = pd.DataFrame({"Prix": Prix, "Revenu": Revenu, "Quantité": quantité}) max_val = profit.loc[(profit['Revenu'] == bénéfice['Revenu'].max())]
Graphique linéaireLe graphique linéaire est un outil visuel utilisé pour représenter les données au fil du temps. Il se compose d’une série de points reliés par des droites, qui vous permet d’observer les tendances, Fluctuations et modèles dans les données. Ce type de graphique est particulièrement utile dans des domaines tels que l’économie, Météorologie et recherche scientifique, ce qui facilite la comparaison de différents ensembles de données et l’identification des comportements à tous les niveaux.. de optimización: Voici la fonctionnalité que nous prévoyons d'avoir sur le graphique.
- Le graphique doit être mis à jour en fonction de la sélection d'une fourchette de prix par l'utilisateur / quantité ou peut-être un coût fixe.
- Le graphique doit indiquer le point exact où le revenu est le plus élevé.
fig_PriceVsRevenue = go.Figure() fig_PriceVsRevenue.add_trace(aller.Scatter( x=bénéfice['Prix'], y=bénéfice['Revenu'])) fig_PriceVsRevenue.add_annotation(x=entier(max_val['Prix']), y=entier(max_val['Revenu']), texte="Revenu maximal", showarrow=Vrai, pointe de flèche=1) fig_PriceVsRevenue.update_layout( showlegend=Faux, xaxis_title="Prix", yaxis_title="Revenu") fig_PriceVsRevenue.add_vline(x=entier(max_val['Prix']), largeur_ligne=2, line_dash="tiret", line_color="rouge", opacité=0.25)
Chiffre 3: Prix vs revenu
Mettre tous ensemble: La logique de l'optimisation des prix sera dans le fichier. optimizar_precio.py
importer des pandas au format pd importer numpy en tant que np à partir de pandas importer DataFrame importer matplotlib.pyplot en tant que plt importer seaborn comme sns à partir de statsmodels.formula.api importer des outils importer plotly.express au format px importer plotly.graph_objects au fur et à mesure def fun_optimize(var_opt, var_range, var_coût, df): fig_PriceVsQuantity = px.scatter( df, x="Prix", y ="Quantité", couleur="Coût", ligne de tendance="vieux") # adapter le modèle OLS modèle = ols("Quantité ~ Prix", données=df).ajuster() Prix = liste(gamme(var_range[0], var_range[1], 10)) coût = entier(var_coût) quantité = [] ...................... ...................... revenir [profit, fig_PriceVsRevenue, fig_PriceVsQuantity, tour(max_val['Prix'].valeurs[0],2),tour(max_val['Revenu'].valeurs[0],3)]
Optimisation de la quantité: Nous suivrons une approche similaire pour optimiser le montant d'une restriction donnée pour un revenu maximum.. Par souci de concision et pour que le blog ne soit pas étendu, je ne mettrai pas le code dans le blog, mais n'hésitez pas à accéder au code depuis optimizar_cantidad.py
Développement d'applications:
Nous allons développer une application d'optimisation des prix avec Plotly Dash, qui est un framework python pour créer des applications de données. Créons un fichier par nom app.py et commencer à charger les bibliothèques.
Paso 1: chargement de la bibliothèque:
tiret d'importation importer des pandas au format pd importer numpy en tant que np importer dash_table importer la journalisation importer plotly.graph_objs au fur et à mesure importer plotly.express au format px importer dash_core_components en tant que dcc importer dash_html_components au format html importer dash_bootstrap_components en tant que dbc à partir de dash.dependencies import Input, Sortir, État importer optimiser_prix importer optimiser_quantité importer dash_daq en tant que daq
Paso 2: Concevoir la mise en page:
Nous divisons la conception en 4 sections côte à côte comme nous l'avons vu dans l'instantané d'introduction.
- Les contrôles / des champs, a savoir, le curseur pour sélectionner maximum et minimum, bouton radio pour sélectionner Prix ou quantité optimiser, saisie de texte à configurer coûts fixes.
- Un graphique pour visualiser la relation entre Prix Vs Quantité
- Un graphique pour visualiser revenu optimal
- Une table qui a données simulées
Voici le code de l'interface utilisateur pour générer un curseur de plage.
html.Div( nom_classe="rembourrage-top-bot", enfants =[ html.H6("GAMME D'OPTIMISATION"), html.Div( id='output-container-range-slider'), dcc.RangeSlider( id='my-range-slider', min = 0, max=500, étape=1, marques={ 0: '0', 500: '500' }, valeur=[200, 400] ), ], ),
Il sera très utile d'afficher les valeurs maximales et minimales sélectionnées par l'utilisateur et nous pouvons y parvenir avec une fonction de rappel.
@app.callback( tiret.dépendances.sortie('output-container-range-slider', 'enfants'), [tiret.dépendances.entrée('my-range-slider', 'valeur')]) def update_output(valeur): revenir "{}".format(valeur)
De la même manière, nous allons ajouter deux autres contrôles. prière de se référer à app.py pour le code complet.
Paso 3: Pour construire l'interactivité entre les contrôles et les images, nous définissons les entrées et sorties, c'est-à-dire, pour chaque modification des saisies effectuée par l'utilisateur, quelles sont les sorties qui doivent être mises à jour. Dans notre cas, nous devons mettre à jour deux graphiques en courbes et un tableau.
@app.callback( [ Sortir("carte de chaleur", 'Les données'), Sortir("lineChart1", 'chiffre'), Sortir("lineChart2", 'chiffre'), Sortir("id-insights", 'enfants'), ], [ Saisir("choisi-var-opt", "valeur"), Saisir("mon-range-curseur", "valeur"), Saisir("choisi-coût-opt", "valeur") ])
Paso 4: Nous définissons un une fonction update_output_All () qui prend les commandes comme entrées, exécuter la logique, ce qui signifie qu'il a généré les images et la table de données, à renseigner dans l'interface utilisateur.
def update_output_All(var_opt, var_range, var_coût): essayer: si var_opt == 'prix': res, fig_PriceVsRevenue, fig_PriceVsQuantity, opt_Prix, opt_Revenue = Python.optimize_price.fun_optimize( var_opt, var_range, var_coût, df) res = np.rond(res.sort_values( 'Revenu', ascendant=Faux), décimales=2) si opt_Revenue > 0: revenir [res.to_dict('enregistrements'), fig_PriceVsRevenue, fig_PriceVsQuantity, f'Le revenu maximum de {opt_Revenu} est obtenu en optimisant {var_opt} de {opt_Prix}, coût fixe de {var_coût} et l'optimisation a été effectuée pour {var_opt} gamme entre {var_range}'] .................................. .................................. sauf exception comme e: logging.exception(« Quelque chose s'est mal passé avec la logique d'interaction:', e)
prière de se référer à app.py pour le code complet.
recommandations: Bien que nous créions une application très basique avec un minimum de champs et de visuels, nous devons encore vérifier la sélection d'entrée, observer les modèles, identifier les points de revenu maximum et tirer des conclusions. Sería bueno agregar recomendaciones donde la aplicación nos diga si estamos obteniendo ganancias o pérdidas y también nos informe de los paramètresLes "paramètres" sont des variables ou des critères qui sont utilisés pour définir, mesurer ou évaluer un phénomène ou un système. Dans divers domaines tels que les statistiques, Informatique et recherche scientifique, Les paramètres sont essentiels à l’établissement de normes et de standards qui guident l’analyse et l’interprétation des données. Leur sélection et leur manipulation correctes sont cruciales pour obtenir des résultats précis et pertinents dans toute étude ou projet.... seleccionados.
Logramos esto construyendo dinámicamente una cadena y llenando los signetsLes "signets" son herramientas lingüísticas que se utilizan para guiar la estructura y el flujo de un texto. Su función principal es señalar relaciones entre ideas, como la adición, contraste o causa y efecto. Ejemplos comunes incluyen "en outre", "cependant" Oui "donc". Estos elementos no solo mejoran la cohesión del escrito, sino que también facilitan la comprensión por parte del lector, haciendo el contenido más accesible y claro.... de posición con valores durante el tiempo de ejecución. Voici l'exemple de chaîne de retour de notre fonction de rappel
f'Le revenu maximum de {opt_Revenu} est obtenu en optimisant {var_opt} de {opt_Prix}, coût fixe de {var_coût} et l'optimisation a été effectuée pour {var_opt} gamme entre {var_range}']
Voici le résultat de l'exemple de recommandation:
“Le prix est vraiment assez simple … Les clients ne paieront littéralement pas un centime de plus que la valeur réelle du produit”. – Ron Johnson
Points clés à retenir:
Comme vous l'aurez remarqué, La création d'une application de données basée sur un modèle comporte plusieurs étapes et chacune de ces étapes comporte son propre ensemble de défis..
Qualité des données: L'efficacité du modèle ML dépend de la qualité des données. Donc, il est important de tester les données pour tout écart (dérive des données) de la norme attendue. Un processus de contrôle qualité automatisé permet d'identifier toute anomalie dans les données et des étapes de pré-traitement appropriées doivent être appliquées pour rectifier l'écart..
Construction du modèle: Un modèle, qu'il soit simple ou complexe, doit être testé, validé et testé avant d'être poussé pour une utilisation en production. Les performances du modèle en production doivent être surveillées, par exemple: taille du modèle, temps de réponse du modèle, précision, etc.
Déploiement: Le modèle est généralement implémenté comme un service que l'application consomme. et il doit y avoir une intégration transparente de divers composants, sources de données et autres systèmes. Beaucoup de fois, les modèles sont différents pour chaque région en fonction de la demande de cette géographie, et cela se traduit par plusieurs modèles, données de modèle et pipelines.
Suivi du modèle *: Comme tout autre système, les modèles mis en œuvre doivent également être surveillés pour détecter les écarts (écart du modèle). Les modèles sont recyclés et déployés à une fréquence définie, qui peut être hebdomadaire, mensuel ou trimestriel, selon la nature du produit / service et impact commercial.
Noter: La mise en œuvre du modèle n'a pas été couverte dans le cadre de ce blog. Je vais planifier un blog séparé dédié au déploiement d'applications.
Note de clôture:
L'objectif du blog était de présenter une approche très simpliste de l'optimisation des prix et de créer une application Web pouvant aider les utilisateurs professionnels à prendre des décisions en déplacement.. Nous abordons également divers aspects de la création d'une application de données, de l'exploration des données à la modélisation et les défis associés à la construction., mise en œuvre et maintenance de ladite application.
- Cette configuration de projet peut être utilisée comme modèle pour la répliquer rapidement pour d'autres cas d'utilisation.
- puede construir un modelo más complejo para optimizar cualquier variableEn statistique et en mathématiques, ongle "variable" est un symbole qui représente une valeur qui peut changer ou varier. Il existe différents types de variables, et qualitatif, qui décrivent des caractéristiques non numériques, et quantitatif, représentation de grandeurs numériques. Les variables sont fondamentales dans les expériences et les études, puisqu’ils permettent l’analyse des relations et des modèles entre différents éléments, faciliter la compréhension de phénomènes complexes.... de su interés.
- Conecte la aplicación a una base de donnéesUne base de données est un ensemble organisé d’informations qui vous permet de stocker, Gérez et récupérez efficacement les données. Utilisé dans diverses applications, Des systèmes d’entreprise aux plateformes en ligne, Les bases de données peuvent être relationnelles ou non relationnelles. Une bonne conception est essentielle pour optimiser les performances et garantir l’intégrité de l’information, facilitant ainsi la prise de décision éclairée dans différents contextes.... y cree operaciones CRUD en la aplicación.
j'espère que vous avez aimé le blog. Bon apprentissage !!!!
Vous pouvez vous connecter avec moi – Linkedin
Vous pouvez trouver le code pour référence: Github
Référence:
https://dash.plotly.com/dash-daq
https://unsplash.com/
Les médias présentés dans cet article ne sont pas la propriété de DataPeaker et sont utilisés à la discrétion de l'auteur.