머신러닝기반 빅데이터 응용 전문가과정 - 1
(2020.07.01)
R에 본격적으로 들어가기 전에 어제처럼 빅데이터가 무엇인지에 대해 먼저 배웠다.
빅데이터는 장기적으로 저장되고 분석되는 유의미한 데이터를 말한다.
여기서 "유의미한"이라는 단어가 중요하다고 하셨다.
그래서 그 특성으로 velocity(속도), volume(규모), variety(다양성), Veracity(정확성), Value(가치)가 있어야
한다고 했다.
그리고 머신러닝에 대해 배웠는데 머신러닝은 데이터를 이용하여 데이터 특성과 패턴을 학습하여,
그 결과를 바탕으로 미지의 데이터에 대한 미래결과를 예측하는 것을 말한다.
그 종류에는 지도학습, 비지도학습, 강화학습이 있다.
첫번째로 지도학습은 데이터에 대한 Label 즉 명시적인 답이 주어진 상태에서 컴퓨터를 학습시키는
방법이다. 또한 이는 분류(Classification)와 회귀(Regression)로 나뉘어 진다.
여기서 분류와 회귀의 차이는 x 가 feature이고, y가 답이라면 y가 categorical한 데이터라면
분류이고, sequential한 데이터라면 회귀가 된다.
두번째로 비지도 학습은 데이터에 대한 Label(명시적인 답)이 없는 상태에서 컴퓨터를 학습시키는 방법으로
데이터의 숨겨진 특징, 구조, 패턴을 파악하는데 사용된다.
또한 이는 데이터를 비슷한 특성끼리 묶는 "군집"과 비지도 변환이 있다.
여기서 중요한 것은 군집이고, 비지도 학습은 지도학습을 위해 비슷한 것끼리 묵ㄲ는 것으로
사용될 수 있다.
세번째는 강화학습으로 주로 로봇이나 게임을 학습시키는데 많이 사용되며,
지도 학습과 비슷하지만 완전한 답을 제공하지 않는다. 또한 중요한 것은
보상을 주어 기계가 더 많은 보상을 얻을 수 있는 방향으로 행동을 학습시킨다.
그 후 머신러닝의 과정에 대해서 배웠는데, 그 과정은 다음과 같다.
1. Problem Identification(문제정의)
2. Data Collect(데이터 수집)
3. Data Preprocessing(데이터 전처리)
4. EDA(Exploratory data analysis : 탐색적 데이터 분석)
5. Model 선택, Hyper Parameter 조정
6. 학습
7. 모델 Evaluation(평가)
여기서 중요한 단계는 탐색적 데이터 분석이다.
그리고 학습에 있어서 데이터는 train 데이터와 test 데이터가 있는데,
모든 데이터를 train으로 하면 그 train 데이터에 맞춘 머신러닝이 되어버리고, 모두 test 데이터를 사용하면
너무 제너럴하게 되어버리기 때문에 train과 test를 7:3 비율로 나눠서 학습시키는 것이 좋다.
그 후 R을 본격적으로 활용하기 시작했다...
R을 활용한 데이터 시각화의 예로는 텍스트 마이닝과 워드 클라우드가 있다.
R에서 대입 연산자는 <-를 사용하는데 다른 언어와 달리 저장공간과 대입하는 값의 자리를 바꾸고
화살표 방향을 반대로 해도 작동한다.
그리고 R의 데이터 타입은 숫자와 문자가 있고, 데이터 구조 중 하나로 벡터에 대해서 배웠다.
벡터는 R에서 기본이 되는 데이터 구조이며, 동일한 유형의 데이터가 1차원으로 구성된다.
그리고 이를 만들기 위해 c()함수를 사용한다. 이는 묶는다는 뜻의 combine을 뜻한다.
이 후 다시 텍스트 마이닝과 워드클라우드로 돌아가서
만드는 순서를 알아보았는데 데이터 불러오기 - 명사추출(extraNoun) - 벡터로 변환(unlist) -
불용어 처리(gsub 등) - wordcount(table) - 시각화(wordcloud)로 이루어져있다.
괄호 안에 들어있는 것이 각 단계에서 사용되는 함수들이다.
이러한 방식으로 wordcount까지 진행했는데, 시간이 없어서 각 단계를 자세하게 배우지는 못했다
이는 내일 한다고 하신다.
그리고 이 전 과정으로 KoNLP라는 패키지를 설치했는데 이는 한국어를 분석할 수 있는 27개의 함수를 제공한다.
그 중에서 useNIADic( )라는 함수를 사용하여 단어를 뽑아낼 수 있다.