DaMu-Analytics
SQL Stock Photo

SQL Hacks angrenzende Daten gruppieren

Jeder kennt die einfach anwendbare Funktion GROUP BY oder die Anweisung DISTINCT hinter dem SELECT einer SQL Query. Allerdings was macht man, wenn man nicht alle Daten auf eine oder mehrere Kategorien gruppieren möchte, sondern dies nur für die angrenzenden Daten gleichen Typs machen möchte? Das möchte ich in diesem Beitrag etwas näher erklären.

 

Dieser Beitrag ist aus einem aktuellen Projekt von mir entstanden. Dabei war die Kundenanforderung zeitliche Daten zu gruppieren. Dies könnten z.B. Sales Buchungen sein die nach einem Kundensegment gruppiert werden sollen. Allerdings möchte man nicht einfach nur Kundengruppen auf gruppieren. Sondern man sollte dies auch nach angrenzenden zeitlichen Buchungen gruppieren. Wenn ihr Interesse an weiteren SQL Themen habt und wissen wollt wie man z.B. Conditional Joins optimiert dann schaut euch doch diesen Beitrag von mir an. Ich werde auch nicht auf die Erklärung von Select oder FROM Befehlen weiter angehen. Wenn ihr also noch die Grundlagen erklärt bekommen müsst empfehle ich euch vorher ein paar Tutorials durch zu lesen. Ich würde empfehlen auf der Seite von W3Schools die entsprechenden Tutorials durch zu gehen.

Nehmen wir an, wir haben eine Tabelle mit unseren Sales Buchungen je Kundensegment. Dabei wird jede Buchung mit einem Timestamp versehen und der Umsatzgröße wie in dem u.g. Beispiel.

Mehr erfahren

How to: Texte mit Python analysieren Teil 2

Im ersten Teil haben wir das theoretische Grundkonzept von Text Mining erläutert. In diesem Teil wollen wir ein paar Dinge praktisch anwenden und uns mal ansehen, wie man so Informationen an einem konkreten Beispiel aus den Texten herauskristallisieren kann.

Den ersten Teil könnt ihr unter diesem Link finden. Es wird kurz angerissen, was man mit Text Mining machen kann. Welche Machine Learning Verfahren es gibt und wie die grundsätzlichen Pre-Processing Schritte aussehen. Außerdem werden 2 Packages zur Textverarbeitung vorgestellt. In diesem Artikel werden wir nun die folgenden Themen, am Beispiel eines Trump Twitter Datensatzes, behandeln:

  • Erklärung des Datensatzes
  • Erste Untersuchung des  Datensatzes
  • Preprocessing Schritte
  • Gewinnen der ersten Informationen & Erkenntnisse
  • Ausblick auf weitere Analysen

Mehr erfahren

How to: Texte mit Python analysieren Teil 1

Text Mining. Was ist das? Viele kennen inzwischen diesen Begriff. Es hat was zu tun mit Data Mining. Da sind wir uns sicher. Aber wie genau kann ich Informationen aus einer großen Menge an Texten herauskristallisieren und vor allem, wie kann ich diese Texte evtl. auch in Gruppen einteilen und bestimmen was sie zum Thema haben ohne alle Texte selber lesen zu müssen?

 

Diesen Fragen werden wir uns nun in dem heutigen Beitrag stellen. Am Ende solltet ihr ein Verständnis davon haben:

  • Was Unsupervised & Supervised Algorithmen sind
  • Was das PreProcessing bei Text Mining beinhaltet
  • Welche Python Packages sich dafür besonders eignen

Wie Ihr seht braucht man da evtl. schon etwas Vorwissen zu grundsätzlichen Themen in Python. Also ich werde nicht erklären was Funktionen, Python Packages usw. sind sondern wirklich auf die spezifischen Fragen beim Thema Text Mining eingehen. Wenn ihr die Grundlagen noch braucht lest vorher lieber einen der folgenden Beiträge: Python Umgebung auf eigenem Rechner einrichten oder Pandas, Import/Export und Grundlagen der Datenmodellierung. Dies ist nur der erste Teil von zwei Beiträgen der den theoretischen Kleinkram grundsätzlich erklärt. Die praktischen Beiträge wird es in einem 2. Beitrag geben. Let’s Go

Mehr erfahren

Meine Blogübersicht zu Data Science und Digitalisierung

Im Internet gibt es zahlreiche Blogs zu allen Themen. Da ist es manchmal schwierig den Überblick zu behalten. Ich will darum mal ( auch für mich selber) meine aktuellen Top Webseiten zu den Themen Data Science, Prozessmanagement und Digitalisierung zusammenschreiben. Vielleicht hilft es auch den einen oder anderen neue Ideen zu bekommen.

Der Beitrag wird entsprechend auch aufgeteilt in diese Bereiche und ich werde zu den verschiedenen Blogbeiträgen einen kurzen Kommentar geben. Den Anfang machen Blogs zum Thema Data Science.

Mehr erfahren

Was bedeutet eigentlich Agil?

Seit einigen Jahren hört man es schon. „Wir werden jetzt agil“ oder „Wir bauen jetzt auf eine agile Organisation“. Man fragt sich häufig, was bedeutet das denn jetzt überhaupt? Oder ist es einfach nur wieder ein Buzzword, welches gerade durch die Management Ebenen hallt? Das möchte ich gerne einmal versuchen näher zu betrachten und meine eigenen Gedanken dazu auf das digitale Papier bringen.

Um das Thema zu betrachten müssen wir erst einmal den Begriff Agil definieren. Agil kommt von Agilität und das wiederum bezeichnet, laut Wikipedia, die Fähigkeit einer Organisation flexibel und proaktiv, antizipativ und initiativ auf Veränderungen zu reagieren. Also die Fähigkeit auf sich verändernde Umwelteinflüsse zu reagieren. So etwas könnte dann zum Beispiel auch ein Technologiewandel sein. Firmen die also agiler als andere sind können also besser auf Umweltveränderungen reagieren und haben damit einen Wettbewerbsvorteil, besonders in Zeiten in denen große Veränderungen anstehen wie es aktuell der Fall ist.

Mehr erfahren

Process Modelle mit Petri Nets erstellen Teil 2 … jetzt wirds ernst

Im ersten Beitrag habe ich erklärt was Conformance im Bereich Process Mining ist und was es uns bringen kann. Außerdem habe ich erläutert, dass es häufig mit sogenannten Petri Netzen erzeugt wird. Heute werde ich darauf eingehen aus was Petri netze bestehen und wie ich diese erzeuge. Das Ziel in dem konkreten Use Case ist es, diese Petri Netze für die Nutzung in dem Tool Celonis aufzubereiten. Mit anderen Tools kann das benötigte Ergebnis etwas anders aussehen aber das Prinzip bleibt das gleiche..

Vielleicht, bevor wir einsteigen. Mit welchen Tools kann ich Conformance Funktionen mithilfe von Python einsetzen?

  • Celonis: Über eine Python API kann eine Conformance Abfrage an das Celonis Tool übergeben werden, welche jede Aktivität in dem Prozess auf Konformität überprüft.
  • PM4PY: Open Source Framework direkt in Python vom Frauenhofer. Hier gibt es Funktionen die aus den einzelnen Bausteinen ein Petrinetz erzeugen können und damit auch im Rahmen von Process Mining eine Conformance Funktion bietet.

Folgende Punkte werden in diesem Artikel behandelt:

  • Woraus bestehen Petri Netze
  • Woraus bestehen in der Regel Prozess Modelle
  • Let’s Code – Transformieren des Prozess Modells in ein Petri Netz
  • Weiterer Ausblick

Mehr erfahren

SQL Conditional Join – Was ist das und warum sollte ich es vermeiden?

Dieser Post ist entstanden aus einem aktuellen Arbeitsthema von mir. Wir haben bei uns eine HANA Datenbank in der wir verschiedene Daten einspielen, aufbereiten und dann über verschiedene Visualisierungstools darstellen können. Dabei müssen wir Daten aus verschiedenen Tabellen und Views miteinander verbinden. Dabei müssen wir dies nun auch manchmal anhand verschiedener Bedingungen verbinden oder verjoinen. Ein sogenannter Conditional Join. Was das genau ist und wo das Problem dabei ist werde ich in diesem Artikel erläutern.

Also was ist nun ein Conditional Join?

Grundsätzlich kann ich 2 Tabellen in SQL mit einem sogenannten Join über einen Schlüssel verbinden. Dabei gibt es z.B. den Inner Join der nur Tabellenzeilen anzeigt bei denen die Schlüssel in beiden Tabellen übereinstimmen.

Mehr erfahren

Prozessmodelle mit Petri Nets abbilden

In Unternehmen gibt es eine Vielzahl von Prozessen. Diese werden häufig mit speziellen Programmen wie ARIS und Co. abgebildet. Dabei fehlt aber häufig eine Zusammenführung mit den tatsächlichen IST-Daten der Prozesse. Wie man diese Daten und Sichten zusammenführen kann möchte ich, da ich gerade auf der Arbeit genau solch eine Aufgabe vor mir habe, darüber einen kleinen Beitrag mit meinen aktuellen Erkenntnissen dazu schreiben.

Wir werden dabei auf Methoden im Rahmen des Process Minings eingehen. Was Process Mining ist habe ich bereits versucht in einem eigenen Beitrag zu erläutern. Siehe hier.

Was werde ich also explizit erläutern?

  • Unterschied Discovery zu Conformance
  • Was brauche ich für Conformance
  • Was sind Petrinets und wie sind diese aufgebaut?
  • Wie sieht der aktuelle Use Case für das aktuelle Projekt bei mir aus / Was für Herausforderungen gibt es?

Mehr erfahren

Mit Pandas-Profiling schnell einen Datenüberblick gewinnen

Jeder kennt es, wenn man mit neuen Datensätzen arbeitet muss sich zu erst ein Überblick über die vorhandenen Datensätze gewonnen werden. Häufig werden dabei verschiedene Tests durchgeführt um den Umfang, die Verteilung der Daten sowie fehlerhafte Datensätze, Null Werte oder auch sogar Korrelationen zwischen Variablen zu entdecken. Häufig übersieht man dabei etwas oder vergisst eine wichtige Info die den weiteren Data Science Prozess aufhält oder sogar zu falschen Annahmen führt. Anfang 2020 bin ich im Rahmen meines Jobs auf die Python Bibliothek „Pandas-Profiling“ aufmerksam geworden, welche dem Data Scientisten viele dieser Aufgaben erleichtert.

In diesem Blogartikel möchte ich diese Bibliothek und die Möglichkeiten etwas näher betrachten. Im ersten Teil möchte ich darauf eingehen, wie man mit der Anaconda Distribution oder dem klassischen PIP Tool die Bibliothe herunterlädt und wie sie genutzt werden kann. Im Zweiten Teil werde ich erklären wie man mit wenigen Zeilen Code eine ausführliche HTML Datei erzeugt, welche Einblicke in den vorliegenden Datensatz ermöglicht.

Also fangen wir an… Mehr erfahren

Praxisbeispiel: Webscraping newest Podcasts

In einem vorigen Beitrag habe ich an einem recht konstruiertem Beispiel die Möglichkeiten von Web Scraping mithilfe von dem Python Package „Beautiful Soup“ beschrieben. Siehe dazu hier. Nun möchte ich anhand eines kleinen Projektes von mir, an dem ich gerade privat arbeite, demonstrieren wie der Einsatz dieser Methode euch bei der Automatisierung von Funktionen helfen kann.

Zuerst einmal. Aktuell bin ich dabei, aufgrund der Corona Krise und der damit teilweise einhergehenden Langeweile, mich mit dem Thema Smart Home auseinander zu setzen. Dazu setze ich verschiedene Komponenten ein die ich über meinen Raspberry Pi dann als Steuerzentrale steuern lasse. Wenn das weiter fortgeschritten ist werde ich darüber auch einen eigenen Beitrag verfassen. Aktuell habe ich eine Routine gebaut, die mir morgens das Licht langsam einschaltet (von dunkel zu hell) und dabei dann anfängt Musik zu spielen. Allerdings möchte ich gerne, dass verschiedene Nachrichten Podcasts danach anfangen abzuspielen und ich somit während ich Zähne putze und Dusche quasi nebenbei ein kleines News Update bekomme. Das Problem so eine Funktion gibt es aktuell nicht in meiner Smart Home Zentrale, zumindest habe ich bisher nichts dazu gefunden. Darum musste ich mir selbst eine Lösung überlegen. Mehr erfahren