Kategorie: Data Science

UNIX-Kommandozeilen-Tools für Data Scientists

Die Kommandozeile (die “Shell”) mit einem Terminal-Fenster zu erreichen. Das Programm Terminal befindet sich auf dem Mac unter Programme -> Dienstprogramme -> Terminal. Windows-Nutzer müssen Google bemühen, da Windows nicht auf UNIX basiert und extra Programme installiert werden müssen.

Kommandozeile bedeutet genau das: Es werden Kommandos auf einer Zeile eingegeben, eine grafische Ausgabe oder die Möglichkeit, sich durch Menüs zu klicken, existieren nicht. Es erfordert zwar eine gewisse Lernkurve, aber beherrscht man erst einmal ein Minimal-Set an Befehlen und Optionen, so kann man sehr schnell damit arbeiten. Wichtig: Durch die Eingabe von man <Befehl> wird die Anleitung (man für Manual) angezeigt, also zum Beispiel man grep (kleiner Tipp: ruft man ein Manual auf und will wieder raus, einfach ein “q” eingeben, nicht gleich das Terminal-Fenster schließen, weil man sich im Manual gefangen fühlt :-)).

Unix-Kommandos haben in der Regel das Format Befehl Optionen Datei, zum Beispiel sort -r datei.txt.

Wichtige Befehle mit Beispielen:

  • pwd: Print Working Directory, zeigt an, wo man sich gerade befindet im Verzeichnisbaum. Nach dem Öffnen des Programms Terminal auf dem Mac befindet man sich in dem Verzeichnis /Users/<BENUTZERNAME>
  • cd: Mit cd für change directory wird durch den Verzeichnisbaum navigiert.
    • cd Desktop bringt uns in das Unterverzeichnis Desktop
    • cd .. führt uns in das nächsthöhere Verzeichnis, mit cd ../.. kann man auch zwei Ebenen höher gehen.
  • grep: Hiermit werden Muster in Dateien gesucht.
    • grep -i ‘bowie’ enwiki-latest-pages-articles.xml – Durchsuche einen Wikipedia-Dump nach dem Begriff ‘bowie’, die Option -i sorgt dafür, dass die Suche nicht “case sensitive” ist, also auch Fundstellen gefunden werden, in denen der Begriff groß geschrieben wird.
    • grep -iv ‘bowie’ enwiki-latest-pages-articles.xml – Die Option -v sorgt dafür, dass alle Zeilen ausgegeben werden, die nicht den Begriff ‘bowie’ enthalten.
  • sort: Sortiert eine Liste
    • sort -r: Sortiert eine Liste in der umgekehrten Reihenfolge
    • Gerade bei großen Dateien kann sort viel Rechenzeit kosten, eine Alternative ist das zu installierende gsort, das alle Kerne des Prozessors nutzt.
  • uniq: Entfernt alle Mehrfach-Aufkommen eines Elements in einer Liste.

Ein großer Vorteil der Kommandozeile ist die Möglichkeit der Nutzung von Pipes. Hier werden mehrere Befehle aneinander gereiht, so dass die Ausgabe eines Kommandozeilen-Programms als Eingabe für ein anderes Kommandozeilen-Programms genutzt wird. Beispiel:

sort keywords.txt | uniq -c | sort -r | less

Das Zeichen | (auf dem Mac mit alt-7 verwendbar) ist das Pipe-Symbol. In dem Beispiel wird die Datei keywords.txt zunächst sortiert, dann wird mit dem Begriff uniq und der Option -c (für count) die Häufigkeit jedes Zeileninhalts dieser Datei gezählt, und das Ergebnis wird noch mal sortiert, hier mit der Option -r für reverse, wir wollen die häufigsten Zeileninhalte zuerst sehen. Mit dem Befehl less wird dafür gesorgt, dass das Ergebnis nicht einfach nur ausgegeben wird, sondern Seite für Seite angeschaut werden kann. Soll das Ergebnis nicht auf dem Bildschirm ausgegeben werden, sondern in eine Datei, so wird die Ausgabe einfach umgelenkt, zum Beispiel

sort keywords.txt | uniq -c | sort -r > keywords.uniq.txt

Noch ein Tipp: Die Shell ist ein sehr zeitsparendes Tool, wenn man sich daran gewöhnt, nicht alles auszuschreiben, sondern die Tab-Taste (links auf der Tastatur mit dem Symbol ->| ) zu verwenden, um einen Befehl zu vervollständigen. Beispiel: Ich befinde mich in meinem Home-Verzeichnis (/Users/tomalby) und will in das Unterverzeichnis Desktop. Dann gebe ich einfach cd De ein und drücke die Tab-Taste, so dass der Befehl auf cd Desktop/ vervollständigt wird.

Filed under: Data Science

Data Science & Data Analysis

This is the (d)english version, pure language versions will follow soon. Work in Progress!

This is a growing collection of data science, data analysis and web analytics information and resources for my course at the HAW. Some parts of the script will be published here. Please find the EMIL room for the summer term 2017 here.

What is Data Science?

There is no official definition of Data Science (similar to “Big Data”); we will regard data science as the combination of different disciplines such as data mining, statistics and machine learning in order to derive information from data automatically. Whilst many of the approaches used in these fields have existed for a long time already, more and more free programming libraries and cheap computing time and storage space from AWS have been enabling more people to use the power of coping with huge amounts or complex data.

Data Analytics or Data Analysis can be regarded as a subset of Data Science, setting the focus on the analysis of data. Being very similar to statistics, the term “data analysis” is sometimes regarded as old wine in new bottles. The existence of huge and complex data, often termed as “big data”, is not required for data analysis. Most often, quality is more restricting than quantity. In fact, there is no official definition of “big data”, and just because it is “a lot of data”, it should still not be called “Big” data. Some people even say, there is no thing such as big data.

Web Analytics is a subset of data analysis, however, using also other data that do not come from a website alone. Often enough, other marketing data is connected, requiring additional knowledge about the increasing complexity of marketing technology. Without such expertise, the analysis and interpretation of such data is difficult if not impossible. And while the focus here has been on data mining and some basic statistics, we see more and more machine learning entering this space.

What we will cover

Filed under: Data Science

Mehr als einen Kern unter Mac OS X nutzen

Heutige Prozessoren haben meist mehr als einen Kern, aber die meisten Programme nutzen nur einen. Oft ist es egal, der Rechner ist auch so schnell genug. Aber dann kommt man manchmal in Bereiche, wo man sich ärgert, dass man nur einen Kern nutzen kann. Vor allem bei den UNIX-Befehlen, die als GNU-Version zum Teil mehrere Kerne ausnutzen können, langweilt sich ein Teil meiner Mac-CPU während der andere zu 100 Prozent ausgelastet ist. In meinem Beispiel geht es um eine Text-Datei mit 8.6 GigaByte (nicht MegaByte :-), die ich sortieren und verarbeiten muss. Was wäre, wenn man mehr als einen Kern nutzen könnte?Continue reading

Filed under: Data ScienceTagged with: , ,

5 Gründe, warum Du Google Trends falsch verstehst

Im September 2015 stand ich für Google auf einer großen Bühne in Berlin und zeigte neben der Sprachsuche auch die Vorteile der neuen Features von Google Trends. Für einen Daten-Liebhaber wie mich ist Google Trends ein faszinierendes Werkzeug, wenn man alle Stolperfallen versteht und zu vermeiden weiß. Gleichzeitig bietet das Werkzeug viel Potential für Missverständnisse 🙂 Suchanfragen werden in <> Klammern gesetzt.Continue reading

Filed under: Data ScienceTagged with: ,

Google-Analytics-Daten in R einlesen

Manchmal kann man nicht mit Packages wie googleAnalyticsR arbeiten oder bekommt die Daten anders zur Verfügung gestellt 🙁 Datenformat aus Analytics exportiert sieht so aus:

11.01.13,"1,79"
12.01.13,"1,81"
13.01.13,"1,86"
14.01.13,"1,83"
15.01.13,"1,79"

R kann nichts mit dem Datumsformat anfangen, da R gerne das POSIX-Datumsformat hätte (Jahr-Monat-Tag).

> analytics &lt;- read.table(file="analytics.csv", sep=",", dec=",", quote = "\"")
> analytics$V1 &lt;- strptime(analytics$V1,format="%d.%m.%y")
> summary(analytics)
V1 V2
Min. :2013-01-11 00:00:00 Min. :1.000
1st Qu.:2013-12-19 06:00:00 1st Qu.:1.550
Median :2014-11-26 12:00:00 Median :1.630
Mean :2014-11-26 11:23:44 Mean :1.632
3rd Qu.:2015-11-03 18:00:00 3rd Qu.:1.710
Max. :2016-10-11 00:00:00 Max. :2.520
>

In letzter Zeit habe ich mir angewöhnt, read.table anstatt read.csv oder read.csv2 zu nutzen, denn ich kann mir den Unterschied zwischen den beiden eh nicht merken und welche Parameter darin true sind oder nicht, und sie sind nur vorformatierte Variationen von read.table.

So kann es passieren, dass man unhübsche Daten bekommt, an denen summary() kapituliert:

V1 V2
65.65796: 3 124.7975: 4
67.34629: 3 121.1097: 3
67.94061: 3 123.5503: 3
67.97769: 3 124.0167: 3
68.30287: 3 126.2769: 3
68.93456: 3 126.7902: 3
(Other) :21062 (Other) :21061

In diesem Fall liegt es einfach daran, dass der Header nicht mit eingelesen wurde. Ganz anders mit der Angabe:

> size
[/code]
[code]
> summary(size)
Height Weight
Min. :60.28 Min. : 78.57
1st Qu.:66.70 1st Qu.:119.31
Median :67.99 Median :127.20
Mean :67.99 Mean :127.09
3rd Qu.:69.27 3rd Qu.:134.88
Max. :75.15 Max. :170.92
>

Filed under: Data ScienceTagged with: ,

10 Google Analytics Basics (auch für andere Web Analyse-Tools)

Google Analytics hatte letztes Jahr seinen 10. Geburtstag, und in den letzten mehr als 10 Jahren durfte ich einiges an Erfahrung sammeln, was man beim Einsatz von Web Analytics-Systemen beachten muss. Hier sind meine 10 Basic-Tipps, angefangen mit den absoluten Basics, den Abschluss bilden dann die Basics für diejenigen, die auch wirklich was mit ihren Daten anfangen wollen 🙂Continue reading

Filed under: Data ScienceTagged with: ,

Scalable Capital und der Brexit

Anderthalb Monate sind entweder eine sehr lange oder eine sehr kurze Zeit für Anleger, ganz abhängig davon, ob sie jeden Tag traden oder ab und zu mal kaufen und sich dann 10 Jahre schlafen legen. Und wie gut die Algos von Scalable Capital funktionieren, das werden wir erst nach einer längeren Phase der Auf und Abs wissen. Aber der gewählte Brexit mit seinen Kurseinbrüchen ist ein guter Anlass einmal zu schauen, wie der RoboAdvisor damit klar gekommen ist.Continue reading

Filed under: Data ScienceTagged with:

Warum Social Search nicht funktioniert

Während Lycos iq-Mitkonzeper Oliver Wagner das Ausbleiben der Social Search-Revolution als Versäumnis sieht (damit aber nicht die reinen Social Search-Ansätze meint) und Robert Basic sogar die Social Bookmark-Dienste als Social Search Engines ansieht, ist eine allein auf Nutzerbewertungen basierende Social Search aufgrund seines Konzepts von vornherein für diejenigen gescheitert, die bereits tiefer in die Komplexität eines Suchalgorithmus geschaut haben.Continue reading

Filed under: Data ScienceTagged with: , ,