Machine Learning: Association Rules

Association rules sind ein Machine Learning-basierter Ansatz zum Mining von Relationen in Daten. Die Market Basket Analysis verwendet zum Beispiel Association Rule Mining, um Produkte zu identifizieren, die häufig zusammen gekauft werden (“Co-Occurrence” als Assoziation). Wir können Association Rules Mining als Data Mining betrachten und damit als Teil von Data Science. Association Rules werden aber nicht nur für Warenkörbe verwendet, sondern für viele verschiedene Transaktions-Daten, zum Beispiel auch für Web Usage Mining. Häufig werden im Association Rule Mining große Datenmengen untersucht, wobei die einzelnen Observationen nur wenig Daten enthalten (“sparse data“).

Metriken

Das Ergebnis von Association Rules Mining wird in Regeln ausgegeben, die folgendermaßen aussehen:

  • Regel
  • Support
  • Confidence
  • Lift

Eine Regel geht von einer Richtung in eine andere, also [Item1] => [Item2].

RStudio-Server updaten

Die AMIs von Louis Aslett sind nützlich, um kurz mal einen RStudio-Server auf einer AWS EC2-Instanz zu starten. Allerdings enthalten diese AMIs nicht immer die aktuelle Version von R oder RStudio. Diese beiden Befehle helfen, sowohl R als auch RStudio upzudaten:

sudo apt-get install gdebi-core
wget https://download2.rstudio.org/rstudio-server-1.1.442-amd64.deb
sudo gdebi rstudio-server-1.1.442-amd64.deb

echo "deb http://cran.stat.ucla.edu/bin/linux/ubuntu `lsb_release -sc`/" | sudo tee --append /etc/apt/sources.list.d/cran.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
sudo apt update
apt list --upgradable

Daten-Analyse mit R

Nicht alle Fragestellungen können mit den Bordmitteln von Google Analytics, Adobe Analytics und anderen Lösungen gelöst werden. In solchen Fällen werden die Rohdaten aus den jeweiligen Systemen geladen und dann weiter verarbeitet. Ein anderer Grund für die Abfrage von Daten über Application Programming Interfaces (APIs) anstatt von graphischen Benutzerschnittstellen (GUIs) ist die Automatisierbarkeit der Erstellung von Reports. Diese beiden Use Cases werden am Beispiel von R gezeigt.

R ist eine Umgebung zur statistischen Datenverarbeitung und sowohl eine Sprache als auch die Umgebung selbst. Für die Nerds unter uns ist die Sprache R der Nachfolger von S. R kann kostenlos von der Webseite des R-Projekts heruntergeladen werden. Zusätzlich kann RStudio installiert werden, eine etwas bequemere Entwicklungsumgebung, die vor allem Studenten einfacher finden 🙂 Wichtig: Es muss zunächst R installiert werden, dann RStudio.

R oder Python?

Warum R und nicht Python? Es ist kein “Entweder-oder”, denn auch wenn die Python-Jünger sagen, dass Python alles könne, so ist Python zunächst einmal eine allgemeine Programmiersprache, keine Sprache, die sich auf Statistik fokussiert. Natürlich existieren viele Erweiterungen für Python, aber genau das ist der Punkt: Es sind Erweiterungen und keine grundsätzlichen Bestandteile wie bei R. Demgegenüber steht R: R hat so gut wie alles in der Standardinstallation, was man für die einfache Arbeit in der Statistik benötigt, es ist halt genau dafür ausgelegt. Aber auch R kann erweitert werden. Und auch für R existieren viele Libraries, die Funktionen nachrüsten, die Python eventuell schon mit Bordmitteln beherrscht. Libraries sind sozusagen Kollektionen von Routinen, die die Funktionen einer Programmiersprache erweitern. Mit Python und R kann man zum Beispiel mit Bordmitteln keine Webseite crawlen, das geht nur mit den zusätzlichen Libraries. In R werden Libraries auch packages oder Pakete genannt.

Manches kann Python mit seinen Erweiterungen einfach besser, zum Beispiel ist BeautifulSoup momentan noch ein viel besserer Web Scraper als Rvest es ist. Das Gute ist, dass sich beide Sprachen in RStudio wunderbar kombinieren lassen. Dazu später mehr. Ein großer Vorteil ist, dass R von Statistikern für Statistiker entwickelt wurde, also genau deren Bedürfnisse im Blick hatten. Manche bösen Zungen behaupten allerdings auch, dass dies der große Nachteil von R ist. Wiederum andere sagen, dass R süchtig macht und ungesund ist:

Using R is a bit akin to smoking. The beginning is difficult, one may get headaches and even gag the first few times. But in the long run,it becomes pleasurable and even addictive. Yet, deep down, for those willing to be honest, there is something not fully healthy in it.” (Francois Pinard)

Natürlich stimmt das nicht 🙂 Unternehmen wir also die ersten Schritte mit R und RStudio.

 

Sistrix Traffic versus Google AdWords Keyword Planner

Wer hier öfter mitliest, der weiß, dass Sistrix eines meiner absoluten Lieblings-Tools ist (ich verlinke mal ganz dreist als bestes SEO Tool), allein schon wegen der schlanken API, dem absolut liebenswürdigen Johannes mit seinen wirklich schlauen Blog-Posts sowie der Unaufgeregtheit, mit der die Toolbox immer wieder überzeugt. Natürlich sind auch alle anderen Tools klasse, aber Sistrix ist sowas wie meine erste große Tool-Liebe, die man nicht aus seinem SEO-Gedächtnis verbannen kann oder will. Und auch wenn die folgenden Daten eventuell am Lack kratzen könnten, eine richtige Delle haben sie in meiner Sistrix-Präferenz nicht verursacht.  More

Data Science meets SEO, Teil 5

Der letzte Teil dieser Serie über Suchmaschinenoptimierung/SEO und Data Science auf Basis meines Vortrags bei der SEO Campixx. Die Daten und den Code habe ich via Knit in ein HTML-Dokument überführt, das mein Notebook inklusive Daten nachvollziehbar macht. In dem Notebook sind auch ein paar mehr Untersuchungen drin, allerdings habe ich alles auf Englisch dokumentiert, da dies nicht nur für Deutsche interessant ist. Wer also alle Ergebnisse in einem Dokument lesen möchte (ohne die TF/IDF, WDF/IDF oder Stemming-Beispiele), schaut sich bitte das Data Science & SEO Notebook an. Speed und andere Faktoren sind in den vorherigen Teilen zu lesen. More

Data Science meets SEO, Teil 4

Jetzt ist der Vortrag schon wieder einen Monat her, und ich hab immer noch nicht alles runtergeschrieben. Das liegt allerdings auch daran, dass ich die letzten Wochen noch mehr Daten akquiriert habe, damit ich einen Datensatz habe, den ich teilen kann und der nicht kundenspezifisch ist. More

R: dplyr/sparklyr vs data.table Performance

In their 2017 book “R for Data Science“, Grolemund and Wickham state that data.table is recommended instead of dplyr when working with larger datasets (10 to 100 Gb) on a regular basis. Having started with Wickhams sparklyr (R’s interface to Spark using the dplyr dialect), I was wondering how much faster data.table actually is. This is not the most professional benchmark given that I just compare system time before and after the script ran but it gives an indication of the advantages and disadvantages of each approach.

More

Data Science meets SEO, Teil 3

In den ersten beiden Teilen ging es darum, was Data Science überhaupt ist und warum WDF/IDF-Werte sehr wahrscheinlich wenig mit dem zu tun haben, was bei Google unter der Motorhaube passiert. In diesem Teil geht es einen Schritt weiter, wir schauen nämlich, ob es Korrelationen zwischen Ranking Signalen und der Position gibt. Im Vortrag hatte ich das am Beispiel einer Suchanfrage gezeigt und angesichts der zur Verfügung stehenden Zeit auch eher kurz abgehandelt. Hier kann ich in die Tiefe gehen. Wir schauen uns hierbei allerdings erst einmal nur jedes einzelne Rankingsignal in Bezug auf die Positon an, nicht die eventuell vorhandene Wirkung der Rankingsignale untereinander. More

Data Science meets SEO, Teil 2

Nachdem ich im ersten Teil erklärt habe, was Data Science ist und was es in diesem Bereich schon zum Thema SEO gibt, nun der zweite Teil, wo wir uns etwas genauer damit beschäftigen, was die linguistische Verarbeitung eines Dokuments durch eine Suchmaschine für eine Auswirkung auf SEO-Konzepte wie Keyword Density, TF/IDF und WDF/IDF hat. Da ich auf der SEO Campixx live Code gezeigt habe, biete ich hier alles zum Download an, was das Nachvollziehen der Beispiele noch erlebnisreicher macht 🙂 Das geht übrigens auch ohne die Installation von R, hier ist der komplette Code mit Erklärungen und Ergebnissen zu finden. More