View
831
Download
6
Category
Tags:
Preview:
DESCRIPTION
Citation preview
Einführung in Data Science
Joerg Blumtritt@jbenno
@datarella
1
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
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
Quanti fication
VolumeVelocityVariety
DataScience
Big Data
Michele Banko und Eric Brill 2001: http://acl.ldc.upenn.edu/P/P01/P01-1005.pdf
Data Science
6
7
http://www.lehmanns.de/shop/mathematik-informatik/27078173-9781449361327-data-science-for-business
Data Science
http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram
Data Scientists?
http://www.forbes.com/sites/danwoods/2012/03/08/hilary-mason-what-is-a-data-scientist/
Data Science 1011. Daten erzeugen Sammeln2. Daten ablegen / abrufen (=wiederfinden)3. Daten bereinigen4. Daten analysieren5. Daten visualisieren
10
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
1. Daten erzeugen / Sammeln• Parsing: APIs
• Autentifizierung (Token)• JSON
• Crawling• HTTrack Website Copier• Simple Web Crawler in Python
• Scraping
12
API, Authentifizierung, Token
https://api.foursquare.com/v2/users/jbenno/checkins?beforeTimestamp=1338875927&oauth_token=F2THPP1YHUY4YVZLJ0ORKX3TCEAM0OCKS3WEFWYBIJBCGRHB&v=20130719
13
API, Authentifizierung, Token
https://api.foursquare.com/v2/users/jbenno/checkins?beforeTimestamp=1338875927&oauth_token=F2THPP1YHUY4YVZLJ0ORKX3TCEAM0OCKS3WEFWYBIJBCGRHB&v=20130719
14
15Quelle: https://dev.twitter.com/apps
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
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": [
Crawling• HTTrack Website Copier etc.• Simple Web Crawler in Python
18
Scraping• Daten sammeln, die bereits optisch aufbereitet wurden
und keine "Datenstruktur" mehr besitzen:
• Tabellen, Charts• pdf• Websites
19
Corpus• unbearbeitete Datengrundlage, häufig in Textformat:
• eine Webpage• Wikipedia• Sammlung von Tweets zu einem bestimmten Thema,• Wahlprogramme der Parteien• Google ngram Corpus
20
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
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
Datenlieferanten
23
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
2. Daten ablegen / abrufen• Unstrukturierte Datenablage• Konsistenzfunktion• Immutability• Document/Graph/Key-Value Store• Hash-Table, Bitmap-Index• Lambda-Architektur
25
Unstrukturierte Datenablage• Datensätze werden als Text-Dateien direkt gespeichert
26
2. Daten ablegen / abrufen• Exkurs:
• Virtuelle Maschine• Hadoop• Amazon S3/E2, Google BigQuery
27
Virtuelle Maschinen
28 https://www.virtualbox.org/
29
30
31
32
Cloudservices
• Amazon• S3, EC2
• Google• Storage, BigQuery
33
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
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"
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
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
Lambda-Architektur
38
Query
Precomputed View(Batch Mode)
Data Stream
All Data
Precomputed realtime view
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
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
4. Daten analysieren• Agile Statistics• Statistische Verfahren• Machine Learning• Textanalyse• Geodaten• Netzwerkanalyse
41
Agile Statistics• a/b-Test• Pivoting:
• Evolutionäre Algorithmen, Jittering, Simulated Annealing
• "Mechanical Turk"
42
Statistische Verfahren• (kaum Testverfahren, hauptsächlich Vorhersagen)• Robuste Schätzer• Fouriertransformation, Wavelets• ARIMA
43
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
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
Textanalyse• Vorbereitung des Corpus• N-Gramme• Wortabstände• Textvergleiche: Cosinus-Vektor-Ähnlichkeit
46
Textmining in R: z.B. das Paket "TM"
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
Netzwerkanalyse
48
49
50
51
5. Daten visualisieren
52
D3
53
54
STREETFIGHTING DATA SCIENCE
55
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
Tools finden
57
http://github.com
N-Gramme
Google Ngram Viewer http://books.google.com/ngrams + DB http://books.google.com/ngrams/datasets
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
N-Gramme + WordNet• Emotionen im Zeitverlauf
Acerbi et al 2013 http://www.plosone.org/article/info:doi/10.1371/journal.pone.0059030
Food Pairings
Ahn et al 2011 http://www.nature.com/srep/2011/111215/srep00196/full/srep00196.html
Food Pairings
Ahn et al 2011 http://www.nature.com/srep/2011/111215/srep00196/full/srep00196.html
Food Pairings
Ahn et al 2011 http://www.nature.com/srep/2011/111215/srep00196/full/srep00196.html
Google Correlate
Google Correlate www.google.com/trends/correlate
Funnel Plots
http://www.cochrane-net.org/openlearning/html/mod15-3.htm
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/
NodeXL – Netzwerk-Analyse
NodeXL http://nodexl.codeplex.com/
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
OpenPaths
69
http://openpaths.cc
Weather Signal
70
funf.org
71
Verhalten analysieren:• Targeting-Daten > Verhaltensbeobachtung im Web• Moblie Tracking > Verhaltensbeobachtung im
"Meatspace"• Situatives Einfragen• Interaktion
72
QUANTIFY & ASK = EXPLORE APP
73
Start Screen Diary Heat Map
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
Joerg Blumtritt
@jbenno
Datarella GmbH
Oskar-von-Miller-Ring 36
80333 München
089/44 23 69 99
info@datarella.com
Recommended