75
Einführung in Data Science Joerg Blumtritt @jbenno @datarella 1

Einfuhrung datascience

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Einfuhrung datascience

Einführung in Data Science

Joerg Blumtritt@jbenno

@datarella

1

Page 2: Einfuhrung datascience

Ziel• ... einen Überblick über das Berufsfeld "Data Science" zu

geben,• ... in die Lage versetzen, sich selbst weiter zu

informieren,• ... weitere Fortbildungen gezielt auszuwählen,• ... zu erkennen, wo sich Potenziale bei Kunden ergeben,

die dann mit interner bzw. externer Unterstützung in Angebote übersetzt werden können.

2

Page 3: Einfuhrung datascience

Agenda1) Einführung in das Thema

• Neue Paradigmen / Abgrenzung zu Statistik, Marktforschung und Business Intellgence

• Data Science 101: 1. Daten erzeugen Sammeln2. Daten ablegen / abrufen (=wiederfinden)3. Daten bereinigen4. Daten analysieren5. Daten visualisieren

3

Page 4: Einfuhrung datascience

Quanti fication

VolumeVelocityVariety

DataScience

Big Data

Page 5: Einfuhrung datascience

Michele Banko und Eric Brill 2001: http://acl.ldc.upenn.edu/P/P01/P01-1005.pdf

Page 6: Einfuhrung datascience

Data Science

6

Page 7: Einfuhrung datascience

7

http://www.lehmanns.de/shop/mathematik-informatik/27078173-9781449361327-data-science-for-business

Page 8: Einfuhrung datascience

Data Science

http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram

Page 9: Einfuhrung datascience

Data Scientists?

http://www.forbes.com/sites/danwoods/2012/03/08/hilary-mason-what-is-a-data-scientist/

Page 10: Einfuhrung datascience

Data Science 1011. Daten erzeugen Sammeln2. Daten ablegen / abrufen (=wiederfinden)3. Daten bereinigen4. Daten analysieren5. Daten visualisieren

10

Page 11: Einfuhrung datascience

1. Daten erzeugen / Sammeln

Marktforschung Data Science

Daten erzeugen/sammeln Feld, Methode Parsing, Crawling,

Scraping

Datenquelle Tabellen, Feldberichte API, Corpus, "Heap", "Stream"

Datenbeschreibung Codebuch Specs, N.N.

Dienstleister Feldinstitut Data Broker

11

Page 12: Einfuhrung datascience

1. Daten erzeugen / Sammeln• Parsing: APIs

• Autentifizierung (Token)• JSON

• Crawling• HTTrack Website Copier• Simple Web Crawler in Python

• Scraping

12

Page 13: Einfuhrung datascience

API, Authentifizierung, Token

https://api.foursquare.com/v2/users/jbenno/checkins?beforeTimestamp=1338875927&oauth_token=F2THPP1YHUY4YVZLJ0ORKX3TCEAM0OCKS3WEFWYBIJBCGRHB&v=20130719

13

Page 14: Einfuhrung datascience

API, Authentifizierung, Token

https://api.foursquare.com/v2/users/jbenno/checkins?beforeTimestamp=1338875927&oauth_token=F2THPP1YHUY4YVZLJ0ORKX3TCEAM0OCKS3WEFWYBIJBCGRHB&v=20130719

14

Page 15: Einfuhrung datascience

15Quelle: https://dev.twitter.com/apps

Page 16: Einfuhrung datascience

16

{"meta":{"code":200},"notifications":[{"type":"notificationTray","item":{"unreadCount":9}}],"response":{"checkins":{"count":914,"items":[{"id":"51e51fb0498e5dc08f90263f","createdAt":1373970352,"type":"checkin","timeZoneOffset":120,"venue":{"id":"4b977703f964a520da0435e3","name":"Bonn Hauptbahnhof","contact":{"twitter":"db_bahn"},"location":{"address":"Am Hauptbahnhof 1","lat":50.73212621273225,"lng":7.096948027610779,"postalCode":"53111","city":"Bonn","country":"Germany","cc":"DE"},"canonicalUrl":"https:\/\/foursquare.com\/v\/bonn-hauptbahnhof\/4b977703f964a520da0435e3","categories":[{"id":"4bf58dd8d48988d129951735","name":"Bahnhof","pluralName":"Bahnhöfe","shortName":"Bahnhof","icon":{"prefix":"https:\/\/foursquare.com\/img\/categories_v2\/travel\/trainstation_","suffix":".png"},"primary":true}],"verified":true,"stats":{"checkinsCount":15804,"usersCount":3101,"tipCount":33},"likes":{"count":16,"groups":[{"type":"others","count":16,"items":[]}],"summary":"16 Gefällt mir"},"like":false,"beenHere":{"count":4,"marked":false}},"likes":{"count":0,"groups":[]},"like":false,"photos":{"count":0,"items":[]},"posts":{"count":0,"textCount":0},"comments":{"count":0},"source":{"name":"foursquare for Android","url":"https:\/\/foursquare.com\/download\/#\/android"}},{"id":"51e4edcc498eaecbe717cb35","createdAt":1373957580,"type":"checkin","timeZoneOffset":120,"venue":{"id":"4b99688cf964a520507935e3","name":"mD-Hotel Aigner","contact":{"phone":"0228604060","formattedPhone":"0228 604060"},"location":{"address":"Dorotheenstr. 12","lat":50.739016,"lng":7.095067,"city":"53111 Bonn","state":"Nordrhein-Westfalen","country":"Germany","cc":"DE"},"canonicalUrl":"https:\/\/foursquare.com\/v\/mdhotel-aigner\/4b99688cf964a520507935e3","categories":[{"id":"4bf58dd8d48988d1fa931735","name":"Hotel","pluralName":"Hotels","shortName":"Hotel","icon":{"prefix":"https:\/\/foursquare.co

Page 17: Einfuhrung datascience

17

1 {2 "items": [3 {4 "id": "51e51fb0498e5dc08f90263f",5 "createdAt": 1373970352,6 "type": "checkin",7 "timeZoneOffset": 120,8 "venue": {9 "id": "4b977703f964a520da0435e3",10 "name": "Bonn Hauptbahnhof",11 "contact": {12 "twitter": "db_bahn"13 },14 "location": {15 "address": "Am Hauptbahnhof 1",16 "lat": 50.73212621273225,17 "lng": 7.096948027610779,18 "postalCode": "53111",19 "city": "Bonn",20 "country": "Germany",21 "cc": "DE"22 },23 "canonicalUrl": "https://foursquare.com/v/bonn-hauptbahnhof/4b977703f964a520da0435e3",24 "categories": [

Page 18: Einfuhrung datascience

Crawling• HTTrack Website Copier etc.• Simple Web Crawler in Python

18

Page 19: Einfuhrung datascience

Scraping• Daten sammeln, die bereits optisch aufbereitet wurden

und keine "Datenstruktur" mehr besitzen:

• Tabellen, Charts• pdf• Websites

19

Page 20: Einfuhrung datascience

Corpus• unbearbeitete Datengrundlage, häufig in Textformat:

• eine Webpage• Wikipedia• Sammlung von Tweets zu einem bestimmten Thema,• Wahlprogramme der Parteien• Google ngram Corpus

20

Page 21: Einfuhrung datascience

Stream• kontinuierlicher Datenfluss:

• Tweets• Stromverbrauchsmessung durch Smart Meters• Sensordaten aus dem Bordcomputer eines KfZ

• Verarbeitung muss in der Regel online erfolgen, d.h. eintreffende Daten werden sofort verarbeitet

21

Page 22: Einfuhrung datascience

Spezifikationen• Daten sind oft nur sehr grob beschrieben, häufig gibt es

überhaupt keine Dokumentation

• Mit Versionswechsel der API ändert sich in der Regel auch das Datenformat der neuen Datensätze, ohne dass die Bestandsdaten transformiert werden

• Datenformat, Toleranzen, Umgang mit fehlenden Werten etc. wird "durch Augenschein" erarbeitet

22

Page 23: Einfuhrung datascience

Datenlieferanten

23

Page 24: Einfuhrung datascience

2. Daten ablegen / abrufen

24

Marktforschung / Statistik Data Science

Format Tabellen, RDBMS Dokumente, Dateien

Konsistenz durch das Format Funktional

Struktur Fälle, Datensätze Netzwerke, Graphen

Datenhaltung lokal Cloud

Page 25: Einfuhrung datascience

2. Daten ablegen / abrufen• Unstrukturierte Datenablage• Konsistenzfunktion• Immutability• Document/Graph/Key-Value Store• Hash-Table, Bitmap-Index• Lambda-Architektur

25

Page 26: Einfuhrung datascience

Unstrukturierte Datenablage• Datensätze werden als Text-Dateien direkt gespeichert

26

Page 27: Einfuhrung datascience

2. Daten ablegen / abrufen• Exkurs:

• Virtuelle Maschine• Hadoop• Amazon S3/E2, Google BigQuery

27

Page 28: Einfuhrung datascience

Virtuelle Maschinen

28 https://www.virtualbox.org/

Page 29: Einfuhrung datascience

29

Page 30: Einfuhrung datascience

30

Page 31: Einfuhrung datascience

31

Page 32: Einfuhrung datascience

32

Page 33: Einfuhrung datascience

Cloudservices

• Amazon• S3, EC2

• Google• Storage, BigQuery

33

Page 34: Einfuhrung datascience

Konsistenzfunktion• Statt die Konsistenz der Daten schon in der Struktur

festzulegen, wird eine Funktion definiert, die jeden Record nach den vorgegebenen Kriterien überprüft:

function IsConsistent(Record, Schema) as Boolean

34

Page 35: Einfuhrung datascience

Operation SQL Create INSERT Read (Retrieve) SELECT Update (Modify) UPDATE Delete (Destroy) DELETE

"mutable"

Immutability

35

"Each event happens at a particular time and is always true"

• Just C+R; nothing gets ever "updated"

• Records are stored as files. Each record is a new file.

"immutable"

Page 36: Einfuhrung datascience

Document/Graph/Key-Value Store• Dokumente werden geeignet indiziert• Meta-Daten werden in speziellen Formaten mitgeliefert

(zB. MPEG7)• Wenn eine Key-Value-Struktur besteht, wird die Sturktur

der JSON- oder XML-Dokumente in eine Art Tabellenform gebracht (Keys ~ Spalten, Values ~ Zellwerte)

36

Page 37: Einfuhrung datascience

Hash-Table, Bitmap-Index• Hash-Table: aus den Werten wird über eine Hash-

Funktion ein Index berechnet, der auf den Datensatz verweist

• Bitmap-Index: Tabellenartige Struktur, bei der die Variablen (via Dummy-Variablen) in eine 0/1-Struktur gebracht werden

37

Page 38: Einfuhrung datascience

Lambda-Architektur

38

Query

Precomputed View(Batch Mode)

Data Stream

All Data

Precomputed realtime view

Page 39: Einfuhrung datascience

3. Daten bereinigen• "Data munging"• "Pervasive Data Gremlins":

• technisches Format: Endianness, Unicode-Table, OS-Version, Sonderzeichen und Steuerbefehle, etc.

• inhaltlich: Fehlende Werte, Zeitzonen, Sommerzeit, Feiertage, Lables, Firmen/Konzernbezeichnung, Vorwahlen, "Höhe über N.N.", etc.

• historisch: Formatwechsel ("Jahr 2000"), unterschiedliche Granularität, etc.

39

Page 40: Einfuhrung datascience

4. Daten analysieren

40

Marktforschung / Statistik Data Science

Tools SPSS und vergleichbare R, Python, div. Frameworks

Vorgehen Stichprobenziehung Totalerhebung oder nicht-repräsentativ

Mathematik Stochastik Algorithmen

Ergebnis abgeschlossen iterativ

Page 41: Einfuhrung datascience

4. Daten analysieren• Agile Statistics• Statistische Verfahren• Machine Learning• Textanalyse• Geodaten• Netzwerkanalyse

41

Page 42: Einfuhrung datascience

Agile Statistics• a/b-Test• Pivoting:

• Evolutionäre Algorithmen, Jittering, Simulated Annealing

• "Mechanical Turk"

42

Page 43: Einfuhrung datascience

Statistische Verfahren• (kaum Testverfahren, hauptsächlich Vorhersagen)• Robuste Schätzer• Fouriertransformation, Wavelets• ARIMA

43

Page 44: Einfuhrung datascience

Machine Learning• Supervised Learning (Entscheidungsalgorithmen)

• Regression

• Diskriminanzanalyse, Cluster mit vorgegebenen Zentroiden

• Backpropagation (MLP)

• Unsupervised (Dimensionsreduktion)

• Clusteranalyse, k-Nächste Nachbarn, k-Means, DBSCAN

• Hauptkomponentenanaylse, MDS

• Autoencoder

• Self Organizing Maps

44

Page 45: Einfuhrung datascience

Mahout

• Mahout currently has

• Collaborative Filtering

• User and Item based recommenders

• K-Means, Fuzzy K-Means clustering

• Mean Shift clustering

• Dirichlet process clustering

• Latent Dirichlet Allocation

• Singular value decomposition

• Parallel Frequent Pattern mining

• Complementary Naive Bayes classifier

• Random forest decision tree based classifier

• High performance java collections (previously colt collections)

45

Page 46: Einfuhrung datascience

Textanalyse• Vorbereitung des Corpus• N-Gramme• Wortabstände• Textvergleiche: Cosinus-Vektor-Ähnlichkeit

46

Textmining in R: z.B. das Paket "TM"

Page 47: Einfuhrung datascience

TextanalyseWort Limburg Stockdorf TaunussteinAar 1 2Aartalbahn 1Aartalhalle 1Abbild 1Abbildung 2aber 7 1 1Abgaben 1

abgegrenzten 1Abgeordnete 1

Abgeordneter 1abgerissen 3Abgerufen 3abgeschlossen 1abgetrennt 1Abitur 2Abschluss 1 1Abschnitt 2Abschnitten 1

Cos(Taunusstein, Stockdorf) 0,75Cos(Stockdorf, Limburg) 0,81Cos(Taunusstein, Limburg) 0,76

47

Page 48: Einfuhrung datascience

Netzwerkanalyse

48

Page 49: Einfuhrung datascience

49

Page 50: Einfuhrung datascience

50

Page 51: Einfuhrung datascience

51

Page 52: Einfuhrung datascience

5. Daten visualisieren

52

D3

Page 53: Einfuhrung datascience

53

Page 54: Einfuhrung datascience

54

Page 55: Einfuhrung datascience

STREETFIGHTING DATA SCIENCE

55

Page 56: Einfuhrung datascience

Street Fighting Data Science• Umnutzen vorhandener

Daten (Tweets -> Bewe-gungsgeschwindigkeit)

• Umwidmen von Methoden (BioTech ->Sozialwissenschaften)

• Agile Ad-hoc-Analysen• Improvisation

http://en.wikipedia.org/wiki/File:Fightingmanstones.jpg

Page 57: Einfuhrung datascience

Tools finden

57

http://github.com

Page 58: Einfuhrung datascience

N-Gramme

Google Ngram Viewer http://books.google.com/ngrams + DB http://books.google.com/ngrams/datasets

Page 59: Einfuhrung datascience

WordNet• WordNet:

semantische und lexikalischeBedeutung vonWörtern

• Daraus z.B.Wörter mitStimmungenidentifizierbar(WN Affect)

WordNet http://wordnet.princeton.edu/ WordNet Affect http://wndomains.fbk.eu/wnaffect.html

Page 60: Einfuhrung datascience

N-Gramme + WordNet• Emotionen im Zeitverlauf

Acerbi et al 2013 http://www.plosone.org/article/info:doi/10.1371/journal.pone.0059030

Page 61: Einfuhrung datascience

Food Pairings

Ahn et al 2011 http://www.nature.com/srep/2011/111215/srep00196/full/srep00196.html

Page 62: Einfuhrung datascience

Food Pairings

Ahn et al 2011 http://www.nature.com/srep/2011/111215/srep00196/full/srep00196.html

Page 63: Einfuhrung datascience

Food Pairings

Ahn et al 2011 http://www.nature.com/srep/2011/111215/srep00196/full/srep00196.html

Page 64: Einfuhrung datascience

Google Correlate

Google Correlate www.google.com/trends/correlate

Page 65: Einfuhrung datascience

Funnel Plots

http://www.cochrane-net.org/openlearning/html/mod15-3.htm

Page 66: Einfuhrung datascience

Twitter Tags

Item Valueid_str 356092702800105000 from_user winedanddinedtext Picking up an orange wine (Arboreus) (@ Italian Wine Merchants) [pic]:

http://t.co/u0xcPXTTSPcreated_at Sat Jul 13 16:48:10 +0000 2013time 13/07/2013 17:48:10geo_coordinates loc: 40.73580099,-73.98906051user_lang enin_reply_to_user_id_strin_reply_to_screen_namfrom_user_id_str 18657048in_reply_to_status_id_stsource <a href="http://foursquare.com" rel="nofollow">foursquare</a>profile_image_url http://a0.twimg.com/profile_images/716129754/jump_normal.jpguser_followers_count 6925user_friends_count 2754user_utc_offset -18000status_url http://twitter.com/winedanddined/statuses/356092702800105472entities_str {"symbols":[],"urls":[{"expanded_url":"http://4sq.com/15qYMPc","indices

66

http://mashe.hawksey.info/2013/02/twitter-archive-tagsv5/

Page 67: Einfuhrung datascience

NodeXL – Netzwerk-Analyse

NodeXL http://nodexl.codeplex.com/

Page 68: Einfuhrung datascience

Flickr für Touristen

Eric Fischer „See something or say something“http://www.flickr.com/photos/walkingsf/5935471000/in/set-72157627140310742 and „Locals and Tourists“http://www.flickr.com/photos/walkingsf/4671578001/in/set-72157624209158632

Page 69: Einfuhrung datascience

OpenPaths

69

http://openpaths.cc

Page 70: Einfuhrung datascience

Weather Signal

70

Page 71: Einfuhrung datascience

funf.org

71

Page 72: Einfuhrung datascience

Verhalten analysieren:• Targeting-Daten > Verhaltensbeobachtung im Web• Moblie Tracking > Verhaltensbeobachtung im

"Meatspace"• Situatives Einfragen• Interaktion

72

Page 73: Einfuhrung datascience

QUANTIFY & ASK = EXPLORE APP

73

Start Screen Diary Heat Map

Page 74: Einfuhrung datascience

Noch ein paar Links:http://twitter.com/jbenno/bigdatahttp://strataconf.com/http://www.r-bloggers.com/http://oreilly.com/http://iognos.com/blog-3/

74

Page 75: Einfuhrung datascience

Joerg Blumtritt

@jbenno

Datarella GmbH

Oskar-von-Miller-Ring 36

80333 München

089/44 23 69 99

[email protected]