Non classé


  Microsoft parviendra-t-il à démocratiser l’usage de l’intelligence artificielle ?   Le développement exponentiel des capacités informatiques, a submergé le monde des affaires d’un volume considérable de données. Que celles-ci proviennent du métier, de bases de données, de machines-outil, du web, des réseaux sociaux, ou de toute autre source, elles sont au cœur de la performance des entreprises. Les traiter, pour les transformer en informations indispensables au pilotage des affaires, est devenu un enjeu majeur qu’il est diffcile d’ignorer.   Comment faire pour rester dans la course, alors que les données se multiplient et que les bons professionnels restent très rares  et coûteux ?   Les outils décisionnels comme Power BI, proposent des solutions graphiques permettant de limiter le recours au code, pour créer des requêtes et des mesures. L’objectif poursuivi, est de permettre aux utilisateurs métier de créer leurs propres solutions, très rapidement, sans avoir recours aux services IT. Le Machine Learning est une tendance récente, mais à très fort potentiel, dans le monde des solutions décisionnelles. Avant d’entrer dans le détail du processus, il est intéressant de situer la place du Machine Learning dans cet environnement BI . Comme on peut le voir, le Machine Learning est une […]

Introduction au Machine Learning



La plupart des modèles de données contiennent plusieurs tables en relation les unes avec les autres.   Nous allons étudier l’impact de ces relations sur les deux contextes.   Contexte de ligne et relations.   C’est le plus simple à comprendre : il n’y a pas d’interactions.   Supposons une table des Ventes en relation avec une table Articles.   Si l’on crée une colonne visant à calculer la différence entre le prix  unitaire réellement appliqué et le prix de vente standard, prévu dans la table articles :   Différence= Ventes[PU Vente]-Articles[PU Vente]   Retournera une erreur.   En effet, la colonne calculée crée une itération sur la table Ventes et elle seule !   Pour accéder à la valeur en relation dans la table Articles il faudra utiliser la fonction RELATED.   Différence= Ventes[PU Vente]-RELATED(Articles[PU Vente])   Dans le sens inverse (colonne calculée dans la table Articles), il faudra utiliser RELATEDTABLE imbriquée dans une fonction d’aggrégation :   AVERAGE(RELATEDTABLE(Ventes[PU Vente]))   Ce mécanisme fonctionne, quel que soit le nombre de niveaux de la relation (Par exemple Famille->Sous-Famille->Articles->Ventes), sous réserve que les relations soient du même type et de même direction.   Par exemple, dans le cas ci-dessous, il n’est […]

DAX Contexte d’évaluation (Partie 2)



3
Toute mesure est évaluée dans un contexte.   Le contexte, c’est-à-dire l’ensemble des filtres du rapport (lignes et colonnes d’un TCD, slicers..) pour le contexte de filtres, ou la ligne de la table, pour un contexte de ligne , détermine l’environnement dans lequel s’applique la formule de calcul.   Un élément clé à retenir : « Il y a toujours deux contextes qui coexistent : Le contexte de filtres et le contexte de ligne. »   Contexte de filtre. Prenons une mesure simple comme : Sum(Ventes[Total Ventes HT]) Elle retourne la somme des quantités de toute la table Ventes, en l’absence de filtres:   Elle retourne une valeur différente si l’on ajoute un filtre sur l’année dans le rapport :     Comment cela se produit-il ?   Il faut considérer chaque cellule : Pour déterminer sa valeur, la table Ventes est filtrée comme dans un tableur Excel, pour ne retenir que les lignes concernant l’année 2017 (première ligne du rapport.) Ensuite, l’expression s’applique sur les valeurs contenues dans la colonne Total Ventes HT (filtrées.)   Nous pouvons rajouter autant de filtres que nécessaire, la logique sera toujours la même : la table est filtrée en fonction du contexte d’évaluation de chaque cellule, avant […]

DAX – Contexte d’évaluation (Partie 1)



Dans cet article, nous allons voir comment réaliser des opérations simples en utilisant un script R dans power query. Pour générer une table de données nous allons devoir créer ce que se nomme un dataframe, dans le langage R. Un dataframe est utilisé pour stocker les tables de données, elles-mêmes constituées de colonnes (ou vecteurs en R), de même longueur. En R, la notation pour un vecteur est c(). c(1,2,3) représente donc une colonne de données dont les valeurs des lignes sont 1,2 et 3. Pour affecter un vecteur à une variable, nous pouvons utiliser le signe = ou la notation <-. x = c(1,2,3) x <- c(1,2,3) Pour afficher le résultat sous forme de table, dans Power query, nous devrons utiliser la fonction data.frame(). n = c(2, 3, 5) df = data.frame(n) Ce qui donne dans l’éditeur de powerquery, le code suivant : let Source = R.Execute(« df=c(2,3,5);dataset=data.frame(df) »), dataset = Source{[Name= »dataset »]}[Value] in dataset La constitution d’une table suit la même logique : a = c(3, 4, 5) b = c(« aa », « bb », « cc ») c = c(TRUE, FALSE, TRUE) df = data.frame(a, b, c) Une colonne du dataframe peut aussi être le fruit d’un calcul comme : a = c(3, 4, 5) […]

Power Query – Script R – Créer une table de ...



Power Query nous permet d’acquérir des données sous forme de tables, à partir du Web. Si ce n’est déjà fait, vous pouvez télécharger les fichiers sources sur le site de l’excellent  livre M is for (Data) Monkey écrit par Ken Puls et Miguel Escobar  dont nous nous sommes inspiré Télécharger les fichiers pour écrire ce post. Commençons tout d’abord par récupérer une Table Html : Obtenir les données –> Web –> https://www.cia.gov/library/publications/the-world-factbook/rankorder/2119rank.html Power Query nous retourne deux éléments : Document et Table 0. Document, retourne le Html de la page, ce qui ne nous intéresse pas, alors que table 0 reprend les données incluses entre les balises Html. Sélectionnons table 0 –> Modifier. Il ne reste plus qu’à faire les transformations d’usage et nous aurons récupéré des informations directement utilisables, depuis une Table Html. Nous pouvons aussi nous connecter directement à des fichiers hébergés sur un serveur Web, à condition de connaitre l’URL Obtenir les données –> Web –> https://www.cia.gov/library/publications/the-world-factbook/rankorder/rawdata_2119.txt L’aperçu nous permet de vérifier que Power Query a correctement déterminé les délimiteurs de colonnes, nous pouvons cliquer sur Modifier et réaliser les modifications d’usage.

Power query – Données Web



2
Si vous programmez, vous êtes surement familiers du concept « d’itération ». Pour les autres (c’est-à-dire l’écrasante majorité) il s’agit simplement d’une répétition programmée d’actions. C’est ce que SUMX() (et tous les membres de sa famille) MINX(),MAXX() font : ils répètent une action ligne après ligne. Anatomie de la fonction : SUMX(<Table>, <Expression>) Cela peut se lire de cette manière : Va à la première ligne -> fait un calcul -> Mémorise le résultat -> va à la seconde ligne-> Fait le même calcul -> ajoute le résultat au résultat mémorisé -> etc.. jusqu’à la dernière ligne. Pour illustrer le travail que réalise cette fonction, nous allons chercher à répondre à la question suivante : quelle est la valorisation totale du stock ? Pour y répondre nous ne pouvons pas utiliser la fonction SUM() SUM([qté])*SUM([Pu]) Car le résultat serait faux (ci-dessous l’équivalent du calcul dans Excel) Nous devons effectuer le calcul à la ligne. En tant qu’utilisateur d’Excel nous pensons immédiatement à rajouter une nouvelle colonne calculée à la table ‘Mouvements de Stock’. L’équivalent dans Excel . La somme de cette nouvelle colonne est égale à 110 000, ce qui est la bonne valeur. Si le résultat est exact, la méthode n’est pas la bonne ! L’heure est enfin venue de […]

DAX – SUMX()