Data mining avec SQL Server 2005 Olivier Bourdin
Data mining avec SQL Server 2005 Olivier Bourdin Winwise - CEO olivier. bourdin@winwise. fr
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 : No 1 de la Business Intelligence MS Microsoft Analysis Services 1 er 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
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
Exemples Meteo ! + Achètera ou pas ( « score d’appétence » ) ? Remboursera ou pas ( « credit scoring » ) ? =>
Qui utilise le data mining ?
Place du data mining dans la BI ? Système d’information de l’entreprise Exécution Applications de production Pilotage Applications décisionnelles ( « BI » ) Restitution Analyse guidée Reporting - OLAP Statique Interactif (pour info) (pour analyse) Analyse automatique Data Mining
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
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
Relative business value Compliqué ou pas ? SQL Server 2005 Data Mining OLAP Reports (Adhoc) Reports (static) Simple Complicated Usability
Mining Process Echantillon d‘apprentissage Données à prédire Modèle entraîné(à scorer) DM DM Engine Structure & paramètre du modèle Modèle entraîné With predictions
Exemple : site « réseau social »
Exemple: Mes. Correspondances. fr De l’information…
Exemple: Mes. Correspondances. fr Tous types d’informations !
Exemple: Mes. Correspondances. 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?
Exemple: Mes. Correspondances. fr La question pour notre démo : « Adam ou Eve » ?
Démo Microsoft Decision Trees “Homme ou femme” avec un arbre de décision
Adam ou Eve ?
Où sont les femmes ?
Démo Microsoft Neural Network “Homme ou femme ? ” avec un réseau de neurones
Réseaux de neurones Combien de couches cachées ? Combien de neurones par couche ? Aime les cartes routières Homme -0. 5 Aime la danse -0. 42 +0. 6 Aime l’équitation 0. 33 -0. 9 Femme +0. 8 0. 33 +0. 4
Démo Microsoft Naive Bayes “Homme ou femme” avec un réseau bayésien naïf
Réseaux bayésiens Théorème de Bayes (si si !) Probabilité de l’hypothèse h sachant e n n n h = hypothèse e = « evidence » en anglais Raisonnement inversé n n 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é
Réseaux bayésiens Ce que l’on vient de voir h Un réseau bayésien x 1 p(h |e) ? x 2 x 3 e p(e |h) ? 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 x 4 x 5 x 6 x 7 de croyance, C’est un réseau 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 ?
Démo Homme ou femme ? Calculer le R. O. I. d’une analyse prédictive
Retour sur investissement
Démo Microsoft Clustering Segmentation automatique
« Cluster Discrimination »
Exemple de segmentation Masculin es ures d étu périe su non lecte u mode rs opéra, baroque voile, lecture gendarmes-douaniers jeunes foot Culture CSP+ hip-hop/rap
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 Business Understanding Data Understanding “Doing Data Mining” Data Preparation Data Deployment Modeling “Putting Data Mining to Work” 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. Analysis. Services. Adomd. Client; Adomd. Connection conn = new Adomd. Connection(); conn. Connection. String = "Data Source=localhost; Initial Catalog=My. Catalog"; conn. Open(); foreach (Mining. Model model in conn. Mining. Models) { Console. Write. Line(model. Name); } foreach (Mining. Content. Node node in model. Content) { foreach( Mining. Content. Node in node. Children ) {. . . } }
ADOMD. Net et DMX Dim cmd as ADOMD. Command Dim reader as ADOMD. Data. Reader Cmd. Connection = conn Set reader = Cmd. Execute. Reader(“Select Predict(Adam. Ou. Eve)…”)
Piloter le data mining DMX Data Mining e. Xtensions for SQL Deux types de directive Data definition statements CREATE/DROP MINING MODEL EXPORT, etc. … Data manipulation statements SELECT FROM <model>. CONTENT. . .
Data Mining avec DMX Définir un modèle CREATE MINING MODEL …. Entrainer un modèle INSERT INTO dmm …. Data Mining Management System (DMMS) 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>]
Démo Générer une requête DMX
Le langage DMX . . .
XMLA Option zero footprint : depuis une application Ajax si vous le souhaitez ! ADOMD TCP Application OLEDB Analysis Server XMLA AMO IIS Adomd Server HTTP ADOMD. NET Stored Procedure
Résumé Data Mining SQL 2005 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
Votre potentiel, notre passion TM © 2007 Microsoft France
- Slides: 48