빅데이터 관련 학습노트 - 00 - 전체 정리
SK 동반성장아카데이 내 '머신러닝의 이해와 실습' 강의 정리
- 1. 정리1. 머신러닝 개요와 데이터전처리
- 2. 정리2. 의사결정트리(Decision Tree)
- 3. 정리 3. 회귀분석(Regression Analysis)
- 4. 정리 4. 군집분석(Clustering Analysis)
- 5. 정리 5. KNN(K-Nearest Neighbor)
- 6. 정리 6. 나이브 베이즈(Naive Bayes)
- 7. 정리 7. SVM(Support Vector Machine)
- 8. 정리 8. 텍스트 마이닝(Text mining)
- 9. 정리 9. 주성분 분석(PCA)과 밀도기반 군집분석(DBSCAN)
- 10. 정리 10. 신경망(Neural Network)
- 11. 정리 11. Word2Vec
- 12. 정리 12. 토픽 모델링(Topic Modeling)
- 13. 정리 13. 랜덤 포레스트(Random Forest)와 에이다부스트(AdaBoost)
- 14. 정리14. 소셜 네트워크 분석(Social Network Analysis)
- 15. 정리 15. 랜덤 포레스트, 나이브 베이즈, Tf-Idf, Word2Vec
- 16. 정리 16. 유전자 알고리즘(Genetic Algorithm)
- 17. 정리 17. 연관규칙분석(Association Rule Analysis)
- 18. 정리 18. 로지스틱 회귀분석(Logistic Regression Analysis)
- 19. 정리 19. 시계열분석(Time Series Analysis)
- 20. 정리 20. 모델 평가 방법 및 심화 이론
1. 정리1. 머신러닝 개요와 데이터전처리
1.1. 머신러닝이란?
-
기계 즉 컴퓨터가 주변의 환경에서 발생하는 데이터를 학습하여 유의미한 패턴과 통계적인 함수를 발견하여 앞으로의 행동의 지침이 되는 지식을 얻어내는 행위
1.2. 머신러닝의 3가지 방법론
감독학습 |
target 값이 있는 데이터인 경우 |
비감독학습 |
target 값이 없는 데이터인 경우 |
강화학습 |
게임의 agent가 스스로 정답이나 목표를 찾아가도록 학습하는 과정 |
1.3. 머신러닝 알고리즘의 범주
-
회귀
-
분류
-
추천
-
대체
1.4. 데이터 전처리 작업
-
데이터 멍밍(Munging)
-
랭글링(Wrangling)
-
Missing Data 처리
-
Outlier 처리 등
2. 정리2. 의사결정트리(Decision Tree)
2.1. 분류 문제의 사용
-
분류 문제를 풀기 위해 Tree 모양의 Map을 만드는 것이 효과적임
-
나무 모양을 만들어내는 알고리즘을 의사결정트리라고 함
2.2. 엔트로피의 이해
-
의사결정트리를 만드는 과정
-
엔트로피가 가장 많이 줄어드는 방법으로 데이터를 나눔
-
다른 속성 기준으로 다시 데이터를 나눔
-
엔트로피가 0이 될 때까지 과정을 반복함
-
-
정보엔트로피를 구하는 공식 : \$sum_{i=1}^{n}p(x_{i})log_{2}p(x_{i})\$
2.3. 의사결정트리
-
의사결정트리 알고리즘의 특징
-
엔트로피 이용
-
지니계수 이용
-
데이터를 나누는 방법에 대한 고민
-
가장 영향력이 큰 속성을 찾는 방법
-
-
카이제곱스퀘어 검정의 용도
-
2개 범주의 데이터를 나눌 때 상관관계가 0에 가까운지 검정하는 '독립성 검정’의 용도로 쓰임
-
3. 정리 3. 회귀분석(Regression Analysis)
3.1. 비용함수를 표현하는 공식
-
Cost Function 공식 : \$sum_{i}(y-y_{i})^{2}\$
3.2. 회귀모형의 종류
-
단순회귀모형
-
다중회귀모형
-
선형회귀모형
-
비선형회귀모형
3.3. 결정계수
-
회귀모형이 현실데이터를 얼마나 잘 설명하는지 평가하기 위해 도입된 지수
-
0 에서 1 사이의 값
3.4. 회귀모형의 신뢰도 평가
-
F값, P-value 결정계수 등의 변수 값으로 평가
4. 정리 4. 군집분석(Clustering Analysis)
4.1. 군집분석의 종류
-
덴드로그램(Dendrogram)
-
K-means(K 평균군집)
-
DBSCAN(Density-Based 군집)
4.2. 계층형과 비계층형 군집
-
계층형
-
가장 가까운 거리의 데이터부터 차례대로 그룹을 이루어 나가면서 최종적으로 하나의 그룹으로 합치는 방식으로 트리 구조를 만드는 방법
-
종류 : 덴드로그램
-
-
비계층형
-
계층형이 아닌 방법
-
종류 : K-means 또는 DBSCAN
-
4.3. K-means의 단점
-
군집이 원의 형태(또는 구)에서 많이 벗어난 경우에는 (예: 길쭉한 형태) 오차가 많이 생기게 됨
-
밀도기반인 군집분석인 DBSCAN을 쓰면 효과적임
4.4. 덴드로그램의 용도와 단점
-
본격적인 군집분석을 하기 전에 대략적인 데이터의 패턴을 보고자 할 때 쓰임
-
메모리를 많이 쓰는 경향이 있어서 컴퓨터가 느려짐
5. 정리 5. KNN(K-Nearest Neighbor)
5.1. KNN의 공식
-
\$y = argmax_{v} \sum_{D_{x}}I(v=y_{i})\$
-
KNN의 공식 X를 중심으로 하는 데이터 집합 \($D_{x}$\) 에서 가장 많은 Lavel을 가지고 있는 v 값을 찾음
5.2. Weighted - KNN의 공식
-
\$$y = argmax_{v} \sum_{D_{x}}I(v = y_{i}) , w_{i} = {1}/{d(x,x_{i})^{2}}\$
-
Unknown lavel에서 거리의 제곱의 역수를 가중치로 하여 거리가 멀수로 가중치를 떨어뜨리도록 모델을 설계함
5.3. KNN의 종류
-
KNN Classifier와 KNN Regressor
-
KNN Classifier : 범주현 데이터 예측
-
KNN Regressor : 연속값 예측
-
target 값에 따라 사용하는 모델이 달라짐
-
옵션은 Weighted의 기능 여부에 따라 4가지로 분류됨
5.4. 데이터 정류화
-
데이터 속성들을 하나의 scale로 통일해야 함
-
가장 많이 쓰이는 방법은 통계학에서 쓰이는 z정규화 방식임
-
\$z_{i} = {x_{i} - avg(x)} / {sigma} , sigma\$는 표준편자 \$avg(x)\$는 x평균
6. 정리 6. 나이브 베이즈(Naive Bayes)
6.1. 베이즈 이론식
-
P(A) * P(B|A) = P(B) * P(A|B)
6.2. 나이브 베이즈 알고리즘
-
P(특정단어)가 나타날 확률은 일일이 구할 수 없으므로 모두 같다고 생각함
-
X문서 = {'단어1', '단어2', '단어3', … } 일 때에 P(X|스팸)인 확률은 서로 독립이라고 가정하고, 단순하게 P('단어1'|스팸) * P('단어2'|스팸) * P('단어3'|스팸) * … 으로 계산함
6.3. 나이브 베이즈의 적용
-
콜센터의 상담전화가 걸려 올 떄에 쓰는 단어들 목록을 보고 유추하여 해당하는 전문상담원을 연결시켜 주는 모델임
-
결혼을 준비 중인 30대 커플들의 선호하느 ㄴ신혼가구들의 분포를 예측하는 모델임
6.4. 감성분석
-
영화 댓글을 판별하여 긍정/부정을 예측하는 모델을 말함
-
텍스트 마이닝의 영역에서 '감정분석’은 나아가 NLP(자연어 처리)까지 발전될 수도 있음
7. 정리 7. SVM(Support Vector Machine)
7.1. Hyper Plane
-
2개의 서로 다른 Class를 구분하는 경계면
7.2. Support Vector(지지 벡터)
-
Hyper Plane에서 최대한 평행으로 양쪽으로 떨어지면서 가장 먼저 데이터와 만나는 지점을 통화하는 벡터
7.3. 커널 함수
\$K(x_{i}, x_{j}) = Phi(x_{i})^{T} Phi(x_{j})\$
7.4. SVM(Support Vector Machine)
-
선형여부
-
선형 SVM
-
비선형 SVM
-
-
target 데이터 종류
-
분류기를 만드는 SVM
-
회귀모형을 만드는 SVR
-
8. 정리 8. 텍스트 마이닝(Text mining)
8.1. TF-IDF의 수식
-
\$TF_{ij} ** IDF_{i} = TFIDF_{ij}\$
8.2. TF와 IDF
-
TF
-
단어의 빈도수이고 해당 문서에서 해당 단어가 나타나는 비율
-
-
IDF
-
역문서 빈도로서 전체 문서에서 해당 단어가 나타나는 문서의 비율의 역수에 log를 취한 값
-
8.3. 한글 현태소 분석기
-
Twitter
-
Komoran
-
꼬꼬마 등
8.4. 텍스트 추출 라이브러리
-
html 이나 xml을 파싱하여 순수한 텍스트를 추출함 - BeautifulSoup 등
9. 정리 9. 주성분 분석(PCA)과 밀도기반 군집분석(DBSCAN)
9.1. PCA의 특징
-
새로운 축은 독립이며 직각임
-
원본 데이터의 차원이 p라면 새롭게 만들어진 데이터의 차원은 k(<p)
-
원본 데이터 X는 U와 V의 곱으로 분리됨
-
U는 데이터를 새로운 차원 k로 설명함
-
V는 원본 차원과 축소 차원의 관계를 설명함
-
정보를 많이 잃어버리지 않고 차원을 축소시킴
9.2. DBSCAN 용어
이웃 벡터 |
반경 \$epsilon\$ 안에 포함된 데이터들 |
핵심 벡터 |
n개 이상의 이웃 벡터를 가짐 |
직접 접근 기능 |
핵심 벡터와 이웃 벡터와의 관계(p → q) |
접근 가능 |
연속적으로 이루어짐
|
9.3. DBSCAN vs k-means
-
밀도기반 vs 거리기반
-
어떤 형태의 군집도 잘 잡는 편 vs 원이나 구 모양에 최적화되어 있음
-
노이즈가 정의됨 vs 노이즈가 정의가 안됨
-
직관적 vs 수학적
-
프로그래밍으로 구현 vs 컴퓨터가 없어도 계산으로 풀 수 있음
9.4. PCA에서의 새로운 차원 k
-
고윳값 분해를 하여 가장 작으면서 분산을 많이 설명할 수 있는 상위 k개의 추상적인 축을 선택
10. 정리 10. 신경망(Neural Network)
10.1. 신경망의 특징
-
신경세포인 뉴런의 동작을 모방함
-
마빈 민스키에 의해 개발됨
-
플랑크 로젠블랑의 이론임
-
신경망의 가중치 행렬에 대한 최적해를 구해야 함
-
Gradient Descent를 사용함
-
Gradient Descent를 구하기 위하여 Back Propagation(오류 역전파) 알고리즘을 사용함
10.2. Gradient Descent 수식
-
\$W_{t + 1} larr W_{t} - lambda ** {delE(W_{t})} / {del W_{t}}\$
-
\$lambda\$는 학습률
-
W행렬은 W에 대한 에러함수의 변화율만큼 움직이면서 W를 갱신함
10.3. 신경망의 단점
-
층이 깊어지면 W가 0에 가까워짐
-
Anish효과나 Explode효과의 발생으로 훈련이 제대로 이루어지지 않음
-
-
오버피팅(Overfitting)이 생김
11. 정리 11. Word2Vec
11.1. Word2Vec의 특징
-
단어를 벡터로 취급함
-
단어 사이의 거리와 방향까지 알 수 있음
-
단어 임베딩의 size를 정함
-
많은 정보를 보여줌
-
더 확장하여 텍스트 간의 거리를 구하는 방법이 연구됨
-
TF-IDF나 BagOfWords의 한계를 극복함
11.2. Skip Gram 알고리즘
-
단어의 주변에 나타나는 단어가 무엇인지 예측하는 신경망
-
최종적으로 나타나는 가중치 행렬은 해당 단어를 나타내는 임베딩 벡터의 모임
11.3. Skip Gram 변수
-
V : 사전의 크기로서 전체 단어들의 개수
-
N : 단어를 표현할 임베딩 벡터의 크기로서 신경망에서 hidden layer의 size
-
Window Size : 주변에 나타나는 단어를 선정할 때 반경
12. 정리 12. 토픽 모델링(Topic Modeling)
12.1. 토픽 모델링의 개요
-
구조화되지 않는 대량의 텍스트로부터 숨겨져 있는 주제구조를 발견하기 위한 통계적 추론 알고리즘
12.2. LDA의 개요
-
문서 같은 데이터의 집합에 대한 Generative Probabilistic Model(생성적 확률모델)
-
Choose N ~ Possion(\$xi\$).
-
Choose \$theta\$ ~ Dir(\$alpha\$).
-
For each of the N words \$W_{t}\$
-
Choose a topic \$Z_{n}\$~Multinomial(\$theta)\$
-
Choose a word \$W_{n}\$ from (\$W_{n} | Z_{n}, beta\$), a mutinomial probability conditioned on the topic \$Z_{n}\$.
-
-
12.3. 토픽 모델링의 주요변수
-
\$beta_{ik}\$ : 단어 사전에서 i번째 단어가 k번째 주제에 해당할 확률
-
\$W_{ik}\$ : i번째 단어이면서 k번째 주제에 해당하는 단어
-
\$Z_{ik}\$ : i번째 단어의 k번째의 주제
-
\$theta\$ : 디리클레 분포에서 추출되는 차원 k를 갖는 주체벡터
-
\$k\$ : 주체(토픽)의 개수
-
\$N\$ : 문서의 길이
13. 정리 13. 랜덤 포레스트(Random Forest)와 에이다부스트(AdaBoost)
13.1. 배깅이란?
-
훈련데이터에서 중복을 허용하여 여러 표본그룹으로 분할하고 각각의 학습 데이터 그룹마다 약한 학습기를 생성하는 방법
-
결과를 취합할 때에는 다수결로 하거나 평균을 냄
13.2. 부스팅이란?
-
가중치에 따라서 학습의 강도를 결정하거나 표본데이터의 크기도 변경하여 애매한 결과가 나오는 모델이나 데이터에 더 집중할 수 있도록 가중치를 변화시키는 방법
-
결과를 취합할 때도 가중치 평균이나 가중치를 투표함
13.3. 랜덤 포레스트의 개요
-
'배깅’의 일종으로 약한 학습기를 '결정트리’로 만드는 경우의 모델임
13.4. 에이다부스트의 개요
-
'부스팅’의 일종으로 난이도가 높거나 오류율이 높은 데이터를 제대로 분류할 수 있도록 약한 핛ㅂ기마다 가중치에 변화를 주어 정확도를 높이는 방법
-
오류율이 높은 데이터는 더 큰 확률로 Resampling되도록 설계
14. 정리14. 소셜 네트워크 분석(Social Network Analysis)
14.1. SNA의 개요
-
네트워크 및 그래프 이론을 사용하여 사회구조를 분석하는 머신러닝의 한 분야임
14.2. 중심성 지수의 정리
-
근접 중심성
-
중개 중심성
-
아이겐벡터(고유벡터) 중심성
14.3. 소셜 네트워크 분석의 적용분야
-
커뮤니케이션
-
사회심리학
-
정치
-
조직학
-
지리학 등
14.4. 그래프의 요소
-
노트와 엣지(연결선)
14.5. 그래프의 종류
-
방향 그래프와 무방향 그래프
15. 정리 15. 랜덤 포레스트, 나이브 베이즈, Tf-Idf, Word2Vec
15.1. 나이브 베이즈 + Tf-idf의 머징 모델
-
Tf-idf의 특성변수가 나이브 베이즈의 입력변수로 들어간 머징 모델임
15.2. 랜덤 포레스트 + Tf-idf의 머징 모델
-
Tf-idf의 특성변수가 랜덤 포레스트의 입력변수로 들어간 머징 모델임
15.3. 랜덤 포레스트 + Word2Vec(doc2vec)
-
텍스트의 특성벡터를 Word2Vec으로 평균을 내어 계산한 다음 이것을 랜덤 포레스트에 입력변수로 넣어서 만든 머징 모델임
16. 정리 16. 유전자 알고리즘(Genetic Algorithm)
16.1. 유전자 알고리즘
-
생물학적 진화와 자연선택의 기본원리에 영감을 얻은 확률적 탐색 알고리즘
-
'자연선택', '염색체 교배', '교차', '변이’와 같은 생물학적 매카니즘을 모방함
16.2. 교차와 변이
-
교차
-
부모염색체가 끊어지는 부분(교차점)을 임의로 선택하고 2개의 부모염색체를 교차시켜서 연결하여 새로운 자식염색체를 만드는 과정
-
-
변이
-
부모염색체의 임의의 셀 부분이 다른 값으로 바뀌어 새로운 자식염색체를 만드는 과정
-
낮은 확률로 허용하는 보조연산자와 같은 기능을 함으로써 지역최적화를 방지하는 기능
-
16.3. 인코딩과 디코딩
-
인코딩
-
문제를 잘 파악하여 구하고자 하는 솔루션의 format을 염색체 형태로 만드는 방법
-
-
디코딩
-
적합도를 구하기 위하여 현실적인 문제 영역으로 보여주는 부분
-
16.4. 적합도 함수
-
문제의 규칙과 제약조건을 잘 정리하여 솔루션(해)이 가져야 하는 상점과 벌점을 중요순위대로 부과하여 전체적인 해의 score를 반환하도록 설계함
-
새로운 해가 환경에 얼마나 잘 적응을 하는지 점수화를 하는 부분임
17. 정리 17. 연관규칙분석(Association Rule Analysis)
17.1. 지지도(Support)와 신뢰도(Confidence)
-
지지도 : 상품 X와 Y를 동시에 구입한 비율
-
신뢰도 : 상품 X를 샀을 때에 상품 Y도 같이 구입된 비율
-
s(X ⇒ Y) = support(지지도) = n(X U Y) / N = P(X U Y)
-
c(X ⇒ Y) = confidence(신뢰도) = n(X U Y) / n(X) = P(Y | X)
17.2. 향상도(Lift)
-
전체 트랜잭션 중에서 물품 Y를 구매한 비율에 비해서 물품 X를 구매했을 때에 Y를 구매한 비율을 비교하여 얼마나 향상되었는지 보는 것
→ 1이면 아무 의미가 없고 절대값이 1도가 클수록 의미가 있는 규칙으로 추출됨
-
Lift(A, B) = \${c(A->B)} / {s(B)}\$
17.3. 어프라이어리 방법론
-
빈발항목 집합을 찾아내는 방법
-
한 항목집합이 빈발 : 그 집합의 모든 부분집합은 빈발항목집합
-
한 항목집합이 비빈발 : 그 항목집합을 포함하는 모든 집합은 비빈발항목집합
-
18. 정리 18. 로지스틱 회귀분석(Logistic Regression Analysis)
18.1. 로지스틱 회귀분석
-
결과값이 P(Y = 1 | X)을 예측하기 때문에 2개의 class를 분류하는 문제에 쓰임
-
확장하면 Multi class도 가능함
18.2. Odds Ratio
-
class가 0과 1이 있다면 1일 확률과 0일 확률의 비를 의미한
-
\${P(Y=1|x)} / {1-P(Y=1|x)}\$ = Odds Ratio
18.3. Odds Ratio를 이용한 로지스틱 회귀분석
-
dds Ratio에 log을 씌운 값이 일반 회귀분석과 같은 수식이 됨
-
ln \${P(Y=1|x)} / {1-P(Y=1|x)} = w^{t}x + b\$
18.4. 인코딩과 디코딩
-
인코딩
-
구하고자 하는 솔루션의 format을 염색체 형태로 만드는 방법
-
-
디코딩
-
적합도를 구하기 위하여 현실적인 문제 영역으로 보여주는 부분
-
18.5. 적합도 함수
-
문제의 규칙과 제약조건을 잘 정리하여 솔루션(해)이 가져야 하는 상점과 벌점을 중요순위대로 부과함
-
전체적인 해의 score를 반환하도록 설계함
-
새로운 해가 환경에 얼마나 잘 적응을 하는지 점수화를 하는 부분임
19. 정리 19. 시계열분석(Time Series Analysis)
19.1. 시계열 패턴의 구성요소
-
추세, 잡음, 계절성
-
\$x_{t} = T_{t} + S_{t} + bb"a"_{t}, bb"a"_{t} ~ N(0, sigma)\$
19.2. 자기상관함수와 교차상관함수
-
자기상관함수
-
같은 변수의 시계열에서 서로 다른 시간대의 데이터끼리 상관관계를 설명함
-
-
교차상관함수
-
다른 변수의 다른 시계열끼리의 상관관계를 설명함
-
19.3. ARIMA의 부분모형
-
AR(자기회귀모형), I(누적모형), MA(이동평균모형)
19.4. 정상성의 조건
-
모든 시점 t에 대하여 평균이 일정하다. \$E(Z_{t}) = u\$
-
분산 Var \$(Z_{t})\$는 시전 t에 의존하지 않는다.
-
두 시점 t, s에서 공분산 Cov \$(Z_{t} Z_{s})\$는 시차 t - s에 의존하지 않는다.
20. 정리 20. 모델 평가 방법 및 심화 이론
20.1. ARMA 모델
-
자기회귀이동평균모형(Auto Regression Movig Average model, ARMA)
-
AR(자기회귀) 모델과 MA(이동평균) 모델이 합쳐진 합성모델임
-
\$Z_{t} = Phi_{1}Z_{t-1} + Phi_{2}Z_{t-2} + ... + Phi_{p}Z_{t-p} + ... + a_{t} - theta_{1}a_{t-1} - theta_{2}a_{t-2} - theta_{3}a_{t-3} - ... - - theta_{q}a_{t-q}, a_{t}\$
=white nosie ~ \$N(0, sigma^{2})\$
20.2. Gradient descent란?
-
\$W^{(tau + 1)} = W^{(tau)} - eta grad E(W^{(tau)})\$
20.3. Layer j의 delta
-
\$delta_{j} = {del E_{n}} / {del Z_{j}}\$
20.4. ROC 챠트
-
x축을 FP rate로 하고 y축을 TP rate로 하여 곡선을 그림
-
Curve의 밑면적을 AUC라고 하는데 이 면적이 넓을수록 신뢰성이 강한 모델임
-
Curve의 모양이 좌측 상단으로 치우칠수록 좋은 모델임
Twitter
Google+
Facebook
Reddit
LinkedIn
StumbleUpon
Email