728x90
반응형
SMALL

데이터사이언스(Data Science)의 정의

1. 일반적인 컴퓨팅 기술 + 분산 컴퓨팅 기술 + 데이터 마이닝 + 기계학습 + 데이터 분석(통계, 수학)에
   해당하는 학술분야를 아울러 통칭하기 위해서 만들어졌다
2. 데이터마이닝(Data Mining) 과 유사하게 정형, 비정형 형태를 포함한 다양한 데이터로부터 지식과
   인사이트를 추출하는데 과학적 방법론, 프로세스 알고리즘, 시스템을 동원하는 융합분야
3. 데이터를 통해 실제 현상을 이해하고 분석하는데 통계학, 데이터분석, 기계학습과 연관된 방법론 
   통합 학문


데이터사이언스(Data Science)의 등장배경

전통적인 데이터 분석은 주로 '통계학' 을 중심으로 한 분석(analysis)은 표집(sample)된 데이터를 주로
다루는데 이런 표집데이터 즉 샘플데이터(Sample Data) 는 글자 그래도 샘플이기 때문에 컴퓨터에
저장되는 Size가 작다. (물론 통계학 자체가 이런 샘플 데이터를 가지고 전체 모수를 추측하는
학문이기때문에 당연하다.)
하지만 대량의 데이터 즉 빅데이터가 출연하면서 통계학뿐만 아니라 컴퓨터공학에서도 현실적으로
큰 장벽이 되기 시작했다. 이러한 빅데이터를 처리하는데 많은 자원과 시간이 소모되었기 때문에
당연히 반복작업이 많은 데이터분석, 기계학습과 같은 것은 만족할 만한 결과를 도출하기가 거의
불가능했다. 하지만 빅데이터 기술과 함께 분산컴퓨팅이 고도화되고 일반화도되면서 비교적 저렴한
가격으로 대량의 데이터를 처리할 수 있는 방법으로 이런 제약이 점차 사라지게 되었다.
이런 분산컴퓨팅환경에서의 데이터분석과 현대의 비즈니스는 아주 새롭지는 않지만 기존에 나눠서
했던 작업을 한꺼번에 융합해서 하는 작업을 요구하게 되었고, 그것을 데이터과학(data science)
이라고 부를 수 있다.
즉 전통적인 분석은 통계학을 중심으로 샘플을 중심으로 추론 등에 중심을 둔다고 하면 빅데이터는
대량의 데이터를 처리하고 실시간으로 활용하며 기계학습과 같은 것을 더불어 사용한다. 
즉 예전에는 통계학자, 수학자, 데이터분석가,기계학습전문가 등이 각각 역할을 수행했지만 지금은
분산컴퓨팅 등 대량의 데이터를 처리할 수 있는 환경이 만들어지면서 한 사람이 그 역할들을 같이
수행할 수 있게 되었다.


데이터사이언스에 필요한 스킬 - Data scientist skill set

skill 설명
통계
statistics

통계학은 오랜 전통을 가지고 있으며 통계학이 바로 데이터를 분석하기 위한 학문이라고 할 수 있다. 데이터사이언스라는 일에서 가장 중요한 것은 데이터를 분석하는 작업이며 분석에 필요한 많은 기법과 과거에 축적된 지혜를 통계학을 통해서 얻을 수 있다. 때문에 데이터사이언티스트는 통계학에 대한 지식이 많이 필요하다. 하지만 통계학은 배우기 어려운 학문 중에 하나이며 관련된 것과 다루는 분량이 매우 방대하고 오랫동안 공부하지 않으면 쉽게 이해할 수 없는 난해한 것들도 많다. 처음에는 기초지식을 익힌 후에 필요한 것들을 확장해서 배우고 꾸준히 익혀야 한다. 통계학의 모든 것을 한 사람이 다 아는 것은 매우 어려운 일이다.

ICT기술

컴퓨터 자원 활용 능력을 말한다. Linux, Windows server를 잘 다룰 수 있고, 터미널(Terminal)에서 명령어를 통해 Linux/Unix 환경에서 원할하게 작업을 할 수 있어야 한다. 당연히 몇개의 스크립트 언어(Script language)를 잘 다룰 수 있어야 하고 때로는 소프트웨어 개발이나 플랫폼에 관련된 개발 업무도 어느 정도 할 수 있어야 한다. 그리고 데이터 분석과 설명을 위해 Excel, Powerpoint와 같은 사무용 소프트웨어도 잘 다룰 수 있어야한다.
컴퓨터 활용 능력은 데이터사이언스에 있어서는 실행능력과 같은 것이다. 자신의 생각이나 아이디어, 가설등을 확인하기 위해서는 스스로 컴퓨팅 자원을 구성하고 활용해서 데이터를 입수하고 처리를 해서 목표를 달성해야 하는데 큰 무리가 없어야 한다

빅데이터와 분산컴퓨팅 기술

분산 컴퓨팅은 과거에는 사용하기 매우 어려운 기술이었고 설비를 갖추기 위해서 비용도 많이 필요했지만 Hadoop과 그 에코시스템(Echo system; Hadoop과 관련된 분산컴퓨팅 관련 소프트웨어들) 및 유사 소프트웨어들이 많이 생겨나고 각광을 받기 시작했고 그와 더불어 하드웨어의 가격이 낮아지고 성능이 점점 높아지게 되었다. 그 결과로 모두가 어렵지 않게 분산컴퓨팅을 사용할 수 있도록 일반화가 많이 되었다. 하지만 여전히 분산컴퓨팅을 사용하기 위해서는 역시 많은 연습과 활용에 필요한 제반 지식이 필요한 것이 문제이다.
Hadoop, Hive, Spark, Storm, Kafka와 같은 분산 컴퓨팅과 BigQuery, RedShift와 같은 클라우드컴퓨팅에서 제공하는 관리형 솔루션도 가리지 않고 잘 사용할 수 있어야 한다.

기계학습 및 데이터마이닝 기술 컴퓨터를 활용해서 어떤 가치를 찾는 작업이 분표을 통해서 통찰(insight)를 찾는 것에서 추가로 뭔가를 해야 한다면 자동화(automation)가 필요하다. 기계학습도 자동화의 일종이다. 데이터마이닝 또한 데이터에서 가치를 찾는 작업을 일부 자동화한 것이라고 볼 수 있다. 자동화 기술은 구현된 이후에는 편하게 사용할 수 있지만 구현 작업 자체는 매우 어렵다. 기계학습은 빅데이터와 데이터사이언스에 있어서는 필수라고 할 수 있으며 기계학습 기술이 포함된 데이터마이닝 기술 역시 필수라고 할 수 있다
데이터시각화 
Data visualization
분석 결과의 적절한 표현이 필요하다. 무엇을 하던지 시각적으로 표현해 주지 않으면 사람이 빨리 이해하는 것은 어려운 일이다. 연구 또는 실행한 결과 검증한 가설등을 누군가에게 설명하는 것은 반드시 필요한 과정이 되는데 이때 시각화 만큼 주목을 빨리 끌고 설명을 쉽게 할 수 있는 것은 없다. 설명 이외에도 데이터 분석 결과나 기계학습의 모형에 대한 성능 확인, 시뮬레이션 등을 하기 위해서는 데이터의 상태와 모형의 결과를 눈으로 확인하기 위한 시각화가 사람에게는 매우 유용하다. 더불어 동적인 시각화를 위해서 Javascript를 이용한 웹개발 기술도 습득이 필요하다
수학
Mathematics

데이터과학을 배우는 것은 수학에서 시작해서 기계학습과 분산컴퓨팅을 거치고 통계학을 관통해서 다시 수학으로 돌아가서 끝을 맺는다고 할 수 있다. 데이터 사이언스의 시작과 끝은 사실상 수학이다.
데이터사이언스에 관련된 일을 오래하다고 보면 알고리즘이나 모형의 깊숙한 부분을 보거나 수리적 모형을 고민해야 할 때 항상 마지막에 부딪히는 것은 수학이다. 수학은 모든 과학과 공학의 기본이라고 할 수 있다. 특히 선형대수학, 미적분, 미분방정식까지는 어느 정도의 지식을 쌓아두어야 하며 위상수학과 해석학을 비롯한 다른 대수들도 경우에 따라 알아야 할 수 있다

비즈니스 지식 Domain Knowledge

관련된 비즈니스에 대한 상당한 수준의 전문 지식이 있어야 한다. 보통의 직장이라면 회사의 주력 비즈니스에 따른 전문 업무 지식이라는 것이 필요하게 된다. 예를들어 통신회사에 근무하고 있다면 통신 비즈니스와 통신 설비, 통신 프로토콜, 통신 상품에 관해서 알아야 하며 학습을 통해 고급 지식도 습득해야 한다. 자동차 회사에 근무하고 있다면 자동차의 부품, 조립, 생산 및 각종 유닛, 역학 기술, 엔지니어링 등에 대해서 알아야 할 것이다. 업무 지식이라고 할 수 있는 도메인 지식이 없다면 데이터 사이언스는 실제로 사상누각이 되며 기술을 활용해서 성취를 얻기 어렵다.
도메인 지식은 자신이 근무하는 회사의 주력 사업이나 연구소의 주력 연구 분야 또는 창업을 준비하고 있다면 그 사업 분야와 관련된 지식이 되기 마련이다. 각 도메인과 관련된 일을 실제로 하지 않는다면 학습을 해서 배우기는 매우 어려우므로 각자의 상황에 따라 달라질 것이다. 즉 자신의 환경에서 얻을 수 있는 도메인 지식을 최대한 얻은 상태여야 데이터 사이언스도 잘 할 수 있다


<출처 : 인투더데이터 : http://intothedata.com/01.data_science/ >

728x90
반응형
LIST
728x90
반응형
SMALL

Apriori 알고리즘을 이용한 연관규칙 도출방법을 보면 빈발항목중에서 후보집합을 선정하는 기준으로
지지도(Support) 를 사용한다.  이처럼 연관규칙분석을 할ㅣ때 후보집합을 결정하려면 먼가 후보선정/탈락
측정기준이 있어야 하는데..주로 쓰이는게 3가지 기준이 있다.

측정기준 설명 수식
지지도
(Support)
전체 거래중에서 품목 A와 B가 동시에 포함된 거래의 수
예) 마트에서 고객이 구매한 거래내역중에서 빵과,우유를 동시에
     구매한 거래 건수

                    우유,빵 모두 포함된 거래 (A∩B)
    Support =  -----------------------------------
                              전체 거래수(N)
                 A∩B 
A∩B / N = ------
                   N
신뢰도
(Confidence)
품목 A가 구매되었을 때 품목 B가 추가로 구매될 확률
(조건부 확률)

                        우유,빵 모두 포함된 거래 (A∩B)
   Confidence =   ----------------------------------
                             우유가 포함된 거래수 (A)
                 A∩B 
A∩B / A = ------
                   A
향상도
(Lift
/Improvement)
품목 A를 구매할 때 B도 구매하는지 서로 간의 연관성을
파악하는 비율

                             우유.빵 모두 포함된 거래수
                           --------------------------------
                                       전체거래수
Lift  =  -------------------------------------------------------- 
             우유가 포함된 거래수            빵이 포함된 거래수
             ----------------------    X   ----------------------
                 전체거래수                        전체거래수
 
           우유.빵 모두 포함된 거래수 x 전체거래수       
      =   --------------------------------------------- 
           우유가 포함된 거래수 x 빵이 포함된 거래수     

            A∩B x N
      =  -------------
              A x B 


                           > 1 이면 양의 상관관계
                           = 1 이면  독릭접인 관계
                          < 1  이면  음의 상관관계
         A∩B x N
       ------------
           A x B 


예제

문제) 우유와 빵을 함께 구매한 거래가 10%이고,우유를 구매한 거래의 20%가 빵도 구입했을 때
        우유->빵의 상관관계는 ?  (전체거래중 빵을 구입한 거래는 10%이다)

(풀이) 상관관계란 향상도를 뜻한다.  향상도가 > 1 이면 양의 상관관계이다.
         만약 전체거래(N) = 10 이라고 가정하면

         지지도 = 10% = 1/10                즉 우유,빵 함께 구매한 거래가 1건
         신뢰도 = 20% = 1/우유 구매수   즉 우유 구매수 = 5 건
         빵구입이 10% 이므로               즉 빵 구매수 =  1건

                            우유.빵 거래수 X N           1 x 10
          향상도     -------------------------    = --------  =  2
                           우유거래수 x 빵거래수        5 x 1 


Apriori  알고리즘 설명

Apriori알고리즘은 지지도를 이용해서 연관규칙을 찾는 기법중에 하나이다.
  - 연관규칙를 찾아주는 알고리즘 중에서 가장 먼저 개발되었고, 또 가장 많이 사용된다.
  - 연관성규칙의 첫 번째 단계는 항목들 간의 연관성을 나타내기 위한 후보가 되는 
     모든 규칙들을 생성
  - 구매 데이터베이스 내에서 단일 항목들, 2개로 된 항목들, 3개로 된 항목들. 기타 등등의
     모든 조합을 발견
  - 그러나 항목들이 늘어나면 이러한 모든 조합들을 생성하기 위한 계산시간은 기하급수적으로
    증가함.
  - 데이터베이스 내에서 높은 빈도를 갖는 조합 (빈발 항목집합 : Frequent item sets) 을
    찾아내는 것
  - 빈발 항목집합 결정 도구 :지지도(Support)

<출처 : https://www.youtube.com/watch?v=mxXCBFwRGPk >

 위 그림에서 ID 101,102...  가 고객번호라고 생각하고 그 고객이 구매한 상품들이  items 이라고 하자.
[1단계]  단일항목 즉 단일항목 기준으로 해서 구매 빈도수(sup/지지도)를 구해보면 A 항목은 101, 103 고객이 
           구매했으니깐  2 이고, B항목은 3, C항목도 3 ... 이런식으로 구매된 횟수를 카운트 한 결과가  C1 이다. 
           이때 기준 횟수를 2 즉 구매횟수가 2미만인 항목은 제외를 한다 라는 기준을 세운다. (최소 지지도)
           이 기준에 의하면 C1 테이블에서 제외할 항목은 구매횟수가 1인  D 항목이고 D 항목을 제외한 새로운 
           후보집합 L1 을 도출할 수 있다.

[2단계]  L1 후보집합을 기준으로 2개항목 조합을 해서 구매빈도수 즉 지지도를 구한다. 
           그러면 C2 테이블을 만들 수 있다. 이 조합중에서 최소지지도인 2를 충족하지 못하는 (A,B) , (A,E) 조합을
           제외하면 L2 라는 새로운 후보집합을 도출할 수 있다

[3단계] 마찬가지로 L2 후보집합을 기준으로 이번에는 3개항목을 조합해서 구매빈도수(지지도)를 구해본다.
          (A,B,C) , (A,B,E), (A,C,E) ,(B,C,E) 조합이 나올수 있는데 이때 2단계에서 최소지지도에 못미쳐서 제외된 조합이
          (A,B), (A,E) 였기 때문에 (A,B,C) , (A,B,E), (A,C,E) 조합들에서   (A,B), (A,E) 조합이 부분집합으로 포함된 건
          제외해야 하기 때문에 결국 (B,C,E) 조합만 남게 된다. 
          (B,C,E) 조합의 지지도를 구해보면 2 가 되고 이는 최소지지도를 충족하므로 후보집합이 될 수 있다.

728x90
반응형
LIST

+ Recent posts