[JSS 2014] Ma première analyse avec Machine Learning

Level : 200 Date & heure : 2 décembre 2014 – 10h30 Speaker: Florian Eiden

Titre : Ma première analyse avec Machine Learning

Objectif : Concevoir un système automatisé et intelligible qui apprendra de ses expériences

Introduction :

Rappel sur la BI dite classique, ses limites avantages et inconvénients.
Schéma du positionnement de la technologie Machine Learning par rapport à la BI traditionnelle. (Hacking skills, mathematiques, BI Analyst)

A qui est-elle destinée ?

Aux utilisateurs métiers de l’entreprise qui souhaitent avoir des éléments de réponse à une question posée.
Exemple : Quelle est le meilleur prix de vente pour mon appartement sur le marché parisien?

Quelles sont les interlocuteurs qui vont la mettre en œuvre ?

IT, Matheux, statisticiens, data scientist

Dans quel but ?

BI classique analyse l’existant et permet d’apporter des éléments de réponses basés sur des indicateurs de performance.

Machine Learning s’attaque à la prédiction des événements futurs au travers d’un algorithme mathématique qui une fois entrainé (Train model) obtient d’un échantillon (training set) une tendance sur l’avenir.

Use case :

Estimer le prix du marché d’un appartement Parisien par rapport à sa surface, son arrondissement, et le prix du m2 afin de pouvoir le vendre au meilleur prix.

Fait appel aux cours de mathématiques (fonction affine, régression linéaire, valeur discrète, continue).

L’idée étant de déterminer le prix en fonction du nombre de m2 et de la superficie, le prix d’un appartement à Paris par l’expérience (experiment). Cela se traduit par une courbe constituée par un ensemble continue de valeurs discrètes où Y étant le prix de l’appartement à vendre qui est égal à X le nombre de m2 par rapport à un coefficient à déterminer qui s’appuie sur la tendance du marché. D’où la formule y=h(x).

Les données piochées proviennent du site PaP dont les données ont été aspirées avec l’outil Kimono (firme américaine) qui permet d’obtenir des données structurées dans une table (dataset) à partir d’un navigateur web.

Démo :

Plateforme azure (dans le cloud) avec un navigateur web et un compte azure sont les seuls éléments dont vous devrez vous acquitter pour commencer à développer :

On retrouve des composants classées et rangées par catégorie tels que la source, les splits qui ne sont pas sans rappeler les éléments de la toolbox SSIS auxquels vont se greffer de nouveaux concepts/modèles (train model, score model, algorithmes, evaluate model, script, langage R).
Ces différents éléments précités s’imbriquent les uns dans les autres pour constituer un workflow relié par des flux au travers desquels les données vont transitées. Chaque élément peut être visualisé pendant son traitement et permet d’expliciter les données en apportant des éléments sur la précision, la pertinence des données traitées sur une courbe. Le speaker insiste sur l’importance d’intégrer le maximum de données concrètes pour améliorer et entrainer le modèle.

Conclusion :

Une Technologie d’avenir qui vient enrichir l’écosystème CLOUD de Microsoft et nécessite une forte propension à comprendre les concepts mathématiques.

La prise en main est rapide et ne nécessite aucune installation logicielle.
Concevoir des modèles  et bénéficier de la puissance mathématique des algorithmes (initialement développés pour XBOX et BING) en utilisant le  « Drag and Drop » des composants présents dans ML Studio.

Ces projets verront le jour en réunissant les compétences  d’un mathématicien  couplées à  celles d’un data scientist qui aura la charge d’apporter des données nettoyées en source afin de construire le workflow pertinent.

Pour aller plus loin,
Apprentissage des codes et pratiques du Data Scientist au travers d’une Formation Machine Learning  dispensée par la société coursera cursus de 10 semaines, nécessite des notions en mathématiques et statistiques. Vidéos de présentations sur le site studio.azure.ml.

 

Gestion des rôles avec Analyses Services (SSAS)

Cet article a pour but de présenter les différentes phases de la mise en place des droits d’accès aux dimensions et aux mesures d’un cube. Ceci en fonction du rôle et de la place occupée dans l’entreprise.

Cas d’étude :

Snap1

 

                       

Schéma technique de la solution :

 Snap2

Besoin :

La Direction Générale a fait la demande suivante au service décisionnel:

v  Pour la division COMMERCIALE

  • Afficher la mesure Budget Euros
  • Masquer les mesures Budget Effectif et Effectif Disponible (de la division uniquement)

v  Pour La Division RH

  • Accès aux mesures Budget Effectif et Effectif Disponible de l’entreprise

 

 Conseil :

Utiliser des noms explicites pour les rôles afin de cibler le périmètre et les droits d’accès des membres de ce rôle.
Administrer les droits d’accès au niveau du domaine.

Solution technique :

Créer pour  chaque division un GROUPE dans l’Active Directory.
Ces groupes serviront à restreindre l’accès aux données par division.

Récapitulatif :

Snap3

En  pratique lorsqu’un utilisateur appartient à plusieurs rôles, ces rôles se complètent.

Le rôle administrateur est en règle générale appliqué aux DBAs de l’entreprise.
Le rôle lecteur peut être attribué aux développeurs de la solution et ou aux Power Users.

 

 

Tutoriel:

Ouvrir le projet SSAS dans Visual Studio.
Sous l’onglet Role de votre projet SSAS, faire un clic-droit, New Role :

Snap4

Première étape, on va créer le Role Admin.
On définit le nom du rôle et les autorisations attribuées aux membres du groupe sur le cube en cochant les cases Full Control, Process Database, Read definition dans l’onglet général :Snap5

Sous l’onglet Membership, cliquer sur le bouton Add pour rechercher dans l’Active Directory le groupe ADMINISTRATORS :

Snap6

Deuxième étape, on passe à la création du rôle lecteur dont les membres seront les personnes habilitées à voir toutes les mesures du cube sans exception :

Snap7

Au niveau de l’onglet Data Sources, cocher la case Read Definition et laisser  la colonne Acces à None.

Snap8

L’accès se fait en lecture (Read).
La colonne Local Cube/drillthrough Access à None pour interdire le rapatriement du cube en local.
La case Process est décochée afin d’interdire le traitement du cube.

Snap9

3eme étape :

Même procédé que lors de l’étape précédente.
Nous allons détailler dans notre exemple la création du rôle  dont le nom sera «  RoleCommerce ».

Sous l’onglet Cell Data, sélectionner le cube résultat, puis cocher la case Enable  read-contingent permissions.

La requête à taper en MDX correspondante est:
(NOT [Measures].CurrentMember IS [Measures].[Effectif Disponible]) AND(NOT[Measures].CurrentMember IS [Measures].[Effectif Budget])

Snap10

Par défaut, dans l’onglet dimensions, cocher les cases Read Definition afin que les dimensions soient accessibles  en lecture. Dans un second temps, nous allons rendre visible uniquement le code et le libellé de la division 54195 de la Dimension Division pour le rôle concerné (COMMERCE)

Sous l’onglet Dimension Data -> Attribute : déplier le cube Résultat et sélectionner la dimension cube (Dim Division) La dimension division dont le code de division commerciale est 54195.

Deux modes disponibles, un mode Basic (graphique) et un mode Avancé (code MDX) :

Snap12

Après déploiement et traitement du cube, via SSMS ou Visual Studio, repérer le bouton qui permet de choisir l’utilisateur se connectant au cube :

Snap13

Sélectionner le rôle à tester (COMMERCE dans notre cas), puis cliquer sur OK :

Snap14

En glissant,  la mesure Effectif Disponible, Budget Effectif et Budget Euros :

Snap15

Constats et Résultats :
Les cellules relatives aux mesures Effectif Disponible et Effectif Budget sont indisponibles (#N/A).
La mesure Budget Euros est visible pour les membres de la division concernée.
Un dernier détail qui a son importance, le Grand Total de cette mesure ne doit pas faire apparaître le budget des autres divisions. Pour cela, il faut cocher la case Enable Visual Totals dans l’onglet Dimension Data du rôle  :

Snap16

Pour aller plus loin :

Microsoft SQL SERVER 2008 Ebook Analyses Services Step by Step (free e-book)