close

Microsoft

AllgemeinAnalytics, Auswertung, StatistikAzureCloudKünstliche Intelligenz

Microsoft Azure Advanced Analytics und Data Science Tools  (Teil 1.) 

Bei Microsoft zum Hands-On Workshop: Azure Advanced Analytics und Data Science Tools 

Neulich im Microsoft Lab zum Hands-On Termin: Azure Machine Learning Studio und Workbench, Azure (Data Science) Virtual Machine, Microsoft Open R und mehr. Gemeinsam mit meinem Kollegen Michael König bei Microsoft. Die Größe der Community hält sich in Grenzen (9 Teilnehmer inkl. Tutor).

Der Gegenstand: Anwendung von Machine Learning in Data Science und Data Analytics  

Für Data Analytics können nun Machine Learning Systeme in ihrer speziellen Eigenschaft angewendet werden, auf der Basis von Daten selbstständig zu lernen. Data Science ist dabei ein Überbegriff, der Data Analytics beinhaltet. Während man von einem Data Scientist erwarten kann, auf der Basis von Daten Prognosen zu liefern, muss der Datenanalyst aussagekräftige und belastbare Daten aus verschiedenen Datenquellen aggregieren. (mehr …)

mehr lesen
AllgemeinKünstliche Intelligenz

Automatische Klassifizierung von Servicetickets mittels Natural Language Processing

Rohdaten

Der Datensatz umfasst etwa 30000 Tickets erstellt in einem Zeitraum von 5 Jahren. Ein Ticket wird mittels einer E-Mail erstellt. Jedem Ticket wurde ein Servicetyp zugewiesen, wobei bei ca. 7000 Tickets dieser Servicetyp fehlt. Insgesamt wurden ca. 400 verschiedene Typen verwendet.

Aufbereitung

Eine Klassifizierung mit einer sehr großen Anzahl an verschiedenen Typen ist nicht zielführend. Betrachtet man den Datensatz kann man erkennen, dass einige Servicetypen nur sehr spärlich verwendet wurden. Um die Kategorien einzuschränken, betrachten wir nun nur Typen mit mindestens 200 Einträgen. Dadurch bleiben 17 verschiedene Kategorien bei verbleibenden 22000 Tickets. Ohne die Anzahl der Tickets signifikant zu verringern (ca. 1000 Datensätze) kann so mit einem abgespeckten Klassenspektrum gestartet werden. Als Input wird die E-Mail im Format „<Betreff>: <Inhalt>“ verwendet.

(mehr …)

mehr lesen
AllgemeinAnalytics, Auswertung, StatistikThema

RDLC Reports in Visual Studio 2017

Einleitung

Mit Visual Studio 2017 gibt es viele neue Features, die uns als SW-Entwickler das Leben um ein Vielfaches einfacher gestalten.

Leider wurde die Verwendung von lokalen Reports – sog. RDLC Reports – sehr kompliziert gestaltet.

Damit man trotzdem auch mit VS2017 die gewohnten, sehr guten Featuren von RDLC nutzen kann, folgende Anleitung mit Links auf die offiziellen Microsoft Seiten.

Vorgehensweise

Für die Verwendung von RDLC Reports in Visual Studio 2017 in ASP.NET-Projekten gehen Sie wie folgt vor (eine ähnliche Vorgehensweise gilt auch für die Verwendung von RDLC Reports in Windows-Forms-Projekten):

  1. Schließen Sie alle gerade geöffneten Visual Studio-Fenster
  2. Installieren Sie die Visual Studio-Extension „Microsoft Rdlc Report Designer for Visual Studio“:

    Download-Link:
    https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftRdlcReportDesignerforVisualStudio-18001
  3. Installieren Sie die Visual Studio-Extension “Microsoft Reports for Visual Studio”:

    Download-Link:
    https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftReportProjectsforVisualStudio

    Anmerkung:
    Falls die Installation der heruntergeladenen vsix-Dateien (Microsoft.RdlcDesigner.vsix und Microsoft.DataTools.ReportingServices.vsix) nicht funktioniert, können die Extensions auch direkt in Visual Studio über Tools > Extensions and Updates installiert werden:
  4. Starten Sie Visual Studio und erstellen Sie eine ASP.NET Web Application:


    Alternativ dazu können Sie an einem bestehenden Projekt vom Typ ASP.NET Web Application weiterarbeiten.
  5. Fügen Sie das NuGet-Package „Microsoft.ReportingServices.ReportViewerControl.WebForms“ hinzu (aktuellste Version zum Zeitpunkt der Erstellung des Blogeintrags: Version 140.1000.523 vom 6. November 2017):




    Im Anschluss an die Installation des NuGet-Packages öffnet sich die Microsoft-Informationsseite “Get started with RVC – Next steps”:
    http://htmlpreview.github.io/?https://github.com/Microsoft/Reporting-Services/blob/master/Docs_14_0/Get-Started-With-RVC.html
  6. Erstellen Sie einen neuen Report:
    • Im Dialog “Add New Item” (Projekt > Add > New Item…) sehen Sie nun unter Visual C# die beiden Einträge “Report” und “Report Wizard”. Wählen Sie “Report” und drücken Sie den Add-Button:
    • Bestätigen Sie den Dialog, der nach dem Hinzufügen erscheint:

      Hinweis: Jede weitere Report-Datei können Sie nun über das Projektmenü Add > Report hinzufügen:
  7. Befüllen Sie den Report:
    • Öffnen Sie die Toolbox und fügen Sie die gewünschten Report Items hinzu, z.B. ein Table-Objekt:
    • Nach dem Hinzufügen müssen Sie das DataSet konfigurieren und dafür zuerst eine Datenverbindung zu einer Datenbank hinzufügen sowie die gewünschten Datenbank-Objekte auswählen:



      Wählen Sie die gewünschten Datenbank-Objekte aus:

      Bestätigen Sie den finalen Dialog mit OK:
    • Wechseln Sie von der Toolbox zum Fenster “Report Data” und fügen Sie die gewünschten Reportdaten zum Report hinzu (Beispiel: befüllen Sie die Tabelle mittels Drag&Drop mit den Daten aus dem Bereich “Report Data”):
  8. Erstellen Sie eine neue WebForm und fügen Sie den erstellten Report zum Formular hinzu (Project > Add > WebForm):
    • Wechseln Sie auf die Designansicht
    • Fügen Sie aus der Toolbox den ScriptManager hinzu (Toolbox > AJAX Extensions > ScriptManager):
    • Fügen Sie aus der Toolbox den ReportViewer hinzu und ändern Sie ggf. seine Größe:

      Falls dieser nicht vorhanden ist, gehen sie wie folgt vor:

      1. Toolbox > General > Choose Items…
      2. Browse: [Solution-Ordner]\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.140.1000.523\lib\net40\Microsoft.ReportViewer.WebForms.dll auswählen:
    • Im ReportViewer unter „Choose Report“ den angelegten Report (*.rdlc-Datei) auswählen:
    • Testen Sie die erstellte WebForm und den hinzugefügten Report mittels IIS Express durch Auswahl des gewünschten Browsers und Drücken des Play-Buttons:

mehr lesen
AllgemeinAnalytics, Auswertung, Statistik

Table-Switching bei High-Availability Staging/Reporting Lösungen

In manchen Szenarien ist eine klassische ETL-Lösung mit mehreren Staging/Harmonisierungs-Ebenen nicht realisierbar.

Häufig ist der Grund dafür der Wunsch nach sehr kurzen Latenzzeiten: Damit ist jene Verzögerungszeit gemeint, um Daten vom Vorsystem ins analytische Reporting zu transferieren.

Bei einem Full-Load werden aber die Daten vorher komplett aus der Zieltabelle gelöscht, um diese danach mit den neuesten Daten aus dem Vorsystem erneut zu befüllen.

Die Latenzzeit zwischen Löschen und fertiger Befüllung ist für das Reporting leider problematisch, da keine Daten verfügbar sind.

Um diese Anforderung so gut wie möglich zu bedienen, kommt die „Table-Switching“-ETL-Methode zum Einsatz.

(mehr …)

mehr lesen
AllgemeinKünstliche IntelligenzTool, Bot, App, Add-In

Microsoft Bot Framework

Das Microsoft Bot Framework mitsamt dem Bot Builder SDK, das für C# und Node.js verfügbar ist, bietet das Rüstzeug zum Senden und Empfangen von Nachrichten sowie eine Anbindung an verschiedene Chat Kanäle wie Facebook oder Skype. Weiters erleichtert es durch die Bereitstellung bereits vorgefertigter Hilfsklassen die Verwendung der Microsoft Cognitive Services.

Eine Übersicht über das Microsoft Bot Framework und dessen Schnittstellen ist in Abbildung 1 zu sehen.

Abbildung 1: Microsoft Bot Framework und dessen Schnittstellen

Bei den Microsoft Cognitive Services sind vor allem der QnA Maker sowie die Language Understanding Intelligent Services (LUIS) für die Bot-Kommunikation sehr hilfreich.

QnA Maker

Für die Erstellung eines neuen QnA Maker Services gibt es verschiedene Möglichkeiten. Die Knowledge Base kann erzeugt werden durch:

  • Die Angabe einer FAQ Website
  • Das Hochladen von FAQ Dokumenten
  • Die manuelle Eingabe der Frage Antwort Einträge

Mit der Knowledge-Base als Startpunkt können dann bei Bedarf Verbesserungen vorgenommen werden. Gibt ein Benutzer beispielsweise eine Frage ein, die nicht hinterlegt ist, werden die wahrscheinlichsten Alternativen zur Auswahl zurückgegeben. Wird eine dieser Alternativen vom Benutzer ausgewählt, erhält das System ein Feedback, welches zur Verbesserung beitragen kann. Ein Beispiel für diese Vorschläge ist in Abbildung 2 dargestellt.

Abbildung 2: Alternativen bei unbekannter Frage

Eine weitere Möglichkeit zur Verbesserung ist es, den Bot zu trainieren. Hierbei kann man die besten Antworten auswählen und auch alternative Phrasen zu einer bestimmten Frage hinzufügen. Ein Beispiel hierfür ist in Abbildung 3 dargestellt.

Abbildung 3: Training eines Bots

Weiters können alle bestehenden Konversationen abgefragt und die Fragen sortiert nach Häufigkeit trainiert werden.

LUIS

Dieser Service analysiert die Bedeutung (Intent) und die dazugehörigen Objekte (Entities) von verschiedenen Aussagen. Abbildung 4 zeigt ein Beispiel, das die Bedeutung der Fragen (Intent) zu einer gewissen Person (Entity) behandelt.

Abbildung 4: Intents und Entities

Abbildung 5 zeigt, wie mit Hilfe des LUIS Service Portals Intents erzeugt werden können.

Abbildung 5: Intents anlegen

Mit Hilfe dieser Trainingsdaten wird im nächsten Schritt eine bestimmte Wahrscheinlichkeit zugewiesen (siehe Labeled Intent in Abbildung 6).

Abbildung 6: Zugewiesene Wahrscheinlichkeiten

Das dabei erstellte Model kann danach für neue (auch unbekannte) Nachrichten die Wahrscheinlichkeiten berechnen.

Ist das Model fertig kann LUIS nun in der Bot-Implementierung verwendet werden. Als Einstiegspunkt bei jedem Bot dient der Messages Controller. Dieser ist in Abbildung 7 ersichtlich. Der Message Controller bekommt ein Activity Objekt übergeben. Ist das Activity Objekt vom Typ Message dann wird der LuisDialog aufgerufen. Andere Typen sind beispielsweise das Hinzufügen eines Chatteilnehmers oder das Beenden einer Konversation, auf welche wir hier nicht weiter eingehen.

Abbildung 7: Messages Controller

Die Nachricht wird dann über die REST Schnittstelle analysiert und je nachdem, welcher Intent am wahrscheinlichsten ist, wird der dazugehörige Task ausgeführt und eine entsprechende Rückmeldung an den Benutzer gesendet (siehe Abbildung 8).

Abbildung 8: LuisDialog

Auch bei LUIS kann das Model stetig verbessert werden, indem bisherige Zuweisungen bei Bedarf korrigiert werden.

mehr lesen
Analytics, Auswertung, Statistik

Was ist Microsoft AI?

Microsoft AI ist eine Sammlung von Services, Bibliotheken & Tools spezialisiert auf den Bereich der künstlichen Intelligenz. Die Plattform beinhaltet einfach zu verwendende, bereits vollständig konfigurierte Services sowie Tools mit denen komplexe, applikationsspezifische Modelle realisiert werden können. Microsoft AI kann in drei große Gruppen unterteilt werden:

Cognitive Services

In dieser Gruppe befinden sich vor allem Services, die die Mensch-Maschine-Kommunikation in verschiedenster Weise ermöglichen. Die Cognitive Services sind einfach zu verwenden und werden über REST Schnittstellen zur Verfügung gestellt. Die Integration kann meist mit sehr wenigen Codezeilen realisiert werden. Außerdem werden auch einige konfigurierbare Services angeboten. Ein Überblick über die verfügbaren Module ist in Abbildung „Verfügbare Module im Überblick“ zu sehen.

Abbildung: Verfügbare Module im Überblick

Azure Machine Learning

Eine Unterkategorie von AI ist das sogenannte Machine Learning. Die Azure Machine Learning Workbench bietet eine umfangreiche Umgebung mit einer Vielzahl an Tools zur Anwendung von gängigen Machine Learning Algorithmen. Außerdem verfügt das Programm über viele unterstützende Funktionen zur Vorbereitung der Daten sowie zum Veröffentlichen der erzeugten Modelle. Die Workbench kann auf dem lokalen Computer installiert werden und muss mit einer Azure Ressource verknüpft sein (siehe Abbildung „Azure Machine Learning“).

Abbildung: Azure Machine Learning

Cognitive Toolkit

Deep Learning wird mit Hilfe des Cognitive Toolkits ermöglicht. Verschiedene Arten von Neuronalen Netzwerken können erstellt, trainiert und getestet werden. Durch eine Vielzahl an Konfigurationsmöglichkeiten kann eine hohe Präzision bei Vorhersagen mittels Neuronalen Netzwerken erreicht werden.

Ausblick

In den kommenden Wochen folgen weitere Blogeinträge zum Thema Microsoft AI, in denen auf ausgewählte Themenbereiche vertiefend eingegangen wird. Unter anderem wird gezeigt, wie mit Hilfe künstlicher Intelligenz ein Bot programmiert werden kann.

mehr lesen
Analytics, Auswertung, Statistik

Microsoft SQL Server Master Data Services (MDM)

Einleitung

Master Data Services – kurz MDM – ist ein Bestandteil der SQL Server Produktpalette seit SQL Server 2008 R2 und hat sich in den letzten Jahren bis 2016 nur marginal weiterentwickelt. Dies lag vorwiegend daran, dass Microsoft den Schwerpunkt auf den Business Intelligence Stack gelegt hatte.

Mit dem Release von SQL Server 2017 wurde MDM grundlegend erneuert: HTML5 und neue Technologien tragen zu Stabilität und Akzeptanz bei.

Am Namen und der damit verbundenen, hohen Erwartungshaltung wurde (leider) nichts geändert: was dem Thema an sich zwar nicht schadet, aber für Erklärungsbedarf sorgt.

(mehr …)

mehr lesen
Analytics, Auswertung, Statistik

SAP HANA und Microsoft BI: a true love-story?

Mit der neuen SAP HANA In Memory Technologie ist nun auch ein einfacher Zugriff auf SAP-Daten möglich.

Dazu gibt es im Microsoft BI Umfeld interessante Möglichkeiten, um an wertvolle ERP-Informationen zu gelangen

1. Zugriff mittels PowerBI Desktop

In der Self-Service-BI Suite „PowerBI Desktop“ ist ein Zugang mit dem neuen SAP HANA Connector möglich.

Zuerst ist es aber erforderlich, die SAP HANA ODBC Treiber für Windows zu installieren. Diese können unter https://support.sap.com/en/my-support/software-downloads.html direkt von SAP bezogen werden. Hier ist eine S-ID Voraussetzung, die man vom unternehmensinternen SAP-Admin erhalten kann.

Sind die ODBC-Treiber installiert, kann mit wenigen Klicks eine Verbindung zum HANA Server aufgebaut werden. Single-Sign-On und Berechtigung im SAP sind hier Voraussetzung.

Ist die Berechtigungshürde gemeistert, kann auf die entsprechenden Entitäten im HANA Datenbankmodell zugegriffen werden. Eine detaillierte Anleitung findet sich unter dem BI Channel von PowerBI https://www.youtube.com/watch?v=Zpbh6UE3pSE

(mehr …)

mehr lesen
Analytics, Auswertung, StatistikOffice 365On-Premises

Power BI Report Server: Was steckt wirklich dahinter?

Mit Juni und später mit August 2017 stellte Microsoft seine Antwort auf die Konkurrenz durch Qlikview und Tableau vor: Lokale Berichterstellung mit Power BI-Berichtsserver (https://powerbi.microsoft.com/de-de/report-server/)

Versprochen wird eine Verknüpfung der neuen Self-Services-Features, die seit 2016 durch Power BI Desktop bekannt sind, kombiniert mit den mächtigen Standard-Reporting-Funktionen der Reporting-Services aus dem SQL Server Stack. Damit können moderne, interaktive Berichte on-premise den unternehmensinternen Benutzern zur Verfügung gestellt werden. (mehr …)

mehr lesen