빅 데이터 분석-데이터 수집
데이터 수집은 빅 데이터주기에서 가장 중요한 역할을합니다. 인터넷은 다양한 주제에 대해 거의 무제한의 데이터 소스를 제공합니다. 이 영역의 중요성은 비즈니스 유형에 따라 다르지만 전통적인 산업은 다양한 외부 데이터 소스를 획득하고이를 트랜잭션 데이터와 결합 할 수 있습니다.
예를 들어 레스토랑을 추천하는 시스템을 구축한다고 가정 해 보겠습니다. 첫 번째 단계는 데이터 (이 경우 다른 웹 사이트의 레스토랑 리뷰)를 수집하여 데이터베이스에 저장하는 것입니다. 원시 텍스트에 관심이 있고이를 분석에 사용할 것이므로 모델 개발을위한 데이터가 저장되는 위치는 그다지 중요하지 않습니다. 이는 빅 데이터의 주요 기술과 모순되는 것처럼 들릴 수 있지만, 빅 데이터 애플리케이션을 구현하려면 실시간으로 작동하도록하면됩니다.
트위터 미니 프로젝트
문제가 정의되면 다음 단계는 데이터를 수집하는 것입니다. 다음 미니 프로젝트 아이디어는 웹에서 데이터를 수집하고 기계 학습 모델에서 사용할 수 있도록 구조화하는 것입니다. R 프로그래밍 언어를 사용하여 twitter rest API에서 일부 트윗을 수집합니다.
먼저 트위터 계정을 만든 다음 twitteR패키지 비 네트 를 사용하여 트위터 개발자 계정을 만듭니다. 이것은 그 지침의 요약입니다-
이동 https://twitter.com/apps/new 로그인하십시오.
기본 정보를 입력 한 후 "설정"탭으로 이동하여 "다이렉트 메시지 읽기, 쓰기 및 액세스"를 선택합니다.
이 작업을 수행 한 후 저장 버튼을 클릭하십시오.
"세부 정보"탭에서 소비자 키와 소비자 비밀을 기록해 둡니다.
R 세션에서 API 키와 API 비밀 값을 사용하게됩니다.
마지막으로 다음 스크립트를 실행하십시오. 이것은twitteR github의 저장소에서 패키지.
install.packages(c("devtools", "rjson", "bit64", "httr"))
# Make sure to restart your R session at this point
library(devtools)
install_github("geoffjentry/twitteR")
우리는 "big mac"이라는 문자열이 포함 된 데이터를 얻고 이에 대해 어떤 주제가 눈에 띄는 지 알아 보는 데 관심이 있습니다. 이를 위해 첫 번째 단계는 트위터에서 데이터를 수집하는 것입니다. 아래는 트위터에서 필요한 데이터를 수집하는 R 스크립트입니다. 이 코드는 bda / part1 / collect_data / collect_data_twitter.R 파일에서도 사용할 수 있습니다.
rm(list = ls(all = TRUE)); gc() # Clears the global environment
library(twitteR)
Sys.setlocale(category = "LC_ALL", locale = "C")
### Replace the xxx’s with the values you got from the previous instructions
# consumer_key = "xxxxxxxxxxxxxxxxxxxx"
# consumer_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# access_token = "xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# access_token_secret= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Connect to twitter rest API
setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_token_secret)
# Get tweets related to big mac
tweets <- searchTwitter(’big mac’, n = 200, lang = ’en’)
df <- twListToDF(tweets)
# Take a look at the data
head(df)
# Check which device is most used
sources <- sapply(tweets, function(x) x$getStatusSource())
sources <- gsub("</a>", "", sources)
sources <- strsplit(sources, ">")
sources <- sapply(sources, function(x) ifelse(length(x) > 1, x[2], x[1]))
source_table = table(sources)
source_table = source_table[source_table > 1]
freq = source_table[order(source_table, decreasing = T)]
as.data.frame(freq)
# Frequency
# Twitter for iPhone 71
# Twitter for Android 29
# Twitter Web Client 25
# recognia 20