Data mining avec SQL Server 2005 Olivier Bourdin Winwise - CEO olivier.bourdin@winwise.fr © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Winwise: votre expert .NET Mission : qualité et productivité de vos développement s .NET 70 experts .Net et SQL Server Pôles d’expertise Génie Logiciel Visual Studio Team System Travail collaboratif Sharepoint & Office Server 2007 Data management Microsoft SQL Server 2005 Smart client Vista, WPF, Ajax, Applications mobiles EAI et BPM Microsoft Biztalk 2006, Architectures SOA Winsight : No1 de la Business Intelligence MS Microsoft Analysis Services 1er centre de formation .NET à Paris et en France depuis 2002 Conseil, forfait, assistance, formation : Winwise, 16 rue Gaillon 75002 PARIS - 01 42 68 22 22 - info@winwise.fr
Sommaire Data Mining Exemples et domaines d’application Place et perspectives dans la B.I. Principaux algorithmes d’analyse prédictive Segmentation automatique (clustering) Autres algorithmes Langages et interfaces de programmation © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Utilité du data mining ? Principal emploi « Analyse prédictive » Utiliser l’information que l’on a pour prédire celle que l’on voudrait avoir © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Exemples Meteo ! Achètera ou pas (« score d’appétence ») ? 3/30/2017 5:48 AM Exemples Meteo ! Achètera ou pas (« score d’appétence ») ? Remboursera ou pas (« credit scoring ») ? + => Exemple météo ( pas de voix divine, mais j’ai de l’info) Exemple cliente dans super marché (ou l’enregistrement qui la décrit dans une base de donnée) , j’aimerais lui vendre un abonnement à un club de golf (si age, profession, endroit ou habite, type de choses achetées chez moi) Banque : mariés, enfant, propriétaire de votre résidence principale, niveau de revenus, ancienneté dans votre job, combien de fois par ans vous êtes à découvert, etc © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Qui utilise le data mining ? Source : Pattern Recognition algorithms for data mining – Pal et Mitra (Chapam & Hall)
Place du data mining dans la BI ? Système d’information de l’entreprise Exécution Pilotage Applications de production Applications décisionnelles (« BI ») Restitution Analyse guidée Analyse automatique Reporting - OLAP Data Mining Statique (pour info) Interactif (pour analyse)
Data mining et OLAP Objectif identique : extraire de l’information utile des données existantes l’OLAP met l’accent sur les outils de visualisation vs le data mining sur les outils de modélisation l’OLAP donne les moyens de se faire une idée vs le data mining génère, teste et applique automatiquement les hypothèses Olap : explorer les dimensions au feeling pour se faire une idée, apréhender de façon intuive Club de golf Tranche d’age, tel arrondissement, tel CSP, tels autres types de loisirs => me faire une idée DM : prends toutes les variables en même temps, et sort moi les 5% de prospect qui ont la plus grand probabilité de vouloir m’acheter des clubs de golf
D’où sort le data mining ? Domaines d’origine <= Intelligence artificielle <= Statistiques <= Bases de données KDD : Knowledge Discovery in Databases => Générer et valider automatiquement de nouvelles hypothèses à partir de données existantes => Transformer les données enfouies dans ses bases de données en information utile
Compliqué ou pas ? Relative business value Usability SQL Server 2005 Simple Complicated Usability Relative business value SQL Server 2005 Data Mining OLAP Reports (Adhoc) Reports (static)
Mining Process Données à prédire (à scorer) Echantillon d‘apprentissage Modèle entraîné DM Engine DM Engine Structure & paramètre du modèle Modèle entraîné With predictions
Exemple : site « réseau social »
Exemple: MesCorrespondances.fr 3/30/2017 5:48 AM Exemple: MesCorrespondances.fr De l’information… © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Exemple: MesCorrespondances.fr 3/30/2017 5:48 AM Exemple: MesCorrespondances.fr Tous types d’informations ! © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Exemple: MesCorrespondances.fr 3/30/2017 5:48 AM Exemple: MesCorrespondances.fr Des questions auxquelles je souhaite répondre…. Quelles combinaisons de caractéristiques distinguent les utilisateurs prêts à payer ? Qu’est-ce qui permet de deviner les utilisateurs qui seront populaires ? Les casse-pieds ? Les tricheurs ? Pour un utilisateur donné..quels utilisateurs s’entendront le mieux avec lui? © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Exemple: MesCorrespondances.fr 3/30/2017 5:48 AM Exemple: MesCorrespondances.fr La question pour notre démo : « Adam ou Eve » ? © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Microsoft Decision Trees 3/30/2017 5:48 AM Démo Microsoft Decision Trees “Homme ou femme” avec un arbre de décision © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Adam ou Eve ? **
Où sont les femmes ?
Microsoft Neural Network 3/30/2017 5:48 AM Démo Microsoft Neural Network “Homme ou femme ?” avec un réseau de neurones © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Aime les cartes routières Réseaux de neurones Combien de couches cachées ? Combien de neurones par couche ? Aime les cartes routières -0.5 Homme Aime la danse -0.42 -0.9 +0.6 Femme L’écart entre l’approximation réalisé par un réseau de neurones et la fonction à approcher est inversement proportionne au nombre de neurones caches. Malheureusement, ce résulat comme d’autres considérations théoriques telles que la dimension de Vapnik-Cervonenkis n’est pas constructif en ce sens qu’il ne peut que donner des estimations ou des bornes larges du nombre de neurones cachés nécessaire. Il n’existe pas, à l’heure actuelle de résultat théorique permttant de prévoir le nombre de neurones cachés nécessaires pour obtenir une performance spécifiée du modèle, compte tenu des données disponibles. Principe général : faire en sorte que le nombre de paramètres ajustables soit petit devant le nombre d’exemples. 0.33 +0.8 Aime l’équitation 0.33 +0.4
“Homme ou femme” avec un réseau bayésien naïf 3/30/2017 5:48 AM Démo Microsoft Naive Bayes “Homme ou femme” avec un réseau bayésien naïf © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Réseaux bayésiens Théorème de Bayes Probabilité de l’hypothèse h sachant e (si si !) h = hypothèse e = « evidence » en anglais Raisonnement inversé au lieu de calculer la probabilité d’observer l’évènement e en tenant pour admise l’hypothèse h... (d’après mon hypothèse...il devrait se passer ceci) ...on calcule la probabilité que l’hypothèse soit juste, connaissant la probabilité de l’évènement observé e = « evidence » = élement de preuve
Réseaux bayésiens Ce que l’on vient de voir Un réseau bayésien x1 x2 h p(h |e) ? x3 x5 e p(e |h) ? x4 x6 La probabilité d’observer l’état e dépend de mon hypothèse h ET Ma croyance dans l’hypothèse h est plus ou moins confortée par l’observation de e Ma croyance en h conditionne ma croyance en e et réciproquement Exemple : J’habite une maison délabrée J’ai une hypothèse : quand il pleut, j’augmente la probabilité de voir une flaque d’eau dans les escaliers. Un matin j’observe qu’il y a une flaque d’eau dans les escaliers …cela va augmenter ma probabilité de croire qu’il pleut x1 : il pleut X2 : le chat a fait pipi X3 : flaque d’eau dans l’escalier X6 : la copine est tombée dans l’escalier X5 : la copine est bourrée x7 C’est un réseau de croyance, dont chacune est influencée par les autres (aussi bien en amont qu’en aval)
Microsoft Naïve Bayes Viewer **
Variables/Valeurs discriminantes **
Où sont les femmes ?
Calculer le R.O.I. d’une analyse prédictive 3/30/2017 5:48 AM Démo Homme ou femme ? Calculer le R.O.I. d’une analyse prédictive © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Retour sur investissement
Segmentation automatique 3/30/2017 5:48 AM Démo Microsoft Clustering Segmentation automatique © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
« Cluster Discrimination » **
Exemple de segmentation études supérieures non lecteurs Masculin mode opéra, baroque voile, lecture gendarmes-douaniers jeunes ** Pas analyse prédictive Justes groupes homogènes Trouver joli nom en fonction des caractéristiques les plus typiques de chaque groupe foot hip-hop/rap Culture CSP+
Cluster et détection d’anomalies Autre utilisation Détecter les questionnaires remplis au hasard
Microsoft Association Algorithm Un algorithme simple adapté aux volumes élevés Deux indicateurs pour apprécier une association A => B Niveau de confiance Nombre d’occurrences de (A ET B) divisé par le nombre d’occurrences total de B Mesure la force d’une association Niveau de support Nombre d’occurrence et A ET B divisé par le nombre total de « transactions » considérées **
Sequence Clustering Analysis **
Times Series Analysis Corrélation et auto corrélation Demande des tendances biens établies ! **
Data Mining Process CRISP-DM “Doing Data Mining” Business Understanding Data Understanding Data Preparation Data “Putting Data Mining to Work” Deployment Modeling (CRoss-Industry Standard Process for Data Mining) Evaluation www.crisp-dm.org
Un environnement complet Pour utiliser le data mining dans SQL 2005 Le SGBD lui-même (facultatif) : stockage des données Integration Services (facultatif) : ETL, préparation des données, text mining Analysis Services : paramétrage des modèles et exécution des analyses Reporting Services (facultatif) : publication et mise en forme du résultat des analyses Outils de développement SQL 2005 Business Intelligence Dev. Studio, SQL Server Management Studio Langages, API, librairies d’accès clientes, protocole DMX ? ADOMD.NET ? XMLA ? **
Data Mining avec ADOMD.Net using Microsoft.AnalysisServices.AdomdClient; AdomdConnection conn = new AdomdConnection(); conn.ConnectionString = "Data Source=localhost; Initial Catalog=MyCatalog"; conn.Open(); foreach (MiningModel model in conn.MiningModels) { Console.WriteLine(model.Name); } foreach (MiningContentNode node in model.Content) foreach( MiningContentNode in node.Children ) ... **
ADOMD.Net et DMX Dim cmd as ADOMD.Command Dim reader as ADOMD.DataReader Cmd.Connection = conn Set reader = Cmd.ExecuteReader(“Select Predict(AdamOuEve)…”)
Piloter le data mining DMX Data Mining eXtensions for SQL Deux types de directive Data definition statements CREATE/DROP MINING MODEL EXPORT, etc. … Data manipulation statements SELECT FROM <model> SELECT FROM <model>.CONTENT ... **
Data Mining avec DMX Définir un modèle Entrainer un modèle CREATE MINING MODEL …. Data Mining Management System (DMMS) Entrainer un modèle INSERT INTO dmm …. Training Data Prédire avec un modèle SELECT … FROM dmm PREDICTION JOIN … Prediction Input Data Mining Model **
DMX SELECT Elements SELECT <columns> FROM <model> PREDICTION JOIN <table> ON <mapping> [WHERE <filter>] [ORDER BY <sort expression>]
Générer une requête DMX 3/30/2017 5:48 AM Démo Générer une requête DMX © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Le langage DMX ... ** ...
XMLA Option zero footprint : depuis une application Ajax si vous le souhaitez ! ADOMD TCP Analysis Server OLEDB Application XMLA Adomd Server ** AMO IIS HTTP Stored Procedure ADOMD .NET
Résumé Data Mining SQL2005 Simplicité d’utilisation extrême Retour sur investissement simple à évaluer (et souvent important !) Accède aux données quel que soit la source et le format Langages et API usuels (VB,C#,SQL,ADO...) Interrogeable et configurable intégralement par web services via XMLA © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Votre potentiel, notre passion TM 3/30/2017 5:48 AM Votre potentiel, notre passion TM © 2007 Microsoft France © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.