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

Dans le passé, nous avons utilisé un résumé de la performance historique par "Fournisseur" pour décider comment nous allouer de nouvelles affaires à chaque fournisseur.

Maintenant, ce que nous voulons faire, c'est split cette performance sommaire en sous-sets plus petits tels que la géographie, la taille, l'âge, etc. afin de mieux répartir les nouvelles affaires que nous dissortingbuons à nos fournisseurs.

Par exemple, Disons que j'ai actuellement trois vendeurs et neuf affaires à dissortingbuer. Actuellement, je viens de dissortingbuer les pièces d'affaires en fonction de leur résumé de la performance. Cependant, cela ne prend pas en considération chacune de leurs forces selon la géographie, la taille, l'âge, etc.

Alors, disons que Vendor-A est vraiment bon pour gérer les petits counts du Texas, tandis que Vendor-B est bon dans les grands counts de la Floride. Je veux m'assurer que chaque fournisseur obtient ce pour quoi il est bon et n'obtient pas de bonnes affaires.

Nous avons toutes ces informations dans la database, mais pas de véritable algorithm ou approche pour l'extraire et baser nos décisions sur combien et de quel type d'affaires nous dissortingbuons à qui. Nous nous sums penchés sur SQL Server Analysis Services pour cette tâche, mais nous pourrions utiliser des pointeurs très généraux sur l'algorithm que nous devrions utiliser pour faire cela.

Est-ce que quelqu'un connaît une approche ou un algorithm conçu pour gérer la segmentation des données afin de faire de meilleures prédictions?

Si vous disposez d'une assez grande quantité de données historiques, vous pouvez utiliser un classificateur Bayes naïf . En utilisant les fonctionnalités des counts comme input, vous pouvez former une famille de classificateurs pour prédire les performances de chaque fournisseur.

Des implémentations libres existent probablement déjà pour la langue de votre choix, bien que vous souhaitiez faire quelques lectures sur la théorie sous-jacente, pour être sûr que vous l'utilisez correctement et pour vous donner une idée de ce qui est raisonnable.

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

  1. C'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 set de données.

Mais quoi que vous décidiez, le plus dur sera de transformer vos données en certains attributes. Il s'agit à la fois de l'adapter à un algorithm particulier et d'éviter que la formation ne devienne trop spécifique.

Par exemple: Au lieu de l'âge en tant que nombre, vous pouvez être plus intéressé à spécifier une tranche d'âge (0-10, 11-20, …) à des fins de décision. De même avec la géographie, la ville, etc.

Conversion de grandeurs generics en valeurs numériques: (ajouté en édition)

Vous avez BESOIN d'un moyen d'get une mésortingque de qualité (mesure de "qualité") à partir des données, et de convertir un grand nombre de ces choses en quantités numériques. Les mésortingques possibles peuvent être le time d'accomplir 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 (pour vérifier s'ils vous donnent des citations véridiques) et une sorte de conglomérat 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 largeur-x, largeur-y pour cette zone (limites d'erreur Pour voir si la géographie est importante, vous trouvez toutes les affaires précédentes à une distance donnée de votre nouveau contrat (forme simple: il suffit de vérifier la distance pour toutes leurs transactions antérieures, formulaire complexe avec beaucoup de données: une sorte d'algorithm de clustering extraction de surface).

Ensuite, vous effectuez une moyenne pondérée de (mesure de qualité pour l'accord commercial précédent), réduite de (distance entre l'location actuel de la transaction souhaitée et l'location de la transaction précédente). Compliqué, mais il vous donnera des mésortingques commerciales régionales.

Analyser datatables pour en extraire le sens

Je vous suggère de convertir datatables en tuples CSV standard (identifiant de société, code / coordonnées de région, taille de count, mésortingque de performance), puis de faire des régressions statistics et des techniques d'parsing numérique. Votre objective est un set d'équations décrivant la performance d'une entreprise en fonction de chaque caractéristique. L'parsing en composantes principales peut simplifier ce process en identifiant les caractéristiques les plus importantes pour la performance d'une entreprise.

Choix de logiciel

Honnêtement, ce type d'parsing est bien le domaine des logiciels de statistics ou d'exploration de données, pas des moteurs d'parsing SQL, puisqu'ils sont purement statistics et mathématiques. Si vos mésortingques et caractéristiques sont numériques et clairement quantifiables, R, Matlab, Mathematica, etc. sont de bons choix. Si votre set de données est très volumineux, vous voudrez investir dans le package le plus robuste que vous puissiez get.

Choisir la meilleure entreprise candidate: un cas simple

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

Choisir la meilleure entreprise candidate: cas complexe

Si les équations performance-vs-caractéristiques ne sont pas linéaires, vous avez besoin d'une logique floue pour find la meilleure solution. Cela utilisera des algorithms très, très avancés pour find une très bonne solution (pas forcément la meilleure) pour les entresockets lorsqu'il y a BEAUCOUP de variables. Par expérience, Mathematica dispose d'un set d'outils d'optimization (basé sur des algorithms génétiques) pour l'optimization non linéaire, et Matlab a également des algorithms de logique floue / génétique pour résoudre ce problème. Pour d'autres outils, examinez l'optimization globale non linéaire.

Une façon de le faire est de listr toutes les caractéristiques qui vous intéressent, par exemple la situation géographique, la taille du count, le prix, le timeout de livraison …

Puis marquez chaque fournisseur sur chaque caractéristique, par exemple de 1 à 10.

Puis donner une priorité à chaque caractéristique, pourrait également être de 1 à 10.

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

Ensuite, vous "multipliez" simplement le score fournisseur * la 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 «le futur sera quelque chose comme le passé» a du sens pour votre process. C'est assez simple et de nombreux servers sql offrent des builtins pour aider à faire les calculs.

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