DaMu-Analytics

Unterschiede zwischen Bildklassifikation, Objekterkennung und Segmentierung mithilfe von Neuronalen Netzen

In der Welt der Bildverarbeitung und des maschinellen Lernens sind Bildklassifikation, Objekterkennung und semantische Segmentierung drei wichtige Aufgaben, die jeweils unterschiedliche Ziele verfolgen und verschiedene Techniken erfordern. Während sie alle dazu dienen, visuelle Informationen zu analysieren, umfasst jede von ihnen unterschiedliche Ebenen der Komplexität und des Detailgrads. In diesem Artikel möchte ich eine kurze Einführung in diese Methoden geben.

Weiterlesen

Rekursion

How to: SQL rekursive Abfragen erstellen

Die Frage wie man in SQL rekursive Abfragen erstellen kann kommt zwar nicht besonders häufig vor. Aber vor kurzem hatte ich tatsächlich eine Projektanfrage, genau so etwas zu realisieren. Rekursive Abfragen sind dabei Abfragen die sich selbst wieder aufrufen. Was das genau ist, wozu das verwendet werden kann und ganz wichtig, wie das genau funktioniert werden wir in dem Artikel untersuchen.

Also für diesen Artikel werden wir die folgenden Punkte erklären.

  • Was bedeutet Rekursiv?
  • Wozu kann ich rekursive Funktionen oder Abfragen verwenden?
  • Wie kann ich in SQL eine Rekursive Abfrage erstellen?

Weiterlesen

Unterschiede zwischen Decision Tree, Random Forest und Boosting Algorithmen

Wer sich mit dem Thema Data Science beschäftigt kommt sehr schnell auf Begriffe wie z.B. Decision Tree, Random Forest und verschiedene Boosting Algorithmen ( AdaBoost, lightGBM, XGBoost). Dabei ist oft unklar was das Prinzip hinter diesen Algorithmen ist und worin diese sich unterscheiden. Das möchte ich gerne versuchen in diesem Artikel zu erklären.

Decision Trees sind der Einstieg in Machine Learning Verfahren. Oft beginnt man den Einstieg mit einfachen Methoden wie einer Linearen Regression. Als nächstes werden Decision Trees oder ein Random Forest Algorithmus eingeführt. Allerdings wird häufig nicht erklärt was die Prinzipien hinter diesen Algorithmen sind. Also was ist der Nachteil von Decision Trees gegenüber Random Forest Algorithmen. In dem Artikel werden wir deshalb folgende Fragen beantworten:

  • Was ist ein Decision Tree?
  • Wie grenzen sich baumbasierte Algorithmen von anderen Algorithmen ab?
  • Was bedeutet Bagging oder Boosting?
  • Was ist ein Random Forest Algorithmus?
  • Was ist der XGBoost Algorithmus?

Weiterlesen

How to: Texte mit Python analysieren Part 3

Wir beschäftigen uns in diesem Artikel wieder mit den Trump Tweets aus 2019 wie schon in den vorherigen Artikeln. Die sind nun schon deutlich älter. Die gezeigten Prinzipien lassen sich aber auch auf ziemlich alle anderen Datensätze anwenden. Ziel ist es zu analysieren, was für Themen Cluster in den Tweets stattgefunden haben. Ich werde die aufbereiteten Texte mit einfachen statistischen Mitteln für einen Cluster Algorithmus „interpretierbar“ machen und mehrere unterschiedliche Algorithmen miteinander vergleichen.

Es ist nun schon etwas länger her, dass ich einen Blog Beitrag verfasst habe. Es ist halt doch nicht so viel Zeit wie ich gedacht habe, um sich nebenbei mit solchen Themen zu beschäftigen. Aber die Geduld soll belohnt werden. Darum werden wir die Texte nun versuchen zu Clustern und an dem Beispiel 3 spannende Cluster Algorithmen vergleichen. K-Means, DBSCAN und HDBSCAN. Vorab, es gibt nicht den einen perfekten Algorithmus der immer passt. Neben diesen drei Algorithmen gibt es noch viele weitere die ebenso verwendet werden können.

Weiterlesen

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.

Weiterlesen

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 Texte mit Python analysieren kann und das alles 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

Weiterlesen

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

Weiterlesen

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.

Weiterlesen

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

Weiterlesen

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.

Weiterlesen

WordPress Cookie Plugin von Real Cookie Banner