데이터 분석 준전문가/제4과목

제1장 데이터 분석 개요

표독's 2016. 2. 16. 22:40

제 1장 데이터 분석 개요

학습목표

 데이터 분석 과정에 대한 이해 

 분석 요건 도출 방안 이해

 각 단계별 수행 준거 숙지

 WBS 작성 방법 숙지

 데이터 마트 개념 이해

 데이터 마트 구축 이해

 데이터 처리 구조 이해

 시각화 이해

 공간분석 이해

 탐색적 분석 이해

 통계분석 이해

 데이터 마이닝 이해

 시뮬레이션 이해

 최적화 이해

 분석 환경 이해

 R, R studio 설치 방법 숙지

 R 기본 사용법 숙지

 R 래틀 사용법 이해

 

제 1절 데이터 분석 프로세스

1. 요건정의

요건정의는 분석 요건을 구체적으로 도출 선별 결정하고, 분석과정을 설계하고, 구체적인 내용을 실무담당자와 협의하는 업무다. 광범위하고 다양한 정보를 다루고 문서화 작업의 비중이 높다. 전체 프로세스 중에서 가장 중요한 부분으로, 빅데이터 분석업무의 성패를 좌우한다.

 

가. 분석요건 도출

요건은 비즈니스 이슈로부터 도출된다. 이슈 정의를 해보면 업무를 수행하는데 있어서 전사적 측면에서 개선돼어야 한다. 단순히 불편 사항이나 불만 사항을 요건으로 할 경우 비즈니스적 의미가 낮아지고 보고하고 실행에 옮기는 데 타당성을 잃을 가능성이 높다.

조건은 문제를 해결 했을 때 투자수익(ROI)으로 증명할 수 있어야 한다.

정의하는 단계에서는 상세한 분석보다는 문헌조사 및 이해와 간단한 기초 분석을 수행할 수 있다.


1)수행 준거

2)고려 사항


나.수행방안 설계

분석을 구체적으로 수행하기 위해서는 간단한 탐색적 분석을 수행하면서 미리 가설을 수립해 어떤 분석을 수행할지 틀을 잡아야 한다.

이유 : 분석 자체가 의미 없다는 것을 미리 파악할 수 있다.

 

이 단계에서는 반드시 분석기법을 정의하고 진행해야 하며, 결정시 해당 분석기법에 대한 전문 지식을 갖춘 인력이 참가해 검토해야 한다. 여기서 다루는 수행 방안의 최종 산출물은 분석 계획서와 WBS다. 월 단위가 아닌 일 단위가 돼야 하고 상세한 내용이 정의되는 과정에서 상위 기획단계에서 미처 고려하지 못한 구체적 업무와 자원, 선행 관계 등의 충돌로 일정이 부족할 수도 있다.

WBS 작성시

Forward 방식으로 전개를 해보고 납기를 만족시킬 수 있는지 확인.

납기를 초과할 경우

Backward로 전개해 언제 특정업무를 반드시 시작해야 하는지를 파악.


1)수행 준거

2)고려 사항

    다. 요건 확정

    요건 도출과 분석계획을 수립하면, 요건에 어떻게 접근하고 어떤 정량적 정성적 효과가 나올지 기획안이 나온다. 이를 통해 분석 요청 부서와 IT 부서, 기타 연관 부서와 공유해 최종 요건을 확정한다.


    2. 모델링

    요건정의에 따라 상세 분석기법을 적용해 모델을 개발하는 과정이다. 빅데이터 분석에서 모델링을 거치면, 필요한 입력 데이터에 대한 처리가 매우 용이해진다.

    가. 모델링 마트 설계와 구축

    어떤 모델링 기법을 사용하든 모델링을 위한 데이터를 미리 준비해 시스템에 체계적으로 준비해 놓으면 모델링이 용이해진다.


    1)수행 준거

    2)고려 사항

      나. 탐색적 분석과 유의 변수 도출

      데이터 마이닝에 해당하는 업무로 해당 비즈니스 이해와 분석요건에 대한 구체적인 팩트를 발견해 통찰을 얻기 위해 수행하는 업무로 흔히 EDA(탐구 데이터 분석)라고 한다. EDA는 매우 시간을 많이 필요로하는 일로 최근에는 EDA를 자동으로 신속하게 수행해 유의미한 값만 파악해 데이터 마트로 만든 후 모델링 업무로 진행하는 게 일반적이다.


      1)수행 준거

      2)고려 사항



      다. 모델링

      모델링은 개념적인 모델링도 있지만, 결국 이를 구현해 적용할 수 있어야 한다.

      전체 내용을 제대로 제시하려면 특정 도구를 사용해야 한다.

      SQL은 거의 차이가 없고, 표준이라고 할 수 있는 ANSI SQL로 활용 및 적용에 대한 정보를 제시할 수 있는 것은 매우 제한적이다. 가장 광범위하게 사용되고 학습을 위해 획득이 용이한 DBMS를 선택해야 한다.

      1)수행 준거

      2)고려 사항

        라. 모델링 성능평가

        모델링 성능을 평가하는 기준은 분석 기법별로 다양하다. 데이터 마이닝에서는 정확도, 정밀도, 디렉트 레이트, 리프트 등의 값으로 판단한다. 시뮬레이션에서는 다른 지표가 활용된다.

        1)수행 준거

        2)고려 사항

          3. 검증 및 테스트

          모든 모델링에서는 반드시 검증 및 테스트를 거친다. 분석용 데이터를 트레이닝용과 테스트용으로 분리한 다음, 분석용 데이터를 이용해 자체 검증한다.

          가. 운영 상황에서 실제 테스트

          1)수행 준거

          2)고려 사항

            나. 비즈니스 영향도 평가

            의미 있는 분석 결과를 확보하려면 비즈니스 영향도와 효과를 산출할 수 있어야 한다. 정확성을 높여 비용이나 만족도를 개선하거나, 추가 수익을 창출할 수 있어야 한다.

            1)수행 준거

            2)고려 사항

              4. 적용

              적용은 분석결과를 업무 프로세스에 완전히 통합해 실제 일 주 월 단위로 운영하는 것이다.

              가. 운영시스템에 적용과 자동화

              운영시스템에 적용해 운영하면 실시간 또는 배치 스케줄러가 실행하고, 주기별로 분석 모델의 성과가 예상했던 수준으로 나오고 있는지 모니터링할 수 있도록 DMBS에 성과자료를 누적하고, 이상현상이 발생하면 경고를 자동으로 줄 수 있게 한다.

              R을 이용해 이 단계를 단순화 할 수 있는데. 샤이니(shiny)를 이용해 모델링 결과를사용자 작업 파일과 서버상의 파일을 이용해 간단히 배포할 수도 있다.

              1)수행 준거

              2)고려 사항

                나. 주기적 리모델링

                한 번 만든 모델이 영원한 동일한 성과를 낼 수 없다.

                분기, 반기, 연 단위로 수행한다.

                1)수행 준거

                2)고려 사항

                  제 2절 데이터 분석 기법의 이해

                  1. 개요

                  데이터 분석에 대한 정의는 매우 다양하나, 고급분석의 경우 20개 이상의 변수와 수천 건 이상의 데이터를 이용해 통찰력을 얻거나 의사결정을 한다.

                   

                  분석도구 보다는 분석을 어떻게 활용할지가 더 중요하다. 도구는 도구일 뿐이다.

                  2. 기초 지식과 소양

                  통계학에 대한 지식과 이해가 있으면 유리하지만, 필수는 아니다.

                  다양한 사업에 대한 이해가 필요하며 적어도 상식수준이 아닌 해당 업계 신입사원 수준의 산업 분야 이해가 필요하다. 데이터 분석과 친해지려면, 항상 분석 확인 검증하는 연습이 필요하다.

                  3. 데이터 처리

                  분석하기 위해서는 분석방법에 맞게 데이터를 수집 변형하는 과정이 필요하다. 때로는 잘 정리된 데이터 마트가 필요하다.

                  데이터 처리 과정은 많은 시간, 노력, 인내가 필요하다. 언제나 시간과 자원은 제약이 따르고 높은 품질을 요구한다. 제일 좋은 방법은 빠르게 원시모형을 만드는 것이다.

                  4. 시각화

                  시각화는 가장 낮은 수준의 분석이지만 잘 사용하면 복잡한 분석보다도 더 효율적일 수 있다. 엑셀에서 할 수 없었던 비정형 데이터나 소셜 데이터의 시각화에서는 서버 기반의 그래프 처리도구의 장점이 그대로 드러난다.

                  5. 공간 분석

                  공간적 차원과 관련된 속성들을 시각화에 추가한 것이 공간분석이다.

                  6. 탐색적 분석

                  탐색적 분석은 말 그대로 하나하나 탐색하면서 분석하는 방식이다. 다양한 차원과 값을 조합해가며 특이한 점이나 의미있는 사실을 도출하고, 분석의 최종 목적을 달성해가는 과정이다.

                  7. 통계분석

                  빅데이터 분석을 하는 데 있어 모집단과 샘플은 특별히 고려할 사항이 아니다. 샘플도 충분히 크기 때문이다. 모집단의 다양한 속성이 샘플링 결과와 일치하는지는 주요변수에 대해 반드시 확인할 필요가 있다.

                  8. 데이터 마이닝

                  데이터 마이닝은 대표적인 고급분석으로 데이터에 있는 패턴을 파악해 예측하는 분석이다. 0과 1로 상황을 분류하고, 집단 간의 차이를 갖고 클러스터링해 구분하고, 이전 값들의 패턴으로 미래의 값을 예측하며, 입력변수와 종속변수의 관계를 이용해 미래의 값을 알 수 있고, 동시에 발생하는 이벤트들과 시차를 갖고 발생하는 이벤트를 이용해 어떤 미래의 값을 알 수 있고, 동시에 발생하는 이벤트들과 시차를 갖고 발생하는 이벤트를 이용해 미래의 값을 알 수 있고, 동시에 발생하는 이벤트들과 시차를 갖고 발생하는 이벤트를 이용해 어떤 이벤트가 발생할지를 파악하는 기법이다.

                   

                  9. 시뮬레이션

                  시뮬레이션은 복잡한 실제상황을 단순화해 컴퓨터상의 모델로 만들어 재현하거나 변경함으로서 현상을 보다 잘 이해하고 미래의 변화에 다른 결과를 예측하는 데 사용하는 고급분석 기법이다. 대기행렬에는 우선순위 방식과 먼저 온 것을 우선 처리하는 방식 등이 있다. 대기행렬 선택규칙과 자원 할당규칙에는 속성에 따른 처리방법, 돌아가면서 하는 방법, 가장 대기행렬이 짧은 것이나 자원의 가동율이 낮은 것을 처리하는 방법 등 다양한 규칙을 적용해 실제 운영방식을 개선할 수 있다.

                  10. 최적화

                  최적화는 오랜 역사를 갖고 있는 고급분석 기법으로, 목적함수 값을 최대화 또는 최소화를 목표로 한다. 제약조건 하에서 목표 값을 개선하는 방식으로 목적함수와 제약조건을 정의해 문제를 해결해 나간다. 특별히 적용이 불가능한 산업 영역이 없다.

                  11. 배포 및 운영

                  분석 및 마이닝 모델에 직접 접근해 데이터를 조회하고 마이닝 결과를 적용해 결과를 조회할 수 있는 인터랙티브한 환경 개발이 나오게 되었고, 이러한 환경을 구축할 수 있도록 RStudio에서 Shiny를 선보였다.

                  Shiny : 데이터 양이나 형태 여부를 분문하고 인터랙티브하게 처리할 수 있다.

                  제 3절 분석 환경 이해와 기본 사용법

                  1. 분석 환경의 이해

                  가. 통계 패키지 R

                  R은 오픈소스 프로그램으로 통계 데이터 마이닝과 그래프를 위한 언어다. SAS,SPSS, KXEN과 비교해 가장 큰 특징은 다음과 같다.

                  첫째, 다양한 최신 통계 분석 및 마이닝 기능을 R플랫폼에서 제공한다.

                  둘째, 언어에 가까운 문장 형식이므로 기능들의 자동화가 비교적 쉽다.

                  셋째, 사용자들이 여러 예시들을 공요한다는 점이다.

                  나. R스튜디오

                  오픈소스이고 다양한 운영체제를 지원한다.

                  R스튜디오는 메모리에 변수가 어떻게 되어 있는지와 타입이 무엇인지를 볼 수 있고, 스크립트 관리와 도큐먼테이션이 편하다.


                          다. 데이터 소스 및 분석 IT 아키텍처

                  작업환경은 업무 규모와 본인에게 익숙한 환경이 무엇인지 기준으로 선택한다.

                  기업 환경에서는 64비트 환경의 듀얼코어, 32GB RAM, 2TB 디스크, 리눅스 운영체제를 추천한다.

                   

                  1.     기본 사용법

                  가.   R언어와 문법

                  R스튜디오 설명

                  1)     스크립트 : R명령어를 입력하는 창

                  2)     콘솔 : 스크립트 창에서 실행한 명령문이 실행되는 것을 볼 수 있는 곳

                  3)     워크스페이스 : 할당된 변수와 데이터가 나타나는 곳

                  4)     설치된 패키지들과 help 등을 볼 수 있는 곳

                  변수와 벡터 생성

                  벡터는 스칼라의 조합이다.

                   

                  > a <- 1

                  > print(a)

                  > x <- c(“fee”, “fie”, “foe”, “fum”)

                  함수 내에서 연산을 할 수 있다.

                  논리형 값은 “”가 필요없다.


                  > 1:5


                  seq(from=시작점, to =끝점, by = 간격)

                  >seq(from=0, to=20, by=2)


                  rep(반복할 내용, 반복수)

                      : 똑 같은 값이 단순 반복되는 특별한 수열은 인자를 반복하는 rep함수를 이용


                  numeric은 숫자 형태의 데이터이다. 정수인 integer와 소수점이 있는 double이 있다.


                  paste(“붙일 내용”, “붙일 내용”, sep=””)

                      : 붙일 내용을 seperator를 사이에 두고 붙이는 함수다.

                        잘 이용하면 새로운 입력용 데이터를 만들 수도 있다.

                  substr(문자열, 시작, )

                      : 시작과 끝에 해당하는 하위 문자열을 추출


                  논리값 : R에는 두 개의 논리값인 TRUE FLASE가 있다. / T, F로 써도 된다.


                  matrix(이름, 행 수, 열 수)

                  dim(): 행렬의 행과 열 수를 반환 한다.

                  diag(행렬) : 행렬의 대각선에 있는 값을 반환한다.

                  colnames() : 열 네임을 조회한다.

                  rownames() : 행 네임을 조회한다.


                  list : 

                  리스트를 만들 때는 리스트의 원소들에 태그들을 부여해야 한다.

                   특징 : 벡터에서 모든 원소는 같은 모드를 갖고 있어야 하지만, 리스트에서 원소들은 다른 모드여도 된다.

                  접근 방법

                  >alst$s    ##alst안에서 a 에 접근

                  >alst[[1]]    ##alst안에서 첫 번째 속성에 접근

                  >alst[[1]][2]  ##alst안에서 첫 번째 속성에서 2번째 속성에 접근(상세 값에 접근)

                  데이터 프레임

                  data.frame(, , , , …)

                  rbind(dfrm1, dfrm2): 두 데이터프레임의 행을 쌓으려면 rbind를 사용한다.

                  cbind(dfrm1,dfrm2) : 두 데이터프레임의 열을 이어 붙이려면 cbind를 사용한다.

                  subset(dataframe, select = 열 이름) : 데이터세트에서 조건에 맞는 내용을 조회

                  with(dataframe, 열 이름) 데이터 프레임을 매번 입력하기 귀찮아서 더 쉽게 열에 접근

                  merge(df1, df2, by=” df1 df2의 공통된 열의 이름”) 하나의 공통된 열로 데이터프레임 병합

                           ## 행이 정렬되지 않았거나 심지어는 동일한 순서로 나타나지 않았어도 상관 없음.

                  grep(조회할 문자패턴, data)

                  >grep(“Summer”,movies$title) 

                  ##movies 데이터세트의 title에서 “Summer”문자열을 포함하는 행의 위치를 조회.


                  벡터에 있는 원소 선택

                  R에서의 원소 선택기능은 벡터 내의 값을 조회할 때 유영하게 쓰인다. “[]”를 이용하거나 c() 함수를 이용해 절대 위치에 있는 정보를 가져올 수 있다.


                  자료형 데이터 구조 변환

                  as.data.frame(x) : 데이터프레임 형식으로 변환한다.

                  as.list(x) : 리스트 형식으로 변환한다.

                  as.matrix(x) : 행렬 형식으로 변환한다.

                  as.vector(x) : 벡터 형식으로 변환한다.

                  as.factor(x) : 팩터 형식으로 변환한다.

                       ** 1) 변환이 잘 적용되지 않는 다면 NA 값으로 나타난다.

                  2) 논리값을 숫자값으로 변환할 때는 FALSE 0으로, TRUE 1로 바꾼다.

                   

                  문자열을 날짜로 변환

                  Sys.Date(): 현재 날짜를 반환한다.

                  as.Date(): 날짜 객체로 변환한다.

                   

                  날짜를 문자열로 변환

                  format(날짜, 포맷)

                  as.character()

                   

                  Missing

                  > a <- 0/0

                  > a

                   [1] NaN

                   

                  벡터의 기본 연산

                  mean():평균

                  sum():

                  average():평균

                  median():중앙값

                  log():로그

                  sd():표준편차

                  var():분산

                  cov():공분산

                  cor():상관계수

                  length():변수의 길이 값 반환

                   

                  알아두면 유용한 기타 함수들

                  write.csv(변수이름, “지정할 파일이름.csv”)

                  read.csv(“저장된 파일이름.csv”)

                  save(변수이름, file=”지정할 데이터 파일이름.Rdata”)

                  load(“저장된 파일이름.Rdata”)

                  rm()

                  rm(list=Is(all=TRUE))   ## 모든 변수 제거

                  data()

                  summary()  : 간단한 통계량들을 데이터세트 열마다 요약

                  head()   : 데이터세트의 6번째 행까지 조회해준다.

                  install.packages(“패키지 이름”) : R 패키지를 설치하는 함수

                  library(패키지이름) : R에 패키지를 불러오는 함수

                  vignette(“알고 싶은 package이름 “): 해당 library에 대한 요약본 내용을 알고 싶은 경우

                  ?명령어 : 도움말이 필요할 때 사용한다.

                  ??명령어:명령어 검색이 필요할 때 사용한다

                  >??head

                   

                           2.     래틀

                  래틀은 R GUI 환경에서 보다 편리하게 사용할 수 있도록 도와주는 패키지다.

                  R에 기반을 두고 있기 때문에 R이나 R스튜디오에서 설치하지 않은 패키지에 대해서는 사용할 수 없다.

                  따라서 반드시 필요한 패키지를 설치한 후에 사용하도록 한다.

                  래틀을 실행하기 위해서는 먼저 두 가지 패키지(RGtk2, rattle)가 반드시 설치돼 있어야 한다.

                  '데이터 분석 준전문가 > 제4과목' 카테고리의 다른 글

                  제5장 비정형 데이터 마이닝  (0) 2016.02.19
                  제4장 정형 데이터 마이닝  (0) 2016.02.18
                  제3장 데이터 마트  (0) 2016.02.18
                  제2장 통계분석  (0) 2016.02.17
                  과목4. 데이터 분석 (목차)  (0) 2016.02.16