google_adsense2


[ADsP 요약정리] 2. 데이터 분석 기획 by 메타샤워

1. 데이터 분석 기획

1) 분석 방향성 도착
- 분석 기획 : 분석과제정의, 관리방안 사전 계획
- 고려 사항 : 데이터에 대한 고려 (확보, 유형), 활용방안, 유즈케이스, 장애요소 대책

2) 분석 방법론
- KDD : 9개의 프로세스와 5단계 절차를 통해 데이터 마이닝 (순차적)
   데이터 셋 선택 -> 데이터 전처리 -> 데이터 변환 ->데이터 마이닝 -> 결과평과
- CRISP-DM : 4계층과 일정치 않은 방향의 6단계 프로세스로 구성된 데이터 마이닝 (비순차적)
   업무이해 -> 데이터이해 -> 데이터 준비 -> 모델링 -> 평가 -> 업무이해 회귀 or 전개
- 빅데이터 : 3계층과 5단계의 절차로 구성
   분석기획 -> 데이터 준비 -> 데이터분석 -> 시스템 구현 -> 평가 및 전개


3) 분석 과제
- 분석 과제정의서 : 소스 데이터, 분석 방법, 데이터 입수 및 분석의 난이도, 분석 수행 주기, 검증 오너십, 상세 분석 과정등 정의

4) 하향식 접근 방식 분석 과제 발굴
- 주어진 문제를 단계적으로 수행하는 방식
- 문제 탐색
비지니스 모델 기반의 5개 영역 : 업무, 제품, 고객, 규제와 감사, 지원인프라
경제적요인 (STEEP) : 사회, 기술, 경제, 환경, 정치
경쟁자 확대 관점 : (직접 경쟁자, 제품, 서비스) + 대체제, 신규 진입자
시장의 니즈 탐색 관점 : 고객, 채널, 영향자
역량의 재해석 관점 : 내부 역량 영역, 파트너 & 네트워크 영역
- 문제 정의 : 비지니스 문제 -> 데이터와 분석 문제로 변환
- 해결방안 탐색 : 분석 역량, 분석 기법 및 시스템 활용해서 해결방안 탐색
- 타당성 검토: 경제적 타당성, 데이터 및 기술 적 타당성

[ADsP 요약정리] 1. 데이터의 이해 by 메타샤워

1. 데이터의 이해


1) 데이터 
- 존재적 틍성 : 객관성 사실
- 당위적 특성 : 추론, 예측, 전망, 추정을 위한 근거

2) 특정
- 정성적 데이터 : 언어, 문자, 사람의 감정, (수치화 하거나 측정할 수 없는 데이터 )
- 정량적 데이터 : 수치, 도형, 기호 ( 수치화 하거나 측정할 수 있는 데이터)

3) 지식
- 암묵지 : 학습과 경험을 통함 지식(내면화 -> 공통화 필요) 
- 형식지 : 형식화된 지식( 표준화 -> 연결화)


2. 데이터와 정보



1) 데이터의 활용 단계
- 데이터 : 객관적사실
- 정보 : 연관관계 -> 의미도출
- 지식 : 정보 구조화 분류 개인적 경험 = 내재화
- 지혜 : 지식의 축적 + 아이디어 = 창의적 산물


3. 데이터 베이스


1) 정의 
- EU : 체계적으로 정리되고 전자식으로 개별 접근 가능한 독립된 데이터
- 국내 저작권법 : 소재를 체계적으로 구성한 편집물로 개별적으로 접근가능한 것
- 국내 컴퓨터 용어사전 : 동시에 복수 업무 지원이 가능한 데이터의 집합

2) 특징
- 통합된 데이터 : 중복이 없음
- 저장된 데이터 : 저장매체에 저장
- 공용 데이터 : 공동 이용
- 변화되는 데이터 : 변화하면서도 현재의 정확한 데이터 유지


4. 빅데이터


1) 정의
- Mckinsey : 일반적인 DBMS 이용 규모를 초과하는 데이터
  - IDC : 대규모 데이터로부터 저비용 고가치 추출 가능한 차세대 기술
- Doug Laney : 3V ( Volume, Variety, Velocity, Value)

2) 빅데이터 정의의 범주 및 효과
- 데이터 변화: 규모, 형태, 속도
- 기술변화 : 신데이터처리, 저장, 분석 기술, 클라우드 컴퓨팅 활용
- 인재, 조직 변화 : 데이터 중심 조직으로 변화

3) 빅데이터 활용 기본 테크닉
- 연관 규칙 학습, 유형분석, 유전 알고리즘, 기계학습, 회귀분석, 감정분석, 소셜네트워크 분석

4) 위기요인
- 사생활 침해 -> 동의에서 책임으로
- 책임 원칙 훼손 -> 결과 기반 책임 원칙 고수
- 데이터 오용 -> 알고리즘 접근 허용

5) 빅데이터로 인한 변화
- 사전처리 -> 사후 처리   [ 데이터가 모인 이후에 모인 데이터로 처리를 시작한다. ]
- 표본조사 -> 전수 조사   [ 일정 표본으로 데이터를 처리 하는 것이 아니 가능한한 모든 데이터를 활용 ]
- 데이터의 질 -> 데이터의 양 [ 가능한한 많은 데이터를 활용한다 ]
- 인과관계 -> 상관관계 [ 데이터간의 상관관계를 토대로 데이터를 이해 한다.]

6) 빅데이터의 미래
- 모든것의 데이터화, 인공지능, 데이터사이언티스트, 알고리즈미스트



5. 데이터 사이언스


1) 빅데이터 회의론 원인
- 부적정 학습효과 : 과거의 CRM ->공포 마케팅, 투자대비 효과 미흡
- 부정적 성공사례 : 빅데이터가 불필요한 분석 사례, 기존 CRM 분석 성과

2) 실패 사례
- 싸이월드 퇴보 원인 : OLAP 같은 분석 인프라 있으나 활용 못함, 웹 로그와 같은 일차원적 분석에 집중함,
관련 프레임워크 혹은 평가지표 없음 전략적 통찰이 생길수가 없음

3) 전략적 통찰이 없는 분석의 함정
- 일차원적 분석의 반복 : 해당 부서 업무 영역에서 효과적, 환경 | 고객 변화 대처의 어려움
- 가치 기반 분석 단계 : 일차원적 분석 -> 경험 -> 활용 범위 확장 -> 사업 성과

4) 데이터 사이언스 
- 데이터로부터 정보 추출 -> 분석 -> 구현 -> 전달
- 영역 : 분석 분야 ,IT분야, 비지니스 분야
- 다양한 유형의 데이터(정형, 비정형)을 대상으로 분석
- 데이터 공학, 수학, 통계학, 컴퓨터 공학, 시각화, 해커의 사고방식, 분야별 전문지식 종합

5) 데이터 사이언티스트
- 역할 : 데이터 소스 발견, 대용량 데이터 구조화, 불완전 데이터 연결
- 요구사항 : 창의적 사고, 호기심, 논리적 비판을 통한 통찰력, 전달력, 커뮤니케이션 능력

6) 빅데이터와 데이터 사이언스의 미래
- 외부 환경 측면의 인문학 열풍
세계화 : 단순 세계화 -> 복접한 세계화 ( 컨버전스 -> 디버전스 )
비지니스 중심 : 제품 생산위주 -> 서비스 ( 품질-> 서비스 )
겸제산업 논리 : 샌산 => 시장 창조 ( 공급자 중심기술경쟁 -> 무형 자산의 경쟁)
- 가치 패러다임의 변화 
1단계 디지털화 : 가치 형상화, 표준화 (문서의 디지털화)
2단계 연결 : 정보의 효율적인 연결 및 제공 (인터넷 모바일 기술의 발전)
3단계 에이전시 : 필요정보 효과적 제공 및 관리 (개인, 기기, 사물 하이퍼 연결)
- 데이터 사이언스의 한계 : 분석에서 인간의 개입 (가정 -> 해석)





데이터를 받으면 제일 먼저 해야할 일 by 메타샤워

모든 데이터에 행해야할 분석


1. 데이터 내용, 구조, 타입을 파악해야한다. 
R에서 dplyr::glimpse() 함수가 유용하다. 
데이터 구조를 파악할 수 있는 str(),
데이터의 맨 앞 부분을 보여주는 head(), 데이터의 맨 뒷 부분을 보여주는 tail()

2. 데이터의 요약 통계량을 summary로 파악한다.

3. 결측치가 있는지 summary로 살펴 본다.

4. 무작정 시각화를 해본다.
plot(), piars()를 돌려보면 좋다.
데이터의 관측치가 많을 때는 실행시간이 길으니 dplyr::sample_n() 함수등을 사용해 표본화 해본다.
데이터의 변수가 10개 이상많을 때에는 10열씩 구분하여 살펴보는것도 유용하다

데이터 분석에서 나오는 수학 - 코사인 유사도 by 메타샤워


코사인 유사도


벡터공간 ( Vector Space ) 는 우리가 가지고 있는 데이터를 좌표계에 표현하기 위해 나온 개념이다.
음성데이터든, 이미지 데이터든, 문서 데이터든 해당 데이터가 가지고 있는 특성을 x,y축 또는 x,y,z,,,, 축 등
다차원 좌표계에 표시할수 있다면 해당 좌표들 끼리의 유사도를 계산할수가 있게 된다.

예를들어 2개의 특성으로 구분된 데이터라고 가정을 해보자. 
문서데이터를 예로 들어 문서에 들어있는 단어는 오로지 A라는 단어와 B 라는 단어 2가지로 이루어져 있다면
문서들이 A라는 단어와 B라는 단어를 얼마나 많이 또는 적게 가지고 있느냐에 따라서 A축과 B축의 좌표계로 문서들을 표시 할수 있다.
변수가 A, B 두개 밖에 없어 2차원 좌표계에 표시하였지만 
데이터가 가지고 있는 특성에 따라서 3차원 10차원 200차원의 좌표계에 표시해야 할 수 있다.

좌표계에 표시된 데이터들의 벡터내적값을 이용하면 데이터들 끼리의 유사도를 구할수 있다.
유클리디안 거리는 단순히 좌표에 표시된 데이터들 간에 거리를 비교하여 
거리가 멀면 유사도가 적고 가까우면 유사한 데이터라고 판별하지만
코사인 유사도 같은 경우에 문서의 단어들이 적게 있지만 A가 3개 B가 3개 있는 문서와 문서의 단어가 많이 있지만 
A가 300개 B가 300개 있는 데이터는 서로 유사한 데이터라고 볼수 있다. 
이런 문서간의 좌표의 실제 거리는 굉장히 멀겠지만 벡터내적을 구하면 두 데이터는 같은 데이터로 결과가 나오게된다.

이렇게 데이터가 가지고 있는 특성의 비율로서 데이터의 유사도를 측정하는 방법이 코사인 유사도이다.



코사인유사도는 벡터내적 공식을 이용하여 구할수 있다.

먼저 벡터내적 공식이다.


vector6.png

vector4.png

여기서  A벡터의 절대값인 vector5_copy1.png 은 A벡터의 크기를 말한다. 
벡터는 방향과 크기를 가진 물리량인데 방향성을 소거하고 크기만을 표현할때 이렇게 표현한다.
vector5_copy1.png벡터의 크기를 구하는 방법은 
vector8.png

 A벡터가 가지고 있는 요소들의 제곱의 합에 루트를 씌워주면 A벡터의 크기가 된다. 
원점으로 부터 A벡터까지의 거리 공식을 이용하면 되는것이다.


여기서 벡터의 내적공식을 다른 풀이형태로 표현할수 있다. (코사인 제 2법칙으로 증명할수 있지만 안하겠다. )

vector7.png

위 공식으로 A벡터와 B벡터의 내적값을 요소로서 구할수 있다. 
코사인 내적으로 실시하면 방향이 없는 스칼라 물리량이 구해진다. 


벡터의 내적을 표현하는 2가지 공식으로서 두 벡터간의 코사인 값은 아래와 같이 정리 할수 있다.

vector10.png


이제 쉽게 말해 보자 

두 데이터간의 코사인 유사도는 각 데이터들의 값을 모두 제곱하여 더한 값에 루트를 씌운 곱들을 분모로 하여 
서로 간 같은 축에 있는 데이터들끼리 곱한것에 총합을 분자로 하면 
두 데이터간의 코사인 값을 구할수 있다. 


그럼 이제부터 이 두 벡터간의 코사인값이 어떻게 유사도를 나타낼수 있는지 이야기 해보아야 한다.

두 벡터가 얼마나 유사한가는 두 벡터의 좌표를 이용하여 유클리디안 거리 측정으로 구할수 있다.
하지만 이것은 각도에의해 구한것이 아닌 그저 거리로만 계산한 방법이다.
벡터의 성질인 크기와 방향을 이용하여 유사도를 측정하는 방법으로 가장 많이 사용되는 방법은 코사인값을 활용하는 방법이다.

코사인은 -1 부터 1까지의 값을 갖는다.
코사인 각이 0이라면 두 벡터가 가장 가깝게 되고 유사도는 1이 된다. 
코사인 각이 180이라면 두 벡터가 가장 멀리 있게 되고 유사도는 -1이 된다.

이런 이유로 단순히 코사인 각만 가지고도 유사도를 측정할수 있게 되는것이다.


하지만 제일 위에서 언급했듯이 이것은 벡터의 방향성만 가지고 유사도를 측정한것이기 때문에 벡터가 가지고 있는 크기에 대해서는
논하지 않았다. 아래 그림을 보자. 

20080829_000036.png

 위 그림에서 왼쪽의 A벡터와 B벡터는 오른쪽 A벡터와 B벡터간 유사도는 코사인 유사도로는 갖게 나온다.
물론 유클리디안 거리는 다르게 나오겠지만 말이다.

서로 다른 값을 가지지만 사잇각이 같다는 이유로 같은 유사로라고 판단하는것이 문제가 될수도 있다. (물론 안될수도 있다. )

그래서 이를 보완하기 위해서 하나의 벡터를 또 다른 벡터에 투영하여 얻어진 길이로 유사도를 구할수도 있다.

20080829_000408.png

투영한 길이는 두백터의 크기와 방향에 따라서 모두 영향을 받는 길이이기 때문에 
투영한 길이가 길면 더욱 유사한 값이라고 판단할수 있고 
투영한 길이가 짧은 덜 유사한 값이라고 판단할수 있다.

사잇각이 좁으면 좁을수록 투영한 길이는 길것이고 벡터의 크기가 비슷해야 투영한 길이도 비슷하게 나올것이기 때문이다.

그럼 이 투영한 길이를 어떻게 구하는지 알아야 한다.
코사인 쎼타의 값은 투영한 길이 / A벡터의 길이 이기 때문에

투영한 길이는 이렇게 표현할 수 있다. 
20080829_001625.png


이렇게 되면 비교되는 각 벡터간 투영된 길이가 나오는데 백터마다 기준 벡터값이 다 다르기 때문에 마지막으로 
투영된 길이를 비교된는 벡터의 크기로 나누어주어 비교 가능하도록 정규화 하는 작업이 필요하다.

이제 사용예를 들어보자


3개의 문서가 주어져 있다.

A
B
C
D
D1
3
2
0
2
D2
1
2
3
0
D3
2
2
2


D1 문서에는 A라는 단어가 3개, B라는 단어가 2개, C라는 단어가 0개, D라는 단어가 2개
D2 문서에는 A라는 단어가 1개, B라는 단어가 2개, C라는 단어가 3개, D라는 단어가 0개
D3문서에는 A라는 단어가 2개, B라는 단어가 2개, C라는 단어가 2개, D라는 단어가 2개

이상태에서 Q문서가 주어지고 Q문서는 D1, D2, D3 문서중 어떤 문서와 가장 유사도가 높은지 구해보자.

Q문서는 A문자가 1개 나오고 B문자가 5개 나오는 문서이다.

Q = { 1, 5, 0, 0 }

풀이법 1 코사인 유사도를 구한다. )
20080829_003246.png


이로 보어 D1 문서가 Q문서와 가장 유사하다고 볼수 있다.



풀이법 2 투영된 길이의 비율을 구한다. ) 

Q문서의 벡터를 각 문서 D1, D2, D3 벡터에 투영된 길이를 각각 R1, R2, R3 이라고 보고 다음과 같이 계산할수 있다.

20080829_004306.png

이 계산된 각 투영된 길이를 기준 문서로 나누어 투영된 길이의 비율을 구한다.
각각 투영된 비율을 r1, r2, r3 이라고 하고 계산해보자.

20080829_004636.png

이렇게 투영된 길이의 비율로 비교를 하니 D2 문서가 Q문서와 가장 유사하다고 결과가 나왔다.




물론 투영된 길이의 비율로 유사도를 측정하는것이 코사인 값만 가지고 유사도를 측정하는것 보다 더 정확할수는 있겠지만
데이터의 성격상 단위 벡터로만 벡터들이 생성된다거나 벡터의 크기 자체가 별로 중요하지 않다고 판단하기도 하고
대용량 데이터를 처리해야 하는 경우 계산 속도의 향상을 위해 코사인 유사도만 가지고 유사도를 측정 할수도 있다.




















1 2 3 4 5 6 7 8 9 10 다음


google_adsense