차원 축소: PCA (Principle Component Analysis)와 SVD (Singular Value Decomposition)
PCA | SVD |
고유벡터 Eigen Value (크기 변환) | 특이값 Singular Value (방향 변환) |
선형 변환 시 방향 불변 | 선형 변환 시 방향 변환 |
선형 변환 시 크기 (양=길이) 변환 | 선형 변환 시 크기 (양=길이) 불변 |
정방 행렬 m x m | 직사각형 행렬 m x n |
데이터의 공분산 기반 | 데이터 행렬의 rank 기반 |
SVD의 경우 지역 최적 해를 찾는 방법을 적용하여 차원을 축소하는 것이 아니다.
K-Nearest Neighbor Classifier
LSH(Locality Sensitive Hashing)
고차원을 저차원으로 바꾼다.
LSH의 핵심은 벡터간 유사성이 보존되도록 해시(hash)를 하는 것
카운트 기반의 단어 표현 Count-based Word Representation
Bag of Words.
단어들의 순서는 고려하지 않고 단어들의 출현 빈도에만 집중.
등장횟수를 수치화하는 텍스트 표현 방법.
문서가 어떤 성격의 문서인지를 판단/분류하는 문제에 사용.
여러 문서 간의 유사도 파악에 사용.
문서 단어 행렬 DTM. Document-Term Matrix
다수의 문서에서 등장하는 각 단어들의 빈도를 행렬로 표현한 것.
각 문서에 대한 BoW를 하나의 행렬로 만든 것.
즉, BoW 표현을 다수의 문서에 대해서 행렬로 표현한 것.
단어 빈도 - 역 문서 빈도. TF-IDF. Term Frequency - Inverse Document Frequency.
DTM 내의 각 단어들마다 중요한 정도를 가중치로 주는 방법.
문서 유사도, 검색 결과 중요도, 문서 내 특정 단어 중요도 계산 등.
- 단어 빈도 (TF): DTM에서 각 단어들이 가지는 값. 각 단어의 등장 빈도값.
- 문서 빈도 (DF): 특정 단어가 등장한 문서의 수.
- 역 문서 빈도 (IDF) = log( N / 1 + DF )
DF에 1을 더하는 이유: 분모가 0이 되는 상황을 방지.
로그는 자연 로그, 상용 로드 등 사용자가 임의로 밑을 지정하면 되는데, 대부분 자연로그 사용.
N 은 문서의 총 갯수.
벡터 유사도 Vector Similarity
문서 유사도를 계산하기 위한 방법들에는 코사인 유사도, 유클리드 거리 등이 있습니다.
코사인 유사도 Cosine Similarity
두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도.
- 두 벡터의 방향이 동일한 경우 = 1
- 두 벡터가 직각 = 0
- 두 벡터의 방향이 반대 = -1
문서 길이가 길어서 유사도가 높아지는 문제 ㅡ>
코사인 유사도는 문서의 길이가 다른 상황에서 공정한 비교가 가능. 벡터의 크기가 아니라 벡터의 방향에 초점을 두기 때문.
<코사인 유사도 계산 예시>
벡터 a = (1,0,0)
벡터 b = (0,0,1)
벡터 a 와 벡터 b 의 코사인 유사도는 두 벡터의 사잇각 세타로 측정할 수 있다.
사잇각 세타가 작으면 데이터 유사도가 높고 코사인 세타의 값이 크다.
사잇각 세타가 크면 데이터 유사도가 낮고 코사인 세타의 값이 작다.
두 벡터의 사잇각은 벡터의 내적으로 정의된다.
벡터 a와 벡터 b의 코사인 유사도 = cos 세타 = 벡터 a 와 벡터 b 의 내적 / 벡터 a 의 길이 * 벡터 b 의 길이
벡터의 내적 계산은 a1b1 + a2b2 + a3b3 으로 계산된다.
여기서는 1*0+0*0+0*1 =0 이다.
벡터 a의 길이는 (1^2+0^2+0^2)의 루트값이다. 즉, 1이다.
벡터 b의 길이도 1이다.
그래서 이 예시에서 두 벡터의 코사인 유사도는 0 / 1 * 1 = 0 이 된다.
자카드 유사도 Jaccard Similarity
J ( A , B ) = A 교 B / A 합 B
두 집합의 교집합 크기를 두 집합의 합집합 크기로 나눈 값.
토픽 모델링 Topic Modeling
문서 집합의 추상적인 주제를 발견하기 위한 통계적 모델.
텍스트 본문의 숨겨진 의미 구조를 발견하기 위해 사용되는 텍스트 마이닝 기법.
단어 빈도 수를 이용한 수치화 방법들은 단어의 의미를 고려하지 못한다는 단점이 있는데, 이것을 고려한 것이 토픽 모델링 입니다.
대각 행렬 Diagonal Matrix
주대각선을 제외한 곳의 원소가 모두 0인 행렬.
잠재 디리클레 할당 LDA. Latent Dirichlet Allocation.
- 한 단어가 갖는 토픽별 확률값은 초기에 동일한 값으로 설정되지 않는다. 단어 순서 고려 안함. 사전에 토픽 개수 결정해야함(하이퍼 파라메터). 모든 단어를 k개의 토픽 중 하나에 할당한 후, (1)과 (2)를 반복수행.
(1) 자신은 잘못된 토픽에 할당되었지만 다른 단어는 전부 올바른 토픽에 할당된 상태라고 가정한다.
(2) 문서의 단어들이 어느 토픽에 해당하는지 확인, 해당 단어가 전체 문서에서 어떤 토픽에 해당하는지 확인, 이 두가지(문서별 토픽 분포, 토픽별 단어 분포)를 참고해서 단어를 토픽에 할당.
- EM기법으로 최적화 한다.
- LDA는 모든 잠재변수를 추론하기 위해 샘플링 기술을 사용한다. Gibbs Sampling 방법은 MCMC. Markov Chain Monte Carlo 알고리즘의 하나로, 주어진 단어에 대한 특정 토픽 확률을 전체 컬렉션의 나머지 단어가 가지는 토픽에 의거하여 결정.
EM기법 = EM 알고리즘 = Expectation Maximization
- E 단계: 파라메터 추정치 요구
- M 단계: 파라메터 추정치 수정
- 결과가 최선값은 아니다.
개체명 인식. NER. Named Entity Recognition.
ㅡ 텍스트에서 이름을 가진 개체 Named Entity 를 인식하기. 단어를 보고 어떤 유형인지 인식하기.
ㅡ NER의 전처리 과정 = 품사 정보 입력. POS Tagging. Part-Of-Speech Tagging.
Markov Decision Process
참고설명출처: https://youtu.be/DbbcaspZATg
ㅡ 개념 설명: Decision = action, Process = 여러 개의 action들, s는 state. s0 : 시작 state. a는 action. a0 : s0에서 행한 action. s0 + a0 -> s1. s1 + a1 -> s2.
ㅡ 중요 성질 (1) (정책;Policy 관련) state와 action 모두 random variable 이다. 분포를 가지고 있다. continuous하면 pdf , discrete 하면 pmf (probability mass function). s0이라는 상황에서 a0이라는 액션을 취해서 s1이라는 상황으로 넘어왔을때 a1의 확률은, s0과 a0은 필요없다. s1만 알면 s0과 a0는 포함되어 있다. 즉 s1 이라는 상태에서 a1이라는 액션을 할 때의 확률 분포는 표현해보자면 P( a1 | s0, a0, s1) = P(a1 | s1 ) 이 된다. *Policy란? 예를 들어 어떤 s1 이라는 상태에서 a1이라는 액션을 할 때의 확률 분포가 '정책'이다. P(Action | State) = Policy.
ㅡ 중요 성질 (2) (이동/천이 확률;transition probability 관련) P( s2 | s0, a0, s1, a1) = P( s2 | s1, a1 ) 이 된다. 확률은 바로 전 단계의 상태와 액션에만 영향을 받는다. 바로 전 단계의 상태와 액션에 그 전전 단계의 정보가 다 들어있기 때문에. 바로 전 단계 정보가 있다면 전전 단계 정보는 지워져도 된다.
ㅡ Expected Reward/Return Maximization:
Return Gt = sum of discounted reward
Rt = a_t 라는 액션을 행한 후의 보상.
action, state 도 random 이므로 reward 도 random 이여서 평균값을 취하게 되므로 expected return이다.
협업 필터링 Collaborative Filtering
ㅡ 코사인 측정치, 피어슨 측정치가 자주 사용된다.
ㅡ 사용자 간의 평점 (Rating) 기록(History)의 유사도를 측정한다.
회귀분석에서의 Feature Selection
ㅡ 선형 회귀: feature 간의 값들이 선형상관계수가 강하면 둘 중 하나는 feature로 선택하지 않는다.
ㅡ 로지스틱 회귀: 특정 feature 값을 분류 label 별로 구분 후, t 검정 수행 하여, 유의미한 차이가 없다면 feature로 선택하지 않는다.
근접Proximity 기반 아웃라이어 탐지
ㅡ 물리적인 유클리드 거리를 정의할 수 없는 경우에도 사용할 수 있다.
ㅡ 밀도 기반 방법도 있다.
ㅡ R-neighborhood (거리가 R 이내인 객체들의 집합) 사용 시, 거리 기반 방법의 시간 복잡도는 O(n^2) 이다. 단, 이상치가 많지 않으면 O(n)시간 안에 끝난다.
'IT,SW,Data,Cloud,코딩' 카테고리의 다른 글
의사결정트리: 엔트로피, 정보이득, 지니계수, 카이제곱스퀘어 (0) | 2022.01.25 |
---|---|
도커, 컨테이너, 쿠버네티스, 마이크로서비스, 데브옵스 (0) | 2022.01.20 |
클라우드 서비스의 개념과 종류, 그리고 클라우드 아키텍쳐의 구조 (0) | 2022.01.13 |
빅데이터분석기사 필기 합격 (0) | 2021.11.14 |
빅데이터분석 이론 공부: 시계열 분석 등 (0) | 2021.10.06 |
비모수 검정: Mann-Whitney U Test 외 (0) | 2021.10.01 |
빅데이터분석기사 필기 시험준비 - 나만의 암기포인트 (0) | 2021.09.30 |
머신러닝 초보자를 위한 강의와 책 추천 (0) | 2021.08.26 |
댓글