-
[BDA x 영진닷컴] ADsP 둘째주 스터디ADsP스터디 2024. 4. 8. 16:48
2주 차(2024.04.02 ~ 2024.04.08)
p.202 ~ 244
[PART 03]
chapter 03 정형 데이터 마이닝
스터디 느낀점 : 지난주에 비해 분량이 적어 이해하기 어려운 개념들에 대해 조금 더 자세하게 이해하고 정리하기 위한 시간이 늘어날 수 있었고, Zoom 미팅 스터디를 통해 조장님처럼 중요하다 여겨지는 개념들을 다른 사람에게 설명하는 방식으로 공부하면 스스로 암기를 하는데에 있어서도 도움이 될 거 같아 다음 주차 스터디를 할 때에는 활용을 해 볼 생각입니다.
스터디 내용:
01. 분류 분석
데이터 마이닝은 대용량 데이터로부터 의미있는 패턴, 관계, 규칙 등을 파악하거나 예측하여 의사결정에 활용하는 방법으로 통계 분석은 가설이나 가정에 따른 분석이나 검증을 하지만, 데이터 마이닝은 다양한 알고리즘을 이용해 데이터 베이스의 데이터로부터 의미 있는 정보를 찾아내는 것이다.
데이터 마이닝은 지도학습과 비지도학습으로 나눌 수 있다.
먼저 지도학습 방법 알고리즘부터 살펴보자.
1) 로지스틱 회귀 모형 : 독립변수(설명변수)가 수치형 데이터이고, 종속변수(반응변수)가 범주형인 경우 적용되는 회귀 분석 모형
- 독립 변수가 주어질 때 종속변수의 각 범주에 속할 확률이 얼마인지를 추정하는 분류 목적으로 활용하며, 일반적으로 종속변수가 참/거짓, 성공/실패, 환자/정상, 사망/생존, 합격/불합격 등 두 가지 값만 가지는 경우에 적용된다.
** 이진 분류 모델을 다루는 데 자주 사용
- 로지스틱 회귀 모델은 입력 변수의 선형 결합을 사용하여 이진 결과를 예측하는데, 이 예측된 결과를 시그모이드 함수를 통해 확률로 변환한다.
시그모이드 함수는 S자 형태의 곡선을 가지며, 입력 변수의 범위를 0에서 1 사이의 값으로 압축시키는 역할을 한다.
- 로지스틱 회귀 모델에서 오즈비(Odds Ratio)는 중요한 개념이다.
오즈비는 성공 확률과 실패 확률 간의 비율을 나타내 이를 활용해 이진 분류 모델에서 예측된 확률을 표현할 수 있다.
로지스틱 회귀 모델에서는 입력 변수의 선형 결합을 로짓 함수(Logit function)에 적용한다.
로짓 함수는 오즈비를 계산하는 함수로, 확률을 오즈비로 변환한다.
로지스틱 회귀 모델에서는 입력 변수들의 선형 결합을 로짓 함수에 적용한 후, 이를 시그모이드 함수에 넣어 확률로 변환한다.
이렇게 하면 입력 변수들과 성공 확률 간의 관계를 모델링할 수 있다.
2) 인공신경망: 인간의 뇌 구조를 기반으로 한 추론 모델
- 입력층, 은닉층, 출력층 3개의 층으로 구성되며, 각각의 층에는 뉴런이 여러 개 포함되어 있고, 각 뉴런은 가중치(weight)가 있는 링크로 연결되어 있으며, 학습 과정을 수행하면서 입력에 대한 올바른 출력이 나오도록 가중치를 조절하는 학습 알고리즘이다.
** 복잡한 비선형 관계에서도 유용하게 사용될 수 있으며, 이상치 잡음에 민감하게 반응하지 않는다.
- 인공 신경망은 가중치 변수를 초기화하고 훈련 데이터를 통해 학습하는 과정에서 반복적으로 가중치를 조정(갱신)해나가며 인공 신경망 모델을 생성하며 뉴런은 여러 입력 신호를 받지만, 출력 신호는 오직 하나만 생성한다.
은닉층의 노드가 너무 많으면 과적합, 너무 적으면 과소적합 문제가 발생할 수 있고 최적의 모델을 생성하기 위해 경사하강법으로 학습 과정에서 모델의 기울기가 낮은 방향으로 계속 이동시켜 가면서, 가중치 변수에 대해 최적의 값에 이를 때까지 반복한다.
- 인공 신경망 모델에서 활성화 함수는 매우 중요한 구성 요소이다.
활성화 함수는 입력 신호의 가중 합을 받아들여 이를 비선형으로 변환하는 함수로 이 비선형성은 신경망이 복잡한 함수를 학습하고 다양한 패턴을 표현할 수 있도록 도와준다.
일반적으로 사용되는 활성화함수는 여러 종류가 있지만, 가장 널리 사용되는 것 중 하나는 ReLU함수로 ReLU함수는 입력이 0보다 크면 그대로 출력하고, 0 이하면 0으로 출력한다.
이 외에도 시그모이드 함수, 하이퍼볼릭 탄젠트 함수, Leaky RELU 등 다양한 활성화 함수가 있다.
- 인공 신경망 모델에서 기울기 소실 문제는 주로 역전파 과정 중에서 발생하는 현상이다.
역전파는 손실 함수를 최소화하기 위해 신경망의 가중치를 조정하는 과정인데, 이 과정에서 기울기가 입력층으로 전파되나 심층 신경망에서는 이 기울기가 역전파되면서 점차적으로 사라지는 현상이 발생할 수 있는데 이것이 바로 기울기 소실 문제이다.
기울기 소실 문제를 해결하기 위해서는 다른 활성화 함수를 사용하거나, 정규화 기법, ResNet과 같은 아키텍처에서 스킵 연결을 사용하여 기울기가 직접 전달되도록 함으로써 기울기 소실 문제를 해결할 수 있다.
- 신경망에서 순전파와 역전파는 모델을 학습시키는데 중요한 단계이다.
순전파는 입력 데이터가 신경망을 통과하여 출력까지 전달되는 과정을 말하며, 입력 데이터는 각 층의 뉴런에 가중치가 곱해지고 편향이 더해진 후 활성화 함수를 거쳐 다음 층의 뉴런으로 전달된다.
이 과정은 입력층에서 시작하여 출력층까지 진행되고 마지막 출력층에서는 모델이 예측한 값을 출력한다.
역전파는 순전파 과정에서 얻은 결과와 실제 값 사이의 오차를 계산하고, 이 오차를 이용하여 신경망의 가중치와 편향을 조정하는 과정으로 역전파는 손실 함수의 기울기를 계산하고, 이를 사용하여 각 가중치와 편향에 대한 기울기를 계산한다.
이러한 기울기는 경사 하강법과 같은 최적의 알고리즘을 사용하여 가중치와 편향을 업데이트하는 데 사용되고 역전파는 출력층에서 시작하여 입력층까지 거꾸로 진행된다.
** 경사하강법은 기계 학습 및 최적화 알고리즘에서 매우 중요한 역할을 하는 최적화 기법 중 하나로 손실 함수를 최소화하기 위해 모델의 파라미터(가중치 및 편향)를 조정하는 데 사용된다.
3) 의사결정나무 모형 : 수집된 데이터를 의사 결정 규칙에 따라 나무의 줄기와 잎 구조로 나타내어 여러 개의 소집단으로 분류 또는 예측할 수 있도록 모델을 생성한 다음, 새로운 데이터가 의사결정 나무 모델에 입력되었을 때 분류 또는 예측 결과를 도출하는 알고리즘
- 의사결정나무는 기계학습에서 매우 인기있는 분류 및 회귀 모델 중 하나로 여러 특징을 가지고 있다.
먼저 의사결정나무는 직관적이며 해석이 쉬워 비전문가도 모델의 결과를 이해하기 쉽다.
또한 의사결정나무는 입력 변수와 출력 변수 사이의 비선형 관계를 모델링할 수 있어 복잡한 데이터를 다룰 때에도 유용하다.
의사 결정나무는 입력 변수 중 가장 중요한 변수를 자동으로 선택하여 분할 기준으로 사용해 모델을 구축하는 데 필요한 사전 지식이 적다는 장점이 있다.
의사결정나무는 범주형 변수와 연속형 변수를 모두 처리할 수 있으며, 데이터의 스케일링이나 정규화가 필요하지 않다.
- 의사결정나무 알고리즘은 CART, C5.0, CHAID 등 다양한 방법으로 구현될 수 있지만, 가장 널리 사용되는 알고리즘 중 하나는 CART 알고리즘이다. CART 알고리즘은 분류 및 회귀 문제 모두에 적용될 수 있는 유연한 알고리즘이다.
- 의사결정나무에서는 분할 또는 분리 기준을 사용하여 데이터를 여러 개의 하위 그룹으로 나눈다.
이러한 분리 기준은 특정 기준에 따라 데이터를 분할하여 각 분할이 최대한 순수하게 되도록 하며 주로 사용되는 분리 기준에는 다음과 같은 것들이 있다.
1. 엔트로피(Entropy):엔트로피는 정보 이론에서 사용되는 개념으로, 분할 전후의 불확실성을 측정
엔트로피 값이 작을수록 순수도가 높고, 불순도는 낮다.(= 동일한 성실의 데이터끼리 잘 분류되었다.)
의사결정나무는 엔트로피를 최대한 감소시키는 방향으로 데이터를 분할한다.
2. 정보 획득(Information Gain): 정보 획득은 분할 전후의 엔트로피 차이를 측정하는 지표.
정보 획득이 큰 분할이 좋은 분할로 간주된다.(=정보 획득량은 불확실성이 얼마나 줄었는지를 의미)
의사결정나무는 정보 획득을 최대화하는 방향으로 데이터를 분할한다.
3. 지니 계수(Gini Index): 지니 계수는 각 분할에서의 불순도를 측정하는 지표
불순도가 낮을 수록 지니 계수도 작아진다.(= 지니 계수가 0이면 불확실성이 0이라는 것을 의미, 지니 계수가 0.5일 때 최대로 데이터가 반반씩 섞여 있는 경우를 의미)
의사결정 나무는 각 분할에서 지니 계수를 최소화하는 방향으로 데이터를 분할한다.
- 앙상블 기법 : 여러 개의 예측 모형을 만든 후 예측모형들을 조합하여 하나의 최종 예측모형을 만드는 방법
여러 모델에 의한 결과를 종합하여 분류 및 회귀 정확도를 계산하며, 적절한 표본 추출법으로 데이터에서 여러 개의 훈련 집합을 구성한 다음, 각 훈련 집합에서 하나의 모델을 구성하여 이를 앙상블한다.
- 배깅은 앙상블 학습의 한 형태로, 여러 개의 독립적인 분류기나 회귀 모델을 병렬로 학습하고, 각 모델의 예측을 결합하여 최종 예측을 수행하는 기법으로 주로 분산 학습과 과적합을 줄이는 데 사용된다.
반복 추출 방법을 사용하므로 같은 샘플이 한 표본에 여러 번 추출되거나 어떤 샘플들은 추출되지 않을 수도 있다.
- 부스팅은 여러 개의 약한 학습기를 순차적으로 학습하여 강력한 학습기를 구축하는 기법으로 부스팅은 각 모델을 이전 모델의 오차에 집중하여 학습하며, 이전 모델이 잘못 분류한 샘플에 더 많은 가중치를 부여하여 학습을 진행한다.
부스팅은 약한 학습기를 사용하여 강력한 모델을 구축하기 때문에 높은 정확도와 일반화 성능을 제공한다. 또한 각 모델을 순차적으로 학습하기 때문에, 잘못된 예측에 대해 더 집중할 수 있어서 성능을 향상시키는데 효과적이다.
- 스태킹은 여러 개의 다른 기계 학습 모델들을 조합하여 최종 예측을 수행하는 기법이다.
스태킹은 전문가들 사이에서 많은 인기를 얻고 있으며, 데이터 과학 대회나 실제 산업 프로젝트에서도 효과적으로 사용되나 모델 조합 및 하이퍼파라미터 튜닝 등의 복잡한 과정이 필요하기 때문에 시간과 노력이 많이 필요하다.
- 랜덤 포레스트는 여러 개의 의사결정나무를 사용하여 분류 또는 회귀 문제를 해결하는 알고리즘이며 여러 특징이 있다.
1. 앙상블 학습 : 랜덤 포레스트는 여러 개의 결정 트리를 조합하여 강력한 앙상블 모델을 형성하고 각 결정 트리는 별도의 훈련 데이터를 기반으로 학습되며, 이를 통해 모델 간의 다양성을 확보하고 예측의 일반화 성능을 향상 시킨다.
2. 부트스트랩 샘플링 : 랜덤 포레스트는 부트 스트랩 샘플링을 사용하여 원본 데이터 셋으로부터 중복을 허용하여 여러 개의 훈련 데이터 샘플을 생성해 학습에 사용한다.
3. 랜덤 특성 선택 : 각 결정 트리를 학습할 때 랜덤하게 선택된 특성들만을 사용하여 분할을 수행해 결정 트리들 간의 상관성을 줄이고 다양성을 높여줌으로써 모델의 성능을 향상 시킨다.
4. 앙상블 예측 : 랜덤포레스트는 각 결정 트리의 예측 결과를 모아 다수결 또는 평균을 계산하여 최종 예측을 수행한다.
분류 문제의 경우 가장 많은 투표를 받은 클래스가 최종 예측 결과가 되며, 회귀 문제의 경우 평균이 최종 예측값이 된다.
랜덤 포레스트는 데이터셋의 크기와 차원에 관계없이 효과적으로 작동하며, 일반적으로 과적합에 강하고 안정적인 성능을 제공한다.
4) 모델 평가: 혼동행렬은 분류기의 성능을 평가하는 방법 중에 하나로서, A라는 클래스를 A라고 제대로 예측한 경우와 그렇지 않은 경우가 얼마나 많은지 세어보는 것
- 주로 이진 분류의 경우에 사용되며, 실제 클래스와 예측된 클래스 간의 결과를 2x2행렬로 나타내며 일반적으로 다음과 같은 4개의 요소로 구성된다.
1. True Positives(TP) : 실제 값이 Positive이고 모델이 Positive로 예측한 경우의 수
2. False Positives(FP) : 실제 값은 Negative이지만 모델이 Positive로 잘못 예측한 경우의 수 (Type 1 Error)
3. False Negatives(FN) : 실제 값이 Positive이지만 모델이 Negative로 잘못 예측한 경우의 수 (Type 2 Error)
4. True Negatives(TN): 실제 값이 Negative이고 모델이 Negative로 예측한 경우의 수
혼동 행렬은 다양한 분류 모델의 성능을 평가하고 비교하는 데 사용된다.
이를 통해 정확도, 정밀도, 재현율, F1 점수 등의 성능 지표를 계산할 수 있다.
- 정확도는 분류 모델의 성능을 나타내는 지표 중 하나로, 전체 예측 중 올바르게 분류된 샘플의 비율을 의미한다.
정확도는 모델의 전체적인 성능을 측정하는 지표이며, 높은 정확도는 모델이 얼마나 잘 예측하는지를 나타내지만 불균형한 분포를 가진 데이터셋에서는 정확도만으로 모델의 성능을 평가하는 것은 부적절할 수 있어 정확도를 평가할 때는 데이터셋의 클래스 분포와 관련된 다른 지표들을 함께 고려하는 것이 중요하다.
이러한 지표에는 정밀도, 재현율, F1점수 등이 있다.
- 재현율 또는 민감도는 분류 모델의 성능을 나타내는 지표 중 하나로, 실제 Positive인 샘플 중에서 모델이 올바르게 Positive로 예측한 비율을 의미한다.
즉, 실제로 양성인 샘플 중에 모델이 얼마나 많은 샘플을 식별할 수 있는지를 측정한다. ( TP/(TP+FN))
재현율은 주로 실제 양성을 높히지 않는 데 중점을 두어 재현율이 높을수록 모델이 양성 클래스를 식별하는 데 더욱 효과적이라고 할 수 있다.
그러나 재현율은 모델이 음성 클래스를 잘못 분류하는 비율을 고려하지 않으므로, 데이터셋의 클래스 불균형이 있을 때는 다른 지표와 함께 고려해야 한다.
- 정밀도는 분류 모델의 성능을 나타내는 지표 중 하나로, 모델이 Positive로 예측한 샘플 중에서 실제로 Positive인 샘플의 비율을 의미한다.
즉, 모델이 Positive로 예측한 것 중에서 얼마나 많은 샘플이 실제 양성인지를 측정한다. (TP/(TP+FP))
정밀도는 모델이 Positive로 예측한 결과 중에서 실제로 양성인 비율을 측정하므로, 모델의 예측이 양성일 때 정확하게 예측하는 능력을 나타내 높은 정밀도는 모델이 Negative 클래스를 잘못 분류하는 경우를 줄이는데 도움이 되며, 따라서 불필요한 오류를 최소화할 수 있다.
정밀도는 주로 모델이 올바르게 식별한 결과의 신뢰성을 측정하는 데 사용된다.
ex) 스팸 메일 필터링
- 특이도는 분류 모델의 성능을 나타내는 지표 중 하나로, 실제 Negative인 샘플 중에서 모델이 올바르게 Negative로 예측한 비율을 의미한다.
즉, 모델이 Negative로 예측한 것 중에서 얼마나 많은 샘플이 실제로 음성인지를 측정한다. (TN/TN+FP)
특이도는 모델이 Negative로 예측한 결과 중에서 실제로 음성인 비율을 측정하므로, 모델의 예측이 Negative일 때 정확하게 예측하는 능력을 나타낸다.
높은 특이도는 모델이 Positive 클래스를 잘못 분류하는 경우를 줄이는 데 도움이 되며, 따라서 거짓 양성 비율을 최소화할 수 있다.
- F1 점수는 정밀도와 재현율의 조화 평균을 나타내는 분류 모델의 성능 지표이다.
F1 점수는 정밀도와 재현율 사이의 균현을 제공하며, 불균형한 클래스 분포를 가진 데이터셋에서 모델의 성능을 종합적으로 평가하는 데 유용하다. (2*정밀도 * 재현율) / (정밀도 + 재현율)
F1 점수는 정밀도와 재현율이 모두 높을수록 높은 값을 갖기에 F1점수는 정밀도와 재현율이 균형을 이룰 때 가장 높은 값을 갖게 된다.
F1점수는 클래스 불균형이 있는 경우에 모델의 성능을 평가하는 데 유용하다.
예를 들어, 이상 탐지나 희귀 질병 진단과 같이 한 클래스가 다른 클래스에 비해 훨씬 더 드문 경우에는 F1 점수가 중요한 지표가 될 수 있다.
F1 점수는 모델의 예측이 양성 및 음성 클래스 모두에 대해 잘 수행되는지를 평가하므로, 모델의 성능을 종합적으로 이해하는 데 도움이 된다.
- 정밀도와 재현율은 분류 모델의 성능을 평가하는 두 가지 중요한 지표이다.
이 두지표는 서로 반비례하는 경향이 있으며, 이를 조합하여 모델의 성능을 더 잘 이해할 수 있다.
- ROC 곡선은 이진 분류 모델의 성능을 시각적으로 평가하는데 사용되는 도구이다.
이는 분류 모델의 임계값을 변경함에 따라 모델의 민감도(재현율)와 1에서 특이도의 값을 나타내는 곡선으로 다음과 같은 특징을 가진다.
1. x축 : 거짓 양성 비율(FPR)또는 1에서 특이도의 값을 나타낸다.
FPR은 잘못된 양성 예측을 비율로, 실제 음성 샘플 중에서 모델이 양성으로 잘못 예측한 비율이다.
2. y축 : 참 양성 비율(TPR) 또는 모델의 재현율 값을 나타낸다.
TPR은 실제 양성 샘플 중에서 모델이 양성으로 올바르게 예측한 비율이다.
ROC 곡선은 임계값을 변경함에 따라 모델의 TPR과 FPR이 어떻게 변하는지를 보여준다.
일반적으로 모델이 더 좋은 성능을 보일수록 ROC 곡선은 좌상단 모서리로 향하게 되고 이 곡선 아래의 면적(AUC)은 모델의 성능을 요약하는 지표로 사용하게 된다.
AUC가 1에 가까울수록 모델의 성능이 우수하며, 0.5에 가까울수록 무작위 예측과 유사한 모델을 의미한다.
ROC 곡선은 클래스 불균형이 있는 데이터셋에서 모델의 성능을 평가하는 데 유용하며, 모델 간의 비교나 최적의 임계값을 결정하는데 도움이 된다.
5) 교차 검증 : 모델에 대한 일반화 오차에 대해 신뢰할 만한 추정치를 구하기 위해서 훈련 데이터 및 평가 데이터를 기반으로 하는 검증 기법을 의미
- 홀드 아웃 교차 검증은 기계 학습 모델의 성능을 평가하기 위한 검증 방법 중 하나이다.
이 방법은 데이터 셋을 두 부분으로 나누고, 하나는 모델을 학습하는 데 사용하고, 다른 하나는 모델을 평가하는 데 사용한다.
홀드 아웃 교차 검증은 간단하고 직관적이며 계산 비용을 낮은 장점이 있으나 데이터의 일부를 테스트로 유지하기 때문에 전체 데이터셋에 대한 모델의 일반화 능력을 정확하게 평가하기 위해서는 충분한 양의 데이터가 필요하며 단일 분할에 따라 평가 점수가 변동될 수 있으므로, 여러 번 반복하여 평균을 취하는 것이 좋다.
- K-Fold 교차 검증은 기계 학습 모델의 성능을 평가하기 위한 검증 방법 중 하나이다.
이 방법은 데이터셋을 K개의 서로 다른 폴드(fold)로 나누고 각 폴드를 한 번씩 테스트 셋으로 사용하여 모델을 K번 평가하는 방식으로 동작한다.
K-Fold 교차 검증은 모든 데이터를 테스트에 사용하므로 전체 데이터셋에 대한 모델의 성능을 더 정확하게 평가할 수 있으며 단일 데이터 분할에 의존하지 않으므로 모델의 일반화 성능을 더 잘 추정할 수 있다.
그러나 K-Fold 교차 검증은 계산 비용이 더 높고 더 많은 시간이 소요될 수 있으며 데이터셋의 크기가 작을 때는 K의 값이 너무 큰 경우에는 적합하지 않을 수 있다.
- Leave-One-Out 교차 검증은 K-Fold 교차 검증의 특수한 경우로, 폴트의 수(K)를 데이터 포인트의 개수와 같게 설정하는 교차 검증 방법이다.
즉, 각 반복에서 하나의 데이터 포인트를 테스트셋으로 사용하고 나머지 데이터 포인트를 학습 셋으로 사용하여 모델을 평가한다.
- 부트스트랩은 통계적 추정이나 모델의 평가를 위해 사용되는 샘플링 기법 중 하나이다.
이 방법은 원본 데이터셋으로부터 복원 샘플링(중복을 허용한 샘플링)을 통해 여러 개의 부트스트랩 표본을 생성하고, 이를 사용하여 추정치나 모델의 분포를 계산한다.
부트스트랩은 원본 데이터셋에 대한 가정 없이 표본 분포를 추정할 수 있으므로, 모델의 불확실성을 더 정확하게 파악할 수 있는 장점이 있으며 비모수적인 방법으로 모델의 신뢰구간을 계산할 수 있으며, 모델의 안정성을 평가하는 데 유용하다.
- 계층별 k-겹 교차 검증은 기계 학습 모델의 성능을 평가하는 데 사용되는 교차 검증 방법 중 하나로 데이터 셋을 k개의 폴드로 나누는 K-Fold 교차 검증과 유사하지만, 클래스별 비율을 유지하는 점이 다르다.
계층별 k-겹 교차 검증은 클래스 불균형이 있는 데이터셋에서 모델의 성능을 평가하는데 유용하다.
이 방법을 사용하면 각 폴드에 모든 클래스가 골고루 포함되므로, 모델이 특정 클래스를 무시하거나 과소평가하는 경우를 방지할 수 있어 클래스 불균형이 있는 데이터셋에서 모델의 성능을 공정하게 평가하는 데 사용된다.
02. 군집 분석
1) 군집 분석: 유사도가 높은 집단을 분류하고 군집에 속한 객체 간의 유사도와 다른 군집에 속한 객체간의 차이점을 규명하는 분석방법
유사도는 군집의 개수나 구조에 대한 가정 없이 일반적으로 거리를 주로 이용하며, 유사도를 이용하여 분석 대상을 몇 개의 군집으로 분류한다.
- 군집 분석의 목적은 데이터를 유사한 특성이나 패턴을 가진 그룹으로 나누는 것으로 이러한 그룹은 데이터 내의 내재적인 구조를 발견하고 이해하는 데 도움이 된다.
- 데이터 수집 > 데이터 전처리 > 특성 선택 또는 추출 > 군집 분석 알고리즘 선택 > 군집 결과 해석 > 결과 시각화
2) 계층적 군집화 : 각 관측지를 하나의 최초 군집으로 지정한 후, 한 번에 두 개씩 하나의 군집으로 만들어, 모든 군집들이 하나의 군집이 될 때까지 결합해 나가는 방법
거리 측정에 대한 정의가 필요하며, 군집을 형성하는 매 단계에서 지역적 최적화를 수행해 나가며 일반적으로 계측정 군집의 결과는 덴드로그램의 형태로 표현한다.
** 덴드로그램 : 표본들이 군을 형성하는 과정을 나타내는 나무 형식의 그림
- 최단 연결법은 계층적 군집 분석에서 사용되는 유사도 측정 방법 중 하나로 최단 연결법은 두 개의 클러스터 사이의 거리를 측정할 때, 두 클러스터 내의 모든 데이터 포인트 간의 거리 중에서 가장 짧은 거리를 사용하는 방법이다.
이 방법은 간단하고 직관적인 방법이다.
- 최장 연결법은 계층적 군집 분석에서 사용되는 다른 유사도 측정 방법 중 하나로 최장 연결법은 두 클러스터 사이의 거리를 측정할 때, 두 클러스터 내의 모든 데이터 포인트 간의 거리 중에서 가장 긴 거리를 사용하는 방법이다.
이 방법은 이상치에 민감하지 않으며 불규칙한 형태의 클러스터를 잘 처리할 수 있는 방법이지만, 계산 비용이 높고 대규모 데이터셋에는 적합하지 않을 수 있다.
- 평균 연결법은 계층적 군집 분석에서 사용되는 다른 유사도 측정 방법 중 하나로 평균 연결법은 두 클러스터 사이의 거리를 측정할 때, 두 클러스터 내의 모든 데이터 포인트 간의 거리의 평균을 사용하는 방법이다.
이 방법은 이상치에 민감하고 계산 비용이 높은 편이지만, 중앙화 효과를 갖기 때문에 일반적으로 데이터셋에 잘 맞는 방법 중 하나이다.
- 와드 연결법은 계층적 군집 분석에서 사용되는 다른 유사도 측정 방법 중 하나로 와드 연결법은 두 클러스터 사이의 거리를 측정할 때, 두 클러스터를 병합했을 때 그 결과로 생기는 클러스터 분산 증가량을 고려하는 방법이다.
이 방법은 클러스터의 분산을 고려하여 클러스터를 형성하는 방법으로, 이상치에 강건하고 클러스터의 분산을 최소화하는 특성을 갖고 있지만, 계산 비용이 높을 수 있으므로 데이터셋의 크기와 목적을 고려하여 적합한 방법을 선택해야 한다.
- 유클리드 거리는 두 점 사이의 직선거리를 나타내는 지표로 두 점 사이의 가장 짧은 거리를 나타낸다.
- 맨해튼 거리는 두 점 사이의 직각 거리를 나타내는 지표로 유클리드 거리가 직선 거리를 측정하는 것과 달리, 맨해튼 거리는 격자 형태로 이동할 때의 거리를 측정한다.
유클리드 거리보다 맨해튼 거리가 계산이 더 빠르며, 특히 차원이 매우 높은 경우에는 유클리도 거리보다 더 나은 결과를 제공할 수 있다.
- 민코프스키 거리는 두 점 사이의 거리를 측정하는 지표로, 유클리드 거리와 맨해튼 거리를 포함한 일반화된 형태이다.
- 마할라노비스 거리는 다변량 데이터의 거리를 측정하는 방법 중 하나로, 변수 간 상관관계를 고려하여 거리를 계산하며 이 거리 측정 방법은 다변량 정규 분포에서 사용되며, 데이터의 분포를 고려하여 각 변수의 중요성을 다르게 고려할 수 있다.
- 체비셰프 거리는 두 점 사이의 거리를 측정하는 방법 중 하나로, 맨해튼 거리의 일반화된 형태이다.
맨해튼 거리는 두 점 간의 좌표 차이의 절댓값의 합을 계산하는 반면, 체비셰프 거리는 두 점 간의 좌표 차이 중에서 가장 큰 차이를 선택하여 계산한다.
- 캔버라 거리는 두 점 사이의 거리를 측정하는 방법 중 하나로 이 거리 측정 방법은 특히 비유클리드 거리 중 하나로서, 변수 간 비유사성을 고려하여 거리를 계산한다.
- 자카드 거리는 두 집합 간의 유사도를 측정하는 지표 중 하나로 이 거리 측정 방법은 두 집합 사이의 공통된 요소의 비율에 기반하여 거리를 계산한다.
- 코사인 거리는 두 벡터 간의 각도를 이용하여 유사성을 측정하는 방법 중 하나로 두 벡터의 방향이 얼마나 유사한지를 측정하기 위해 코사인값의 역수를 거리로 이용한다.
3) 비계층적 군집화 : 군집수 k를 지정한 후, 관측치들을 무작위로 k개의 집단으로 분할하고 다양한 기준(평균값, 최빈값 등)을 이용하여 centroid(중심점)을 수정해 나가며 집단을 다시 재분류하는 방법
- K-means 군집화는 비지도 학습 알고리즘 중 하나로, 주어진 데이터를 k개의 클러스터로 그룹화하는 방법이다.
이 알고리즘은 각 클러스터의 중심을 찾고, 각 데이터 포인트를 가장 가까운 중심에 할당하여 클러스터를 형성한 다음 각 클러스터의 중심을 해당 클러스트에 할당된 데이터 포인트의 평균으로 업데이트한다.
이 과정을 반복하여 클러스터의 중심과 할당된 데이터 포인트가 수렴할 때까지 반복한다.
K-means 군집화는 비교적 간단하고 효율적인 알고리즘으로, 대용량 데이터셋에도 적용할 수 있으나 초기 중심의 선택이 클러스터링 결과에 큰 영향을 미칠 수 있으며, 클러스터의 수 k를 결정하는 것도 중요한 문제이다.
또한 K-means는 클러스트의 크기나 모양이 균일하다고 가정하므로, 데이터가 비균일 하거나 비구형적인 형태를 가지는 경우에는 제대로 작동하지 않을 수 있다.
- DBSCAN은 밀도 기반의 군집화 알고리즘으로 데이터가 밀집된 지역을 클러스터로 그룹화하고, 밀도가 낮은 지역을 노이즈로 처리한다.
DBSCAN은 클러스터의 개수를 사전에 지정할 필요가 없으며, 임의의 모양을 가진 클러스터를 감지할 수 있다.
DBSCAN은 클러스터의 밀도에 따라 클러스터를 형성하므로, 클러스트의 크기나 모양에 민감하지 않고 클러스터의 개수를 사전에 지정할 필요가 없으며, 노이즈를 처리하는 데 효과적이다.
- 혼합분포 군집화는 데이터가 여러 개의 확률 분포로부터 생성된 것으로 가정하고, 각 데이터 포인트가 각각의 확률 분포에서 발생한 것으로 모델링하는 군집화 방법이다.
각 데이터 포인트가 여러 개의 학률 분포에서 발생할 수 있다는 가정에 기반하여 작동하고 각 확률 분포는 클러스터를 나타내며, 데이터 포인트가 특정 클러스터에 속할 확률을 계산하여 클러스터링을 수행한다.
혼합분포 군집화는 데이터가 복잡한 구조를 가지고 있고, 클러스터가 중첩되거나 겹치는 경우에 유용하며 데이터가 여러 개의 클러스터로 구성되어 있지만 각 클러스터가 서로 다른 확률 분포를 따르는 경우에도 적용할 수 있다.
- PAM은 k-medoids 클러스터링 기술 중 하나이다.
k-medoids는 k-means의 변형으로, 클러스터의 중심을 대표하는 점을 평균 대신 중앙에 위치한 데이터 포인트로 사용하고 이러한 중앙점을 medoid라고 한다.
PAM은 k-means와 달리 medoid를 사용하기 때문에 이상치에 더 강건하며, 거리 측정을 사용할 수 있기 때문에 비유클리드 공간에서도 사용할 수 있지만 k-medoids 알고리즘은 k-means보다 계산 비용이 더 크기 때문에 데이터가 매우 큰 경우에는 계산 비용이 높을 수 있다.
또한, PAM은 초기 중심점을 무작위로 선택하기 때문에 초기화에 따라 결과가 달라질 수 있으며, 결과가 수렴될 때까지 반복하는 데 시간이 오래 걸릴 수 있다.
- Fuzzy Clustering은 각 데이터 포인트가 하나의 클러스터에 완전히 속하는 것이 아니라, 여러 클러스터에 부분적으로 속할 수 있는 방법으로 각 데이터 포인트가 여러 클러스터에 속할 가능성을 가지며, 각 클러스터의 소속도를 확률적인 값으로 나타낸다.
따라서, 클러스터링 결과가 명확한 경계가 아니라 모호한 소속도를 가질 수 있다.
Fuzzy Clustering은 이진 분류나 하드 클러스터링과 달리, 데이터가 여러 클러스터에 속할 수 있는 모호한 상황에 유용하다.
예를 들어, 이미지 분류나 음성 인식에서는 데이터가 명확한 클러스터에 속하지 않을 수 있기 때문에 유용하게 사용될 수 있다.
4) SOM(자기 조직화지도, Self Organizing Map): 비지도 학습 기반의 신경망
고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도 형태로 형상화하고 데이터의 유사성은 저차원의 격자상에서 인접한 뉴런들과의 연결로 표현된다.
이때, 저차원 격자에서의 유사도는 고차원 입력 공간에서의 유사성을 최대한 보존하도록 학습이 진행되며 SOM 모델은 입력층과 경쟁층으로 신경망을 구성하며, 경쟁 단계 -> 협력 단계 -> 적응단계로 학습이 이루어진다.
- 입력층과 2차원의 격자 형태의 경쟁층(=출력층)으로 구성되며 입력 변수의 개수와 동일하게 뉴런 수가 존재한다.
출력 뉴런들은 승자가 되기 위해 경쟁학습을 수행하고 시각적으로 이해하기 편하여 패턴 발견, 이미지 분석 등에서 뛰어난 성능을 나타낸다.
- SOM과 전통적인 신경망 모형 간에는 몇 가지 중요한 차이점이 있다.
1. 학습 방식 :
SOM > 비지도 학습 알고리즘으로, 입력 데이터에 대한 명시적인 출력 레이블이 없이 데이터의 구조를 파악하고 시각화하는 데 사용되며 자기 조직화 과정을 통해 그리드 내에서 데이터를 클러스터링 하고, 데이터 간의 유사성을 보존하도록 한다.
전통적인 신경망 > 지도 학습이나 강화 학습과 같은 학습 방식을 사용하며, 입력과 출력 간의 관계를 학습하여 주어진 입력에 대한 명시적인 출력을 예측하거나 분류하는 데 사용된다.
2. 목적 :
SOM > 데이터의 구조를 이해하고 시각화하는데 주로 사용되며 클러스터링, 차원 축소, 데이터 시각화 등에 적합하다.
전통적인 신경망 > 주어진 입력에 대한 출력을 예측하거나 분류하는 등의 지도 학습 작업에 사용된다.
3. 구조 :
SOM > 일반적으로 2차원 그리드 형태로 구성되며 입력 공간의 토폴로지를 보존한다.
전통적인 신경망 > 입력과 출력 뉴런 사이의 연결이 가중치로 표현되는 다층 구조를 가지며 보통 입력층, 은닉층, 출력층으로 구성된다.
4. 학습 방법 :
SOM > 주로 경쟁학습이 사용되며, 그리드 내의 유사한 뉴런 간의 경쟁을 통해 학습이 이루어진다.
전통적인 신경망 : 역전파와 같은 학습 알고리즘을 사용하여 오차를 최소화하도록 네트워크의 가중치를 조정한다.
5. 활용 분야 :
SOM > 데이터 마이닝, 클러스터링, 차원 축소, 패턴 인식, 시각화 등의 분야에 사용된다.
전통적인 시각화 : 이미지 및 음성 인식, 자연어 처리, 예측 모델링, 제어 시스템 등 다양한 분야에서 사용된다.
요약하면, SOM은 비지도 학습 기반의 자기 조직화를 위한 알고리즘이며, 입력 데이터의 구조를 파악하고 시각화하는데 주로 사용되는 반면 전통적인 신경망은 주로 지도 학습 작업을 위해 사용되며, 입력과 출력 간의 관계를 학습하여 주어진 입력에 대한 명시적인 출력을 예측하거나 분류하는 데 사용된다.
5) 유전 알고리즘(Genetic Algorithm, GA) : 생명의 진화를 모방하여 최적해를 구하는 알고리즘으로, 최적화가 필요한 문제의 해결책을 매커니즘을 통해 점진적으로 진화시키는 방법
유전 알고리즘은 어떤 미지의 함수를 최적화하는 해를 찾기 위해, 진화를 모방한 탐색 알고리즘이라고 말할 수 있으며, 생물학적 진화를 유도하는 과정인 자연선택에 기반한 것으로, 제약 조건이 있는 최적화 문제와 제약 조건이 없는 최적화 문제를 모두 풀 수 있는 방법이다.
03. 연관 분석
1) 연관 분석 : 대량의 데이터에 숨겨진 항목 간의 연관규칙을 찾아내는 분석 기법으로서 장바구니분석이라고도 한다.
트랜잭션(거래)에 포함된 항목 간의 관련성을 파악하여 둘 이상의 항목들도 구성된 연관성 규칙을 도출하는 분석방법이다.
- Apriori 알고리즘은 데이터 내에서 잘 나타나는 항목 집합을 찾아내는 데 사용되는 데이터 마이닝 알고리즘 중 하나로 특히, 연관 규칙 학습에서 빈번히 사용된다.
Apriori알고리즘은 대규모의 거래 데이터베이스나 구매 이력 데이터 등에서 빈번하게 등장하는 항목 집합을 발견하여, 이를 통해 상품 추천이나 마케팅 전략을 수립하는 등의 응용 분야에 활용되나 후보 항목 집합을 생성하고 검사하는 과정에서 계산 비용이 많이 소요되는 단점이 있다.
- FP-Growth 알고리즘은 연관 규칙 학습을 위한 데이터 마이닝 알고리즘 중 하나로 Apriori 알고리즘과 유사한 목적을 가지고 있지만, Apriori 알고리즘의 단점인 후보 항목 집합 생성과 검사의 비용을 줄이기 위해 개발되었다.
FP-Growth 알고리즘은 Apriori 알고리즘에 비해 후보 항목 집합을 생성하는 단계를 건너뛰고, FP-트리를 효율적으로 구성하여 계산 비용을 줄여 대규모 데이터 집합에서 연관 규칙을 빠르게 발견할 수 있는 강력한 도구로 사용된다.
- 연관 분석은 데이터베이스에서 거래(사건)의 연관규칙을 찾는 데이터 분석기법으로 비지도 학습에 의한 패턴 분석에 해당한다.
지지도, 신뢰도, 향강도를 연관규칙의 평가 도구로 사용하며 거래량이 적으면 규칙 발견이 어려우므로 유사한 품목과 함께 범주 구성으로 해결한다.
2) 연관 분석의 척도
- 지지도(Support)는 연관 분석에서 사용되는 지표로, 특정 항목 집합이 전체 데이터 집합에서 얼마나 자주 발생하는지를 나타낸다.(특정항목 집합을 포함하는 거래의 수 / 전체 거래의 수)
예를 들어, 슈퍼마켓의 거래 데이터를 고려해 전체 거래 중에서 "우유"가 포함된 거래가 100건이라고 가정하고 전체 거래의 수가 1000건이라면 "우유"의 지지도는
Support(우유) = 100/1000 = 0.1
즉, "우유"의 지지도는 전체 거래 중 "우유"가 포함된 거래 비율이 0.1 또는 10%이다.
- 신뢰도(Confidence)는 연관 분석에서 사용되는 또 다른 중요한 지표로, 주어진 조건(전제)이 발생했을 때 결과(결론)가 발생할 확률을 나타낸다. (A와 B가 동시에 포함된 거래 수) / (A가 포함된 거래 수)
특히, 연관 규칙을 평가할 때 사용되며, 어떤 항목 집합이 다른 항목 집합을 얼마나 잘 예측하는지를 측정한다.
예를 들어, "우유"를 구매한 고객 중에서 "빵"을 구매한 고객의 비율이 0.7이라면, "우유"를 구매한 고객이 "빵"을 구매할 확률은 70%이며, 이는 "우유"를 구매한 고객이 "빵"을 구매할 가능성이 높다는 것을 의미한다.
따라서 신뢰도가 높을수록 두 항목 간의 관련성이 강하다고 볼 수 있다.
- 향상도(Lift)는 연관 규칙의 품질을 측정하는 지표 중 하나로, 두 항목 간의 관련성을 나타내며 특정 규칙이 얼마나 유용한지를 판단하는 데 사용된다.
향상도는 조건 A가 주어졌을 때 결과 B가 발생하는 확률의 증가 비율을 의미한다.
향상도가 1보다 크면, 두 항목 간의 양의 상관관계가 있다고 해석할 수 있다.
즉, 조건 항목 집합 A가 주어졌을 때 결과 항목 집합 B의 발생 확률이 높아진다.
반면에 향상도가 1보다 작으면, 두 항목 간의 음의 상관관계가 있다고 해석할 수 있다.
즉, 조건 항목 집합 A가 주어졌을 때 결과 항목 집합 B의 발생 확률이 줄어준다. 항상도가 1에 가까울수록 두 항목 간의 관련성이 없다고 볼 수 있다.
예를 들어, "케찹"을 구매한 고객이 "핫도그빵"을 구매한 확률이 "핫도그빵"을 구매한 확률 대비 2배라면, 이 연관 규칙의 향상도는 2이다. 따라서 이 규칙은 "케찹"을 구매한 고객이 "핫도그빵"을 구매할 가능성이 두 배 높다는 것을 나타낸다.
'ADsP스터디' 카테고리의 다른 글
[B.D.A x 영진닷컴] ADsP 넷째주 스터디 (3) 2024.04.21 [B.D.A x 영진닷컴] ADsP 셋째주 스터디 (0) 2024.04.11 [BDA x 영진닷컴] ADsP 첫째주 스터디 (2) 2024.03.30