DaMu-Analytics

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?

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 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

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

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

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

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

How to: Web Scraping Data mit Beautiful Soup

Eine der wichtigen Aufgaben der Data Science ist es erst einmal an Daten zu kommen die man analysieren kann. Häufig werden einem von Auftraggebern bereits bestehende Daten zur Verfügung gestellt. Es kann aber auch vorkommen, dass erst noch Daten erhoben werden müssen. Eine Möglichkeit wie Daten von Webseiten gesammelt werden können möchte ich euch im folgenden erläutern.

In diesem Beitrag werde ich etwas über das Web Scraping schreiben. Dabei handelt es sich um eine Methode mit der Daten aus den HTML Strukturen von Webseiten extrahiert werden. Vorab gibt es hier aber einige Dinge zu beachten.

  1. Wenn möglich nutzt API’s der Anbieter, da diese genau für die Sammlung von Daten vorgesehen sind
  2. Versichert euch, dass die Daten die ihr sammelt auch für eure Zwecke verwendet werden dürfen (ggf. Fragen)
  3.  Überlastet die Webseite des Anbieters nicht mit euren Anfragen. Gerade wenn man eine komplette Webseite durchsucht und z.B. Dateien runterlädt oder die Unterseiten durchsucht, dann können kleinere Webseiten schnell in die Knie gehen. Außerdem könnte bei zu vielen Datenabfragen in zu kurzer Zeit der Admin auf die Idee kommen, dass ihr ein bösartiger Angreifer seid und eure IP blocken.

Mehr erfahren

Projektergebnis: Datenanalyse von Telekommunikationsblogs

In diesem Beitrag möchte ich eine Analyse von Daten, die ich aus RSS Feeds von verschiedenen Telekommunikationsblogs  gesammelt habe vorstellen. Damit möchte ich eine Idee geben wie man Analytics Aufgaben angehen könnte.

In dem Rahmen möchte ich auch verschiedene Punkte bzw. Fragen aufgreifen die sich mir bei der Planung und Durchführung des Analytics-Projekt gestellt haben.

  • Was ist meine Fragestellung/Hypothese gewesen?
  • Wie kann ich hier an Daten kommen und warum habe ich mich für diese Methode entschieden?
  • Wie habe ich die Daten aufbereitet und analysiert?
  • Welche Erkenntnisse habe ich daraus abgeleitet?
  • Was habe ich für zukünftige Projekte daraus gelernt?

Mehr erfahren

How to: Python Umgebung auf eigenem Rechner einrichten

Python ist eine Programmiersprache, welche sich besonders im Data Science Bereich großer Beliebtheit erfreut. Die Gründe dafür sind vielfältig. Die Sprache ist leicht zu erlernen und man muss sich über viele Dinge wie Speicherverwaltung oder Variablendeklaration keine Gedanken machen. In diesem Beitrag möchte ich euch zeigen wie ihr euch eine Python Umgebung einrichten könnt und neue Librarys installieren könnt.

Python wird anders als viele andere Programmiersprachen, welche vor Ausführung kompiliert werden müssen, zur Laufzeit von einem Interpreter interpretiert.  Außerdem ermöglicht Python eine Objektorientierte Programmierung und ist ohne Anpassungen auf vielen verschiedenen Systemen einsetzbar. Inzwischen gibt es für fast jede Problemstellung in Python eine passende Bibliothek, was es gerade für Analysten und Data Scientisten zu einer extrem hilfreichen Programmiersprache macht. Die offizielle Python Webseite ist http://python.org. Mehr erfahren

Python – Pandas, Import, Export, DataFrames und Datenmodellierung

Pandas ist eines der besten Packages in Python um Daten in ein Programm zu laden und auch große Mengen lassen sich mithilfe von Pandas aufbereiten und wieder in z.B. Datenbanken zurückschreiben oder mit weiteren Packages zu visualisieren. In Datenanalyse Projekten kommt man also um Pandas, wenn man mit Python arbeitet, gar nicht vorbei. Deshalb möchte ich mit diesem Beitrag einen Überblick über häufig genutzte Funktionen bieten.

Was ist Pandas jetzt eigentlich? Pandas ist ein Package in Python. Der Fokus liegt auf die Datenaufbereitung und Modellierung von Tabellen. Dabei bietet Pandas umfassende Funktionen um aus verschiedenen Quellen die Daten in dein Analyseprojekt zu laden und auch wieder zu exportieren. Außerdem sind die performanten Modellierungsfunktionen ein großer Pluspunkt, die auch die Arbeit mit großen Datenmengen erlauben. Pandas ist quasi aufgesetzt auf das Package Numpy, welches bereits das Konzept von Arrays einführt. Während in Numpy Arras allerdings nur Daten in einem Array mit dem gleichen Datentyp erlaubt, arbeitet Pandas vor allem mit Dataframes. Diese erlauben auch in einem Dataframe unterschiedliche Datentypen, wie z.B. in der ersten Spalte Integer und in der zweiten Spalte Daten vom Typ String etc. Mehr erfahren