Quel type d'algorithme utiliseriez-vous pour prévoir les performances futures en fonction des données historiques?

StackOverflow https://stackoverflow.com/questions/1019153

  •  06-07-2019
  •  | 
  •  

Question

Dans le passé, nous utilisions un résumé des performances historiques de "Vendeur" " pour décider comment nous allouons de nouvelles affaires à chaque fournisseur.

Nous souhaitons maintenant diviser cette performance globale en sous-ensembles plus petits, tels que la géographie, la taille, l’âge, etc., afin de mieux répartir les nouvelles activités que nous distribuons à nos fournisseurs.

Par exemple, disons qu’à l’heure actuelle, j’ai trois fournisseurs et 9 entreprises à distribuer. Actuellement, je ne fais que distribuer les travaux en fonction de leur résumé de performance. Cependant, cela ne prend pas en compte chacune de leurs forces par leur géographie, leur taille, leur âge, etc.

Disons donc que Vendor-A sait vraiment bien gérer de petits comptes au Texas, tandis que Vendor-B réussit bien sur de gros comptes en Floride. Je veux m'assurer que chaque fournisseur obtient ce pour quoi il est bon et ne réussit pas à faire des affaires pour lesquelles il est mauvais.

Nous avons toutes ces informations dans la base de données, mais nous n’avons pas de véritable algorithme ni d’approche pour les extraire et fonder nos décisions sur le volume et le type d’activité que nous distribuons à qui. Nous avons examiné SQL Server Analysis Services pour cette tâche, mais nous pourrions utiliser des indications très générales sur l'algorithme que nous devrions utiliser pour cela.

Quelqu'un a-t-il déjà connaissance d'une approche ou d'un algorithme conçu pour gérer la segmentation des données afin de faire de meilleures prévisions?

Était-ce utile?

La solution

Si vous avez une assez grande quantité de données historiques à utiliser, vous pouvez utiliser un classificateur naïf de Bayes . En utilisant les fonctionnalités des comptes en tant qu'entrée, vous pouvez former une famille de classificateurs pour prévoir les performances de chaque fournisseur.

Des implémentations gratuites existent probablement déjà pour la langue de votre choix, bien que vous souhaitiez vous familiariser avec la théorie sous-jacente, pour vous assurer de l'utiliser correctement et pour vous donner une idée du type de sortie raisonnable. .

Autres conseils

Naive Bayes est un bon choix, mais je considérerais aussi les arbres de décision. Les principaux avantages de l’utilisation des arbres de décision sont les suivants:

  1. Il est facile pour un humain de comprendre ce qui se passe et de le modifier.
  2. Cela fonctionne bien, même si vous ne disposez que d'un petit ensemble de données.

Mais quoi que vous décidiez, le plus difficile serait de transformer vos données en certains attributs. C’est à la fois l’adapter à un algorithme particulier et éviter que la formation ne devienne trop spécifique.

Par exemple: au lieu d’âge en tant que nombre, vous pouvez être plus intéressé par la spécification d’une tranche d’âge (0 à 10 ans, 11 à 20 ans, etc.) aux fins de la décision. De même avec la géographie, la ville, etc.

Conversion des quantités génériques en valeurs numériques: (ajouté lors de la modification)

Vous devez disposer d’un moyen d’obtenir une métrique de qualité (mesure de la "qualité") à partir des données et de convertir bon nombre de ces éléments en quantités numériques. Les mesures possibles pourraient être le temps nécessaire pour terminer une tâche (par rapport à l'estimation initiale, pour voir si elles mentent à ce sujet), le coût, le coût par rapport au coût indiqué (pour vérifier si elles vous donnent des devis véridiques), et à une sorte de conglomérat pour la satisfaction du client. au projet sur lequel ils ont travaillé.

Les régions / zones des contrats précédents peuvent être codées comme coordonnées GPS avec X, Y pour le centre de la région pour une transaction donnée (IE "Californie" ou "États-Unis" et la largeur-x, largeur-y pour cette zone (limites d'erreur). Pour voir si la géographie est importante, vous trouvez toutes les affaires antérieures à une distance donnée de votre nouveau contrat (formulaire simple: il suffit de vérifier la distance pour toutes leurs transactions précédentes, forme complexe avec beaucoup de données: une sorte de regroupement algorithme ou extraction tridimensionnelle de la surface).

Ensuite, vous effectuez une moyenne pondérée de (métrique qualité pour une transaction précédente), réduite de (distance entre le lieu de transaction souhaité actuel et le site de transaction précédent). Compliqué, mais cela vous donnera des mesures commerciales régionales.

Analyse des données pour extraire le sens

Je vous suggère de convertir les données en nuplets CSV standard (identifiant de la société, codes de région / coordonnées, taille du compte, métrique de performance), puis de procéder à des régressions statistiques & amp; techniques d'analyse numérique. Votre objectif est un ensemble d'équations décrivant les performances d'une entreprise en termes de chaque caractéristique. Analyse des composants principaux peut simplifier ce processus en identifiant les caractéristiques les plus importantes pour la performance d'une entreprise.

Choix de logiciels:

Honnêtement, ce type d’analyse relève des logiciels de statistique ou d’exploration de données, et non des moteurs d’analyse SQL, car ce sont des statistiques et des mathématiques pures. Si vos métriques et amp; les caractéristiques sont numériques & amp; clairement quantifiables, R, Matlab, Mathematica, etc. sont de bons choix. Si votre ensemble de données est très volumineux, vous voudrez investir dans le package le plus robuste possible.

Choisir la meilleure entreprise candidate: un cas simple

Le problème de l'affectation des entreprises au meilleur candidat est un problème d'optimisation classique. Si les relations entre les variables et les performances sont linéaires, vous avez un cas vraiment pratique. Les Les techniques de programmation linéaire ont été conçues pour résoudre de manière optimale ce type de problème (en supposant que vous puissiez extraire les relations ).

Choisir la meilleure société candidate: un cas complexe

Si les équations performance / caractéristiques sont non linéaires, vous avez besoin de la logique floue pour trouver la meilleure solution. Cela utilisera des algorithmes très, très avancés pour trouver une très bonne (pas nécessairement la meilleure) solution pour les entreprises lorsqu'il y a BEAUCOUP de variables. Par expérience, Mathematica dispose d'un ensemble d'outils d'optimisation (basés sur des algorithmes génétiques) de premier plan pour l'optimisation non linéaire, et Matlab dispose également d'algorithmes génétiques et de logique floue pour résoudre ce problème. Pour en savoir plus sur les outils, reportez-vous à la section "Optimisation non linéaire globale".

Une façon de le faire est de répertorier toutes les caractéristiques qui vous intéressent, par exemple la localisation géographique, la taille du compte, le prix, le délai de livraison ...

Donnez ensuite une note à chaque fournisseur pour chaque caractéristique, par exemple 1 à 10.

Ensuite, donnez une priorité à chaque caractéristique. Vous pouvez également définir une valeur entre 1 et 10.

Cette priorité peut être générale ou pour chaque travail.

Ensuite, vous "simplement". multiplier le score fournisseur * priorité pour chaque caractéristique désirée. Celui avec le total le plus élevé obtient le travail.

Calculez la variance de vos données historiques. Cela peut être utilisé pour "prédire" ce que vous verrez dans le futur. Si l’hypothèse "l’avenir ressemblera au passé", est logique pour votre processus. C’est assez simple et de nombreux serveurs SQL offrent des fonctions intégrées pour effectuer les calculs.

L'analyse de régression est ce dont vous avez besoin, régression linéaire en particulier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top