class: center, middle, inverse, title-slide # OBRADA PODATAKA ## Predavanje 3: Izvori podataka ### Luka Sikic, PhD ### Fakultet hrvatskih studija |
OP
--- layout: true class: middle # PREGLED PREDAVANJA --- <br> <br> <br> - Kategorije izvora podatka - Klasični izvori podataka - Moderni izvori podataka (BigData) - Web - Društvene mreže - Web stranice i aplikacije - Senzori - Upravljanje modernim podatcima .footnote[[*]Korištenje R za dohvat (modernih) izvora podataka] --- class: inverse, middle layout: false # Kategorije izvora podataka <br> <br> <br> 1. Primarni <br> <br> 2. Sekundarni <br> <br> 3. Tercijarni --- layout: true # Kategorije izvora podataka --- <br> <br> <br> ### Primarni * Prikupljeni od strane istraživača * Zahtjevni * Promatranje, eksperimenti, upitnici, intervju * Skupi * Specifični * Pouzdani --- <br> <br> <br> ### Sekundarni * Otprije prikupljeni * Podatci iz prošlosti * Jednostavnost * Publikacije, knjige, časopisi, zapisi * Ekonomični * Obrađeni i prilagođeni * Manje pouzdani --- <br> <br> <br> ### Tercijarni * Kombinacija primarnih i sekundarnih * Nisu osnova za akademska istraživanja * Često anonimni * Riječnici, pregledi literature, izvještaji, tutoriali, vodiči --- class: inverse, middle layout: false # Klasični izvori podataka <br> <br> <br> 1. Eksperiment <br> <br> 2. Ispitivanje <br> <br> 3. Intervju <br> <br> 4. Strukturirane baze podataka <br> <br> --- layout: true # Klasični izvori podataka --- <br> <br> <br> ### Eksperiment * Visok stupanj kontrole * Planirani dizajn * Longitudinalni i studije slučaja * Problem generalizacije rezulatata --- <br> <br> <br> ### Ispitivanje * Ciljana populacija * Veći uzorak * Pogodno za analizu ponašanja,osjećaja,iskustava,stavova * Problem reprezentativnosti uzorka * Potreban prilagođeni dizajn --- <br> <br> <br> ### Intervju * Profilirani uzorak * Manji uzorak * Pogodno za dubinsku analizu * Ovisan o istraživaču * Poteškoće sa reproduciranjem rezultata --- <br> <br> <br> ### Strukturirane baze podataka * Omogućuje kvanitativnu analizu * Makro i mezzo razina analize * Potrebno prilagoditi podatke prije modeliranja * Institucionalni i uređeni podatci * Strojno preuzimanje podataka --- class: inverse, middle layout: false # Moderni izvori podataka (BigData) <br> <br> <br> 1. Web <br> <br> 2. Društvene mreže <br> <br> 3. Web stranice i aplikacije <br> <br> 4. Senzorni uređaji --- layout:true # Moderni izvori podataka (BigData) --- <br> <br> <br> **Karakteristike**: 1. Veliki 2. Brzi 3. Raznoliki 4. Vrijedni 5. Zakonski regulirani * Internet, pametni uređaji, pametni senzori * Nova podatkovna paradigma --- <br> <br> <br> ### NOVA ISTRAŽIVAČKA PARADIGMA * Analiza počinje od podataka (ne od teorije) * Potrebne tehničke vještine * Složena i memorijski zahtjevna analitika * Noviteti u prezentaciji i komunikaciji rezultata * Poslovne primjene prednjače * Primjena u društvenim istraživanjima je u povojima * Potrebno definirati novu arhitekturu (ekosistem) .footnote[[*] [Khunova revolucija!?](https://journals.sagepub.com/doi/10.1177/2053951714528481)] --- class: inverse, middle layout:false # Web KAO IZVOR PODATAKA --- layout:true # Web KAO IZVOR PODATAKA --- <br> <br> <br> <br> <br> **Ciljevi analiza društvenog ponašanja:** 1. Objašnjenje <br> <br> 2. Modeliranje <br> <br> 3. 'Nowcasting' <br> <br> 4. Predviđanje --- ### Google **Google trends:** 1. [Analiza prodaje kuća](https://rpubs.com/tonytusharjr/newhomes) <br> <br> 2. [Potražnja za autombilima](https://aisel.aisnet.org/icis2017/DataScience/Presentations/1/) <br> <br> 3. [Turistička potražnja](https://www.researchgate.net/publication/336516335_Forecasting_international_tourism_demand_in_Croatia_using_Google_Trends) <br> <br> 4. [Nezaposlenost](https://www.sciencedirect.com/science/article/abs/pii/S1544612319301072) <br> <br> 5. [Kretanja na dioničkim tržištima](https://www.emerald.com/insight/content/doi/10.1108/JED-07-2019-0017/full/pdf?title=stock-market-activity-and-google-trends-the-case-of-a-developing-economy) <br> <br> 6. [Kupnje kino ulazinica](https://www.tandfonline.com/doi/abs/10.1080/13504851.2011.613744) <br> <br> 7. [Politički radikalizam u Kini](https://martinctc.github.io/blog/vignette-google-trends-with-gtrendsr/) <br> <br> 8. [Političkih stavova](https://journals.sagepub.com/doi/full/10.1177/2378023118760414) --- ### Google trends (praktični primjer u R) ```r # paketi library (gtrendsR) library(ggplot2) #ključne riječi keywords=c("virus","korupcija","ekonomija") #GEO country=c('HR') #vremenski raspon time=("2010-01-01 2018-08-27") #kanali channel='web' # funkcija trends = gtrends(keywords, gprop =channel,geo=country, time = time ) #samo 'interes kroz vrijeme' time_trend=trends$interest_over_time ``` --- ### Google trends (praktični primjer u R) ```r # pregledaj podatke head(time_trend,5) ``` ``` #> date hits keyword geo time gprop category #> 1 2010-01-01 59 virus HR 2010-01-01 2018-08-27 web 0 #> 2 2010-02-01 60 virus HR 2010-01-01 2018-08-27 web 0 #> 3 2010-03-01 59 virus HR 2010-01-01 2018-08-27 web 0 #> 4 2010-04-01 46 virus HR 2010-01-01 2018-08-27 web 0 #> 5 2010-05-01 40 virus HR 2010-01-01 2018-08-27 web 0 ``` --- ### Google trends (praktični primjer u R) ```r # Vizualizacija plot <- ggplot(data = time_trend, aes(x = date, y = hits, group = keyword, col = keyword)) + geom_line() + xlab('Vrijeme') + ylab('Relativni interes') + theme_bw() + theme(legend.title = element_blank(), legend.position = "bottom", legend.text = element_text (size = 12)) + ggtitle("Google volumen pretrage") ``` --- ### Google trends (praktični primjer u R) ```r # prikaži plot ``` <img src="03_IZVORIdtaXAR_files/figure-html/unnamed-chunk-5-1.svg" style="display: block; margin: auto;" /> --- ### Google trends (praktični primjer u R) ```r # sve u jednom redu koda :-) plot(gtrendsR::gtrends(keyword = c("virus","korupcija","ekonomija"), geo = "HR", time = "2010-01-01 2018-08-27")) ``` <img src="03_IZVORIdtaXAR_files/figure-html/unnamed-chunk-6-1.svg" style="display: block; margin: auto;" /> --- <br> <br> ### Twitter * Najpoznatiji mikroblogging servis <br> <br> * Brojni radovi i analize <br> <br> * [Popularan u kvantitativnoj politologiji](http://pablobarbera.com/static/social-media-data-generators.pdf) <br> <br> * [Predviđanje političkih ishoda](https://core.ac.uk/reader/11310530) <br> <br> * [Predviđanje dioničkih trendova](http://cs229.stanford.edu/proj2011/GoelMittal-StockMarketPredictionUsingTwitterSentimentAnalysis.pdf) <br> <br> * [Praćenje javnog mijenja](https://openknowledge.worldbank.org/bitstream/handle/10986/22656/The0pulse0of0p0eform0in0El0Salvador.pdf?sequence=1&isAllowed=y) <br> <br> .footnote[[*] [Podrška za analizu u R](https://towardsdatascience.com/a-guide-to-mining-and-analysing-tweets-with-r-2f56818fdd16)] --- ### Twitter (praktični primjer u R) ```r library (rtweet) # paket # stvori token twitter_token <- create_token( app = app, consumer_key = key, consumer_secret = kSecret, access_token = tkn, access_secret = tSecret) ``` ```r # objavi iz R post_tweet("Look, i'm tweeting from R!") ``` ```r # prikupi rezultate tweets <- search_tweets(q = c("#Hrvatska"), n = 200) # geolokacija ``` --- ### Twitter (praktični primjer u R) ```r # pregledj podatke head(tweets[,2:5], n = 2) ``` ``` #> # A tibble: 2 x 4 #> status_id created_at screen_name text #> <chr> <dttm> <chr> <chr> #> 1 132178075608~ 2020-10-29 11:47:44 zarkobns "#BiH 1.903 i 21 mrtav #sloveni~ #> 2 132141300606~ 2020-10-28 11:26:25 zarkobns "#hrvatska 2.378 i 23 mrtvih #s~ ``` --- ### Twitter (praktični primjer u R) ```r # pregledaj korisnike users <- search_users("#Hrvatska", n = 100) length(unique(users$location)) # provjeri ``` ``` #> [1] 35 ``` ```r library(tidyverse) # paket library(ggplot2) # paket # vizualiziraj plotTW <- users %>% slice(1:8) %>% ggplot(aes(location)) + geom_bar() + coord_flip() + labs(x = "Lokacija", y = "Broj", title = "Twitter korisnici - jedinstvene lokacije") + theme(legend.title = element_blank(), legend.position = "bottom", legend.text = element_text (size = 5)) ``` --- ### Twitter (praktični primjer u R) ```r # prikaži grafikon plotTW ``` <img src="03_IZVORIdtaXAR_files/figure-html/unnamed-chunk-13-1.svg" style="display: block; margin: auto;" /> --- ### Twitter (praktični primjer u R) ```r hashtag_pat <- "#[a-zA-Z0-9_-ー\\.]+" # regex za tweet-ove hashtag <- str_extract_all(tweets$text, hashtag_pat) # izvuci tweetove # uredi podatke hashtag_word <- unlist(hashtag) hashtag_word <- tolower(hashtag_word) # mala slova hashtag_word <- gsub("[[:punct:]ー]", "", hashtag_word) # makni inerpunkciju hashtag_count <- table(hashtag_word) # tabulliraj top_20_freqs <- sort(hashtag_count, decreasing = TRUE)[1:20] # sortiraj top_20_hashtags <- as.character(as.data.frame(top_20_freqs)[,1]) # napravi stringove ``` --- ### Twitter (praktični primjer u R) ```r # prikaži rezultate top_20_freqs ``` ``` #> hashtag_word #> hrvatska vijesti croatian croatia business marketing racunalo #> 200 97 75 43 12 12 12 #> smartphone technology zagreb split a1 covid19 istra #> 12 12 12 10 8 8 8 #> a1down a1hrvatska a1outage evenings outage pitomača #> 7 7 7 7 7 7 ``` --- ### Twitter (praktični primjer u R) ```r # vizualizacija library(wordcloud) # paket wordcloud(top_20_hashtags, top_20_freqs, scale=c(3.5,1.5), # oblak riječi random.order=FALSE, rot.per=.25) ``` <img src="03_IZVORIdtaXAR_files/figure-html/unnamed-chunk-16-1.svg" style="display: block; margin: auto;" /> --- class: inverse, middle layout:false # DRUŠTVENE MREŽE KAO IZVOR PODATAKA --- layout:true # DRUŠTVENE MREŽE KAO IZVOR PODATAKA --- <br> <br> **Popularne društvene mreže** <br> <br> 1. [Facebook](https://www.kaggle.com/chrisbow/an-introduction-to-facebook-ad-analysis-using-r) [(Vidi takodjer!)](https://www.residualthoughts.com/2018/02/12/analyzing-facebook-messages-in-r/) <br> 2. [LinkedIn](https://github.com/mpiccirilli/Rlinkedin) <br> 3. [Youtube](https://rpubs.com/arafath/YouTubeVideos_Analysis) <br> 4. [Instagram](https://github.com/JonasSchroeder/InstaCrawlR) <br> 5. Google+ <br> 6. Tumblr <br> 7. Flickr .footnote[[*] [Knjiga!](http://www.pzs.dstu.dp.ua/DataMining/social/bibl/Social%20Media%20Mining%20with%20R.pdf)] --- class: inverse, middle layout:false # WEB STRANICE I APLIKACIJE --- layout:true # WEB STRANICE I APLIKACIJE --- <br> <br> <br> **Prikupljanje podataka** 1. [Web-Scraping](https://www.datacamp.com/community/tutorials/r-web-scraping-rvest) <br> <br> 2. Analiza trgovačkih platformi (Amazon) --- ### Web scraping (praktični mikro primjer u R) ```r library(rvest) # paket url <- "https://www.dzs.hr/Hrv/censuses/census2011/results/htm/H01_06_01/H01_06_01.html" # www # preuzmi tablicu sa www citySize <- url %>% xml2::read_html() %>% html_nodes('table') %>% html_table() # izvadi korisne djelove cSize <- as_tibble(citySize[[2]], .name_repair = ~ c("Grad","Stanovnici","opcina","stan2")) # prilagodi podatke cSize <- cSize %>% select(Grad,Stanovnici) %>% mutate(Stanovnici = as.numeric(Stanovnici)) %>% mutate(Grad = toupper(Grad)) %>% arrange(desc(Stanovnici)) ``` --- ### Web scraping (praktični mikro primjer u R) ```r # pregledaj podatke head(cSize, 10) ``` ``` #> # A tibble: 10 x 2 #> Grad Stanovnici #> <chr> <dbl> #> 1 ZAGREB 790. #> 2 SPLIT 178. #> 3 RIJEKA 129. #> 4 OSIJEK 108. #> 5 ZADAR 75.1 #> 6 VELIKA GORICA 63.5 #> 7 SLAVONSKI BROD 59.1 #> 8 PULA - POLA 57.5 #> 9 KARLOVAC 55.7 #> 10 SISAK 47.8 ``` --- ### Web scraping (praktični mikro primjer u R) ```r # vizualizacija plot <- ggplot(data = cSize[1:10,], aes(x = Grad, y = Stanovnici)) + geom_bar(stat = "identity") + xlab('Grad') + ylab('Broj stanovnika') + theme_bw() + theme(legend.title = element_blank(), legend.position = "bottom", legend.text = element_text (size = 9), axis.text.x=element_text(angle=45,hjust=1)) + ggtitle("Hrvatski gradovi po veličini") ``` --- ### Web scraping (praktični mikro primjer u R) ```r # pregled grafikona plot ``` <img src="03_IZVORIdtaXAR_files/figure-html/unnamed-chunk-20-1.svg" style="display: block; margin: auto;" /> --- class: inverse, middle layout:false # APLIKACIJE I SENZORNI UREĐAJI --- layout:true # APLIKACIJE I SENZORNI UREĐAJI --- **Prikupljanje podataka** <br> <br> <br> <br> 1. Mobilni senzori (broj putnika u javnom prijevozu) <br> <br> 2. GPS (dostava, epidemiologija) <br> <br> 3. Kartične transakcije (predviđanje bankrota, marketing, ponašanje potrošača) .footnote[[*] Pravno osjetljivi podatci!] --- class: inverse, middle layout:false # UPRAVLJANJE MODERNIM PODATCIMA --- layout:true # UPRAVLJANJE MODERNIM PODATCIMA --- <br> <br> <br> .pull-left[ **Prikupljanje podataka** * API * Web Scraping * Baze podatka <br> <br> ] .pull-right[ **Strukturiranje podataka** * Čišćenje * Standardizacija * Spajanje baza * NLP(txt.) <br> <br> ] --- <br> <br> <br> .pull-left[ **Analiza podataka** * Nadzirano i nenadzirano strojno učenje * Duboko učenje * Ensemble metode * Bayes <br> <br> ] .pull-right[ **Provjera robusnosti** * Informacijski kriteriji * 'Cross'-validacija * Train-test split * Backtesting * Preciznost klasifikatora (ROC,Confusion Mtx) <br> <br> ] --- layout:true # PREGLED PREDAVANJA --- <br> <br> <br> 1. Klasični izvori podataka u društvenim znanostima 2. BigData kao nova istraživačka paradigma 3. Moderni izvori podataka: Web, SocMedia, App 4. Ekosistem za upravljanje BigData-om --- class: inverse, middle layout:false # HVALA NA PAŽNJI!