mission : qualité et productivité de vos développement s.net 70 experts.net et sql server pôles...

48
Olivier Bourdin Winwise - CEO [email protected] Data mining avec SQL Server 2005

Upload: marc-ferrier

Post on 03-Apr-2015

108 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Olivier BourdinWinwise - [email protected]

Data mining avec SQL Server 2005

Page 2: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Winwise: votre expert .NET

Mission : qualité et productivité de vos développement s .NET 70 experts .Net et SQL ServerPôles d’expertise

Génie Logiciel Visual Studio Team System Travail collaboratif Sharepoint & Office Server 2007Data management Microsoft SQL Server 2005Smart client Vista, WPF, Ajax, Applications mobilesEAI et BPMMicrosoft Biztalk 2006, Architectures SOAWinsight : No1 de la Business Intelligence MSMicrosoft Analysis Services

1er centre de formation .NET à Paris et en France depuis 2002Conseil, forfait, assistance, formation :Winwise, 16 rue Gaillon 75002 PARIS - 01 42 68 22 22 - [email protected]

Page 3: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Sommaire Data Mining

Exemples et domaines d’applicationPlace et perspectives dans la B.I.Principaux algorithmes d’analyse prédictiveSegmentation automatique (clustering)Autres algorithmesLangages et interfaces de programmation

Page 4: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

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

Page 5: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Exemples

Meteo !

Achètera ou pas (« score d’appétence ») ?

Remboursera ou pas (« credit scoring ») ?

+ =>

Page 6: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Qui utilise le data mining ?

eCRMRetailBanqueAssuranceInvest.FiFraudeTelcoSciencesBiologie/ GenPharmacie

Page 7: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Place du data mining dans la BI ?

Système d’information de l’entreprise

Exécution Pilotage

Applications de production

Analyse automatique

Applications décisionnelles (« BI »)

RestitutionAnalyse guidée

Reporting - OLAP Data Mining

Interactif(pour

analyse)

Statique(pour info)

Page 8: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

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

Page 9: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

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

Page 10: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Compliqué ou pas ?

SQL Server 2005

OLAP

Reports (Adhoc)

Reports (static)

Data Mining

Simple Complicated

Usability

Rel

ativ

e b

usi

ne

ss v

alu

e

Page 11: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Modèle entraîné

Structure & paramètre du modèle

Mining Process

DM EngineDM Engine

Echantillon d‘apprentissage

Données à prédire(à scorer)Modèle entraîné

With predictions

Page 12: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Exemple : site « réseau social »

Page 13: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Exemple: MesCorrespondances.fr

De l’information…

Page 14: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Exemple: MesCorrespondances.fr

Tous types d’informations !

Page 15: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

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?

Page 16: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Exemple: MesCorrespondances.fr

La question pour notre démo : « Adam ou Eve » ?

Page 17: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Microsoft Decision Trees“Homme ou femme” avec un arbre de décision

Démo

Page 18: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Adam ou Eve ?

Page 19: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Où sont les femmes ?

Page 20: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Microsoft Neural Network“Homme ou femme ?”avec un réseau de neurones

Démo

Page 21: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Réseaux de neurones

Combien de couches cachées ?Combien de neurones par couche ?

-0.5

-0.42

+0.6

0.33

-0.9+0.8

Aime les cartes routières

Aime la danse

Aime l’équitation

Femme

Homme

+0.4

0.33

Page 22: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Microsoft Naive Bayes“Homme ou femme”avec un réseau bayésien naïf

Démo

Page 23: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Réseaux bayésiens

Théorème de Bayes

Probabilité de l’hypothèse  h  sachant e

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é

(si si !)

Page 24: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Réseaux bayésiens

e

hx1

x2

x4

x3

x5

x6

x7

Ce que l’on vient de voir Un réseau bayésien

La probabilité d’observer l’état e dépend de mon hypothèse hETMa croyance dans l’hypothèse h est plus ou moins confortée par l’observation de eMa croyance en h conditionne ma croyance en e et réciproquement

p(h |e) ?

p(e |h) ?

C’est un réseau de croyance,dont chacune est influencéepar les autres (aussi bien en amont qu’en aval)

Page 25: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Microsoft Naïve Bayes Viewer

Page 26: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Variables/Valeurs discriminantes

Page 27: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Où sont les femmes ?

Page 28: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Homme ou femme ?Calculer le R.O.I. d’une analyse prédictive

Démo

Page 29: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Retour sur investissement

Page 30: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Microsoft ClusteringSegmentation automatique

Démo

Page 31: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

« Cluster Discrimination »

Page 32: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Exemple de segmentation

CSP+

Masculin

études

supérie

ures

non lecteurs

Culture

opéra, baroquevoile, lecture

hip-hop/rap

gendarmes-douaniers

jeunes

foot

mode

Page 33: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Cluster et détection d’anomalies

Autre utilisationDétecter les questionnaires remplis au hasard

Page 34: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Microsoft Association Algorithm

Un algorithme simple adapté aux volumes élevésDeux indicateurs pour apprécier une associationA => B

Niveau de confianceNombre d’occurrences de (A ET B) divisé par le nombre d’occurrences total de BMesure la force d’une associationNiveau de supportNombre d’occurrence et A ET B divisé par le nombre total de « transactions » considérées

Page 35: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Sequence Clustering Analysis

Page 36: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Times Series Analysis

Corrélation et auto corrélationDemande des tendances biens établies !

Page 37: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

“Putting Data Mining to Work”

“Doing Data

Mining”Business Understandi

ng

Data Understandi

ng

Data Preparation

Modeling

Evaluation

Deployment

Data

Data Mining ProcessCRISP-DM

www.crisp-dm.org

Page 38: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Un environnement complet

Pour utiliser le data mining dans SQL 2005Le SGBD lui-même (facultatif) : stockage des donnéesIntegration Services (facultatif) : ETL, préparation des données, text miningAnalysis Services : paramétrage des modèles et exécution des analysesReporting Services (facultatif) :publication et mise en forme du résultat des analyses

Outils de développement SQL 2005Business Intelligence Dev. Studio, SQL Server Management Studio

Langages, API, librairies d’accès clientes, protocole DMX ? ADOMD.NET ? XMLA ?

Page 39: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

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 ){...}

}

Data Mining avec ADOMD.Net

Page 40: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

ADOMD.Net et DMX

Dim cmd as ADOMD.CommandDim reader as ADOMD.DataReaderCmd.Connection = connSet reader = Cmd.ExecuteReader(“Select Predict(AdamOuEve)…”)

Page 41: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Piloter le data mining

DMX Data Mining eXtensions for SQLDeux types de directive

Data definition statementsCREATE/DROP MINING MODELEXPORT, etc.…

Data manipulation statementsSELECT FROM <model>SELECT FROM <model>.CONTENT...

Page 42: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Data Mining avec DMX

Data MiningManagement System

(DMMS)

Mining Model

Définir un modèleCREATE MINING MODEL ….

Entrainer un modèleINSERT INTO dmm ….

Training Data

Prédire avec un modèleSELECT …FROM dmm PREDICTION JOIN …Prediction Input Data

Page 43: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

DMX SELECT Elements

SELECT <columns>FROM <model> PREDICTION JOIN <table>ON <mapping>[WHERE <filter>][ORDER BY <sort expression>]

Page 44: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Générer une requête DMX

Démo

Page 45: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

...

...

Le langage DMX

Page 46: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

XMLA

Analysis Server

Stored Procedure

Adomd Server

Ap

plic

atio

n

ADOMD

ADOMD .NET

AMO IIS

TCP

HTTP

XMLA

OLEDB

Option zero footprint : depuis une application Ajax si vous le souhaitez !

Page 47: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

Résumé Data Mining SQL2005

Simplicité d’utilisation extrêmeRetour sur investissement simple à évaluer (et souvent important !)Accède aux données quel que soit la source et le formatLangages et API usuels (VB,C#,SQL,ADO...)Interrogeable et configurable intégralement par web services via XMLA

Page 48: Mission : qualité et productivité de vos développement s.NET 70 experts.Net et SQL Server Pôles dexpertise Génie Logiciel Visual Studio Team System Travail

© 2007 Microsoft France

Votre potentiel, notre passion TM