BDA 빅데이터 분석 학회/ADsP 스터디

ADsP 자격증 스터디 2주차(정형 데이터 마이닝)

_jinyj 2024. 5. 3. 23:29

스터디 날짜: 4월 2일

스터디 범위: PART 3 데이터 분석 - 정형 데이터 마이닝(p201~p244)


Chapter 3. 정형 데이터 마이닝

Section 1. 분류 분석

  1. 데이터 마이닝 개요
  • 대용량 데이터로부터 의미있는 패턴, 관계, 규칙을 파악, 예측, 의사결정에 활용
  • 감춰진 지식, 규칙을 발견, 실제 비즈니스 의사결정 등에 활용
  • 목적 설정 -> 데이터 준비 -> 데이터 가공 -> 데이터 마이닝 기법 적용 -> 검증

2. 분류 분석

1) 로지스틱 회귀 모형

  • 독립변수가 수치형 데이터, 종속변수가 범주형인 경우 적용되는 회귀 분석 모형
  • 일반적으로 종속변수가 두 가지 값만 가지는 경우에 적용
  • R에서는 glm() 함수로 구성
  • 유의성 검정은 카이제곱 검정을 사용
  • 로지스틱 회귀 모델 원리: 독립변수를 x, 종속변수를 z로 표기, 회귀 모델식은 z=wx+b
  • 시그모이드 함수: -무한대~무한대의 범위로 입력되는 값을 0~1 사이의 값으로 변환해주는 함수, S자형 곡선을 갖는 함수, x 값이 무한대로 커짐에 따라 sigmoid(x) 값은 1에 가까워지고 x 값이 무한대로 작아짐에 따라 sigmoid(x) 값은 0에 가까워 진다
  • 오즈비: 특정 사건이 발생할 확률과 사건이 발생하지 않을 확률에 대한 비율, 성공확률/실패확률
  • 로짓 변환: 오즈에 로그를 취한 함수

2) 인공신경망

  • 인간의 뇌 구조를 기반으로 한 추론 모델
  • 입력층, 은닉층, 출력층 3개의 층으로 구성
  • 각 뉴런은 가중치가 있는 링크로 연결, 입력에 대한 올바른 출력이 나오도록 가중치를 조절하는 학습 알고리즘
  • 인공 신경망의 학습: 가중치 변수 초기화, 훈련 데이터를 통해 학습 -> 인공신경망 모델을 생성

- 뉴런은 링크로 연결, 각 링크에는 수치적인 가중치 변수가 존재

- 뉴런은 여러 입력 신호를 받지만 출력 신호는 오직 하나만 생성

- 은닉층 노드가 너무 많으면 과적합, 너무 적으면 과소적합 -> 최적의 모델 생성을 위해 경사 하강법으로 모델의 기울기가 낮은 방향으로 이동하며 가중치 변수 최적값 도달할 때까지 반복

- 역전파 알고리즘으로 뉴런들을 서로 연결하고 있는 가중치 조정

  • 활성화 함수

- 전달받은 값을 연산한 결과를 내보낼 때 사용

- 선형 활성화보다는 비선형 활성화 함수를 주로 사용

- 계단 함수: 입력값이 양수일 때는 1, 음수일 때는 0, 선형 활성화 함수

- 리키렐루 함수: x가 0보다 크면 x를, 0보다 같거나 작으면 0.1*x를 출력, 비선형

- 시그모이드 함수: 입력값을 0~1사이의 값으로 출력, 비선형

- 소프트맥스 함수: 댜중 분류를 수행하기 위한 목적, 비선형

- 렐루 함수: 입력값이 음수면 0, 양수일때는 양수값 그대로 출력, 비선형

- 쌍곡탄젠트 함수: 시그모이드와 유사, 입력값을 -1~+1 사이의 값으로 출력, 비선형

  • 기울기 소실 문제

- 역전파 알고리즘이 출력층에서 입력층으로 갈수록 기울기가 점차 작아져 0에 수렴, 가중치가 업데이트 안 되는 현상을 말함.

- 시그모이드 함수를 사용할 때 발생, 렐루나 리키렐루 등 다른 활성화 함수를 사용하여 해결

  • 신경망 모형 구축시 고려사항

- 범주형 변수: 모든 범주에서 일정 빈도수 이상, 빈도가 일정한 값이 좋음

- 연속형 변수: 입력 변수 값들의 범위가 변수 간의 큰 차이 없을 때 좋음, 데이터 분포가 평균 중심으로 대칭이어야 함

  • 신경망 모델 학습모드: 온라인 학습 모드, 확률적 학습 모드, 배치 학습 모드
  • 은닉층과 은닉노드의 수: 은닉층이나 노드 개수가 너무 많으면 가중치 변수가 많아져 과적합 문제 발생, 너무 적으면 과소적합 문제 발생
  • 순전파: 신경망의 입력 계층에서 출력계층까지 전달되는 신호의 학습 과정
  • 경사하강법: Cost 함수 그래프에서 편미분을 통해 기울기를 구하는 과정을 수행, cost 값을 최소로 하는 최적의 가중치, 편향을 찾는 과정, 학습률 직접 설정하여 가중치, 편향 값에 대한 업데이트 간격 조절

3) 의사결정나무 모형

  • 수집된 데이터를 나무의 줄기와 잎 구조로 나타냄, 새로운 데이터가 입력되어도 분류와 예측 결과를 도출하는 알고리즘
  • 의사결정나무는 분류와 회귀 문제에 모두 사용할 수 있음, CART 알고리즘이라고 불림

의사결정나무 특징

  • 부모마디보다 자식마디의 순수도가 증가, 아래로 내려갈수록 불순도가 감소
  • 깊이가 깊어질수록 과적합 발생 가능성 높아짐
  • 범주형, 수치형 변수 모두에 대해 적용 가능
  • 모델에 대한 설명 용이, 다중 공선성에 대해 영향을 받지 않음

4) 의사결정나무 알고리즘

  • CART(가장 많이 사용), C5.0, CHAID
  • CART: 이산형 목표변수에서는 지니지수, 연속형 목표변수에서는 분산 감소량
  • C5.0: 이산형에서는 엔트로피 지수
  • CHAID: 이산형에서는 카이제곱 통계량, 연속형 목표변수에서는 ANOVA F-통계량

5) 불순도의 여러가지 측정방법

  • 엔트로피: 무질서한 정도를 나타내는 지표, 작을수록 순수도 높고 불순도 낮음 -> 동일 데이터끼리 잘 분류됨을 의미, 불확실성이 전혀 없으면 엔트로피는 0
  • 정보 획득: 정보 획득량은 불확실성이 얼마나 줄었는가를 의미, 클수록 불확실성이 많이 감소
  • 지니계수: 얼마나 많은 데이터들이 섞여있는지를 나타내는 불확실성, 0~0.5의 값을 가짐, 지니계수가 0이면 불확실성이 0이고 같은 종류에 해당하는 데이터끼리 잘 모여있음, 0.5일 때가 최대이며 데이터가 반반씩 섞여있음
  • 카이제곱: 독립성 검증을 위해 사용, 상관관계가 가장 적도록 나눔

6) 앙상블 기법

  • 여러 개의 예측모형을 만든 후 예측 모형들을 조합하여 하나의 최종 예측모형을 만드는 방법
  • 편향 감소, 분산 감소, 과적합 감소
  • 종류: 보팅, 배깅, 부스팅, 스태킹, 랜덤 포레스트
  • 배깅: 크기가 같은 표본을 여러 번 단순 무작위 추출하고 각 표본에 대해 복원(부트스트랩/주어진 자료에서 단순 랜덤 복원 추출을 하여 동일한 크기의 표본을 여러개 생성) 및 모델을 생성한 후 결과를 앙상블, 분산감소가 목적, 랜덤 포레스트가 대표적 알고리즘
  • 부스팅: 분류 및 예측 정확도가 낮은 모형들을 결합하여 강한 분류 및 예측을 수행하는 모델을 만듦, 오차가 높은 데이터에 더 큰 가중치를 표본 추출 후 조정, 순차적 모델 생성, 편향감소가 목적, XGBoost가 대표적 알고리즘
  • 스태킹: 서로 다른 종류의 모델들을 결합하는데 사용
  • 랜덤 포레스트: 배깅과 부스팅보다 더 많은 무작위성을 주어 약한 학습기 생성 후 이를 선형 결합하여 최종 학습기를 만듦, R에서는 randomForest 패키지 사용, 서로 독립일수록 결합 성능이 좋음, 분류모델은 투표로 회귀모델은 평균값을 출력한다.

7) 모형 평가

  • 혼동행렬: 분류기의 성능을 평가하는 방법, 제대로 예측한 경우와 그렇지 않은 경우가 얼마나 많은지 세어보는 것, 각 행이 실제 클래스, 각 열은 예측한 클래스를 나타냄
  • Accuracy 정확도: 제대로 분류한 데이터 수 / 전체 데이터 수, 오차율은 1에서 정확도 뺀 값
  • Recall 재현율: TP / (TP+FN), 실제 True 인 것 중에서 모델이 True라고 예측한 것의 비율
  • Precision(정밀도): TP/(TP+FP), 모델이 True라고 분류한 것중에서 실제 True인 것의 비율, 양성 예측도라고 함
  • Specificity(특이도): TN/(TN+FP), 제대로 분류한 음성 데이터 수 / 전체 음성 데이터 수
  • Fall-Out(FP Rate, 거짓 긍정률): FP/(TN+FP) = 1-Specificity
  • F1 Score: 2*((정밀도*재현율)/(정밀도+재현율)), 0~1 사이의 값, 높을수록 좋은 모델, 정밀도와 재현율의 조화 평균
  • 정밀도와 재현율의 관계: 정해진 Threshold(임계값)보다 크면 양성 클래스, 작으면 음성 클래스, 정밀도와 재현율은 서로 반비례로서 trade-off 관계에 있음
  • ROC Curve: 가로층에는 FPR = 1 - Specificity 세로축에는 Recall 값을 표시, FPR은 작을 수록 좋고 TPR은 클수록 좋음, threshold를 높이게 되면 FPR은 감소하지만 TPR도 함께 감소

8) 교차검증

: 모델에 대한 일반화 오차에 대해 신뢰할 만한 추정치를 구하기 위해 훈련 데이터 및 평가 데이터를 기반으로 검증하는 기법

  • 홀드 아웃 교차 검증

- 전체 데이터를 비복원추출 방법으로 이용하여 랜덤하게 학습 데이터와 테스트 데이터로 나눠서 검증

- 훈련 데이터로 분석 모형을 구축, 테스트 데이터를 이용하여 분석 모형을 평가

- 계산량이 많지 않아 모형을 쉽게 평가 할 수 있으나 데이터 손실이 발생

- 데이터를 어떻게 나누느냐에 따라 결과가 많이 달라짐

  • K-Fold Cross Validation

- 데이터 집합을 동일한 크기를 갖는 K개의 부분집합으로 나누고 그 중 1개의 집합을 테스트 데이터로 사용

- 나머지 K-1개 집합을 학습데이터로 선정하여 분석 모형을 평가하는 기법

- K번 반복 수행, 각 폴드에 대한 결과르르 평균으로 분석

  • Leave-One-Out-Cross Validation : 전체 데이터 N개에서 1개의 샘플만을 평가 데이터에 사용하고 나머지는 훈련 데이터로 사용하는 과정을 N번 반복
  • LpOCV: LOOCV에서 1개의 샘플이 아닌 p개의 샘플을 테스트에 사용하는 교차 기법
  • 부트스트랩

- 단순 랜덤 복원 추출 방법을 활용하여 동일한 크기의 표본을 여러개 생성하는 샘플링 방법

- 무작위 복원추출 방법으로 데이터 크기만큼 샘플 추출하고 훈련데이터로 함(중복허용)

- 표본을 다시 추출, 복원추출하여 중복추출 허용

- 관측된 데이터로부터 복원추출, 추정의 신뢰성 평가에 사용, 과적합을 줄이는데 도ㅜㅁ

  • 계층별 k-겹 교차 검증: 주로 불균형 데이터를 분류

Section 2. 군집 분석

  1. 군집 분석

: 유사도가 높은 집단을 분류 - 군집에 속한 객체간의 유사도와 다른 군집에 속한 객체간의 차이점을 규명하는 분석방법

1) 군집 분석의 목적: 서로 유사한 특성들을 몇 개의 군집으로 세분화하여 대상 집단을 정확하게 이해하고 활용

2) 군집 분석의 특징

  • 변수를 표준화 또는 정규화 해야 함
  • 군집은 내부적으로 동일, 외부적으로는 이질적임
  • 분석 결과에 대한 가설 검정 없음, 비지도 학습 알고리즘, 종속변수가 존재하지 않음

3) 군집 분석 절차 및 종류

분석 대상의 데이터에서 군집 분석에 사용할 변수 추출 - 군집분석을 이용한 대략적인 군집의 수 결정 - 군집분석에 대한 타당성 검증 - 분류된 군집의 특성 파악 및 적용

2. 계층적 군집화

  • 하나의 최초 군집에서 한 번에 두 개씩 하나의 군집으로 만들어 모든 군집들이 하나의 군집이 될 때까지 결합해 나가는 방법
  • 거리 측정에 대한 정의 필요, 지역적 최적화 수행해 나감
  • 계층적 군집의 결과는 덴드로그램의 형태로 표현 (항목간의 거리, 군집간의 거리, 항목간의 유사 정도 파악 가능)

1) 계층적 군집화 종류

  • 최단 연결법: 거리가 가장 가까운 데이터를 묶어서 군집 형성, 거리의 최소값을 군집간 거리로 함, 사슬 모양, 고립된 군집을 찾는데 중점
  • 최장 연결법: 거리가 먼 데이터나 군집을 묶어서 형성, 거리의 최대값을 군집간 거리로 함, 군집들의 내부 응집성에 중점을 둠
  • 평균 연결법: 최단 연결법과 동일하게 군집을 묶고 거리를 구할 때 평균을 사용, 모든 항목에 대한 거리 평균을 구하면서 군집화, 계산량이 불필요하게 많아질 수 있음
  • 와드 연결법: 군집 내 편차들의 제곱합을 고려, 군집 내의 오차제곱합에 기초하여 군집을 수행, 군집이 병합되면 오차 제곱합 증가되는데 증가량이 가장 작아지도록 군집을 형성, 크기가 비슷한 군집끼리 병합

2) 군집의 거리 계산

  • 유클리드 거리: L2 Distance, 두 점간의 거리를 구하는 알고리즘
  • 맨해튼 거리: L1 Distance, 두 점의 각 성분별 차의 절대값으로 거리를 구함
  • 민코프스키 거리: 맨해튼 거리와 유클리드 거리를 한 번에 표현
  • 표준화 거리: 해당 변수의 표준편차로 척도 변환한 후 유클리드 거리를 계산, 통계적 거리
  • 마할라노비스 거리: 변수의 표준화 및 상관성을 동시에 고려 (표준편차와 상관계수를 함께 고려), 통계적 거리
  • 체비셰프 거리: x좌표 차이와 y좌표 차이 중 큰 값을 갖는 거리
  • 캔버라 거리: 두 점 간 각 차원의 값의 차이를 절대값으로 취한 후 차원별로 나누어 계산된 값을 모두 더함, 범주형 변수에 적합, 통계적 거리
  • 자카드 거리: 자카드 지수는 두 집합의 교집합을 합집합으로 나눈 값, 범주형 변수에 적합
  • 코사인 거리: 코사인 유사도는 두 벡터가 이루는 각도의 코사인 값을 이용하여 측정된 거리

3. 비계층적 군집화

군집수 k를 지정하고 관측치들을 무작위로 k개의 집단으로 분할, 다양한 기준(평균값, 최빈값)을 이용하여 중심점을 수정해나가며 집단을 다시 재분류하는 방법

  • 장점: 사전정보 없이 의미있는 자료 구조 찾을 수 있음, 다양한 형태의 데이터에 적용 가능, 분석 방법 적용에 용이
  • 단점: 가중치와 거리 정의가 어려움, 초기 군집수를 결정하기 어려움, 사전에 주어진 목적이 없어서 결과 해석이 어려움

1) K-means 군집화

  • 데이터를 k개의 군집으로 묶는 알고리즘, 연속형 변수에 활용 가능, 초기 중심점은 임의로 선택
  • 초기 중심값이 수평, 수직 방향으로 일렬로 선택되면 군집이 되지 않고 층으로 나뉠 수 있으니 주의
  • 초기 중심값의 선정에 따라 결과가 달라짐
  • 초기 중심으로부터의 오차 제곱합을 최소화하는 방향으로 군집이 형성되는 알고리즘으로 안정된 군집은 보장하나 항상 최적이라는 보장은 할 수 없음
  • 과정: 초기 군집 중심으로 k개의 객체 임의 선택 - 각 자료를 가장 가까운 군집의 중심에 할당 - 각 군집 내의 자료들의 평균을 계산하여 군집의 중심을 갱신 - 군집 중심의 변화가 없을 때까지 2,3 반복
  • 알고리즘이 단순, 빠르게 수행, 많은 양 데이터를 다룰 수 있음, 다양한 형태의 데이터에 적용 가능
  • R로 구현시 seed 값에 따라 군집 결과가 달라질 수 있음, 군집 결과에 대한 해석이 러여무, 잡음이나 이상값의 영향을 많이 받음, 군집의 수와 가중치와 거리 정의가 어려움

2) DBSCAN

  • 밀집된 곳을 하나의 군집으로 인식, 군집의 개수 k개를 미리 정의해놓을 필요 없지만 반지름과 한 군집 내에 최소 K개의 데이터가 있어야 하므로 이 두가지는 사전 정의 필요
  • 노이즈 데이터는 군집에서 제외

3) 훈합분포 군집화

  • 확률적으로 선형 결합한 분포, 각 데이터가 K개의 추정된 모형 중 어느 모형에 속할 확률이 높은지에 따라 분류
  • 모수와 함께 가중치를 자료로부터 추정
  • 확률 분포를 이용하여 군집을 수행하는 알고리즘, 이상치 자료에 민감
  • 모수와 가중치 추정에는 EM(기대값 최대화) 알고리즘을 사용

4)PAM

  • 중앙값을 이용하여 데이터를 군집화, k-means와 유사, 이상치에 강건한 특징이 있음
  • PAM의 알고리즘: 임의로 k개의 데이터 포인트를 중앙값으로 선택, 각 데이터 포인트와 가장 가까운 중앙값을 기준으로 군집을 할당, 각 군집의 중앙값을 다시 계산, 위 2~3번 째의 과정을 반복하여 군집을 조정

5) Fuzzy Clustering

  • 퍼지 이론에 기반하여 각 관측치가 여러 군집에 동시에 속할 수 있음, 각 군집별로 속할 가능성을 제시함, 데이터가 여러 군집에 동시에 속할 수 있도록 하는 군집화 방법, 군집 간의 경계가 모호한 경우에도 군집화를 수행할 수 있음

4. SOM(자기조직화지도)

  • 비지도 학습 기반의 신경망, 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도형태로 형상화
  • 뉴런들과의 연결로 표현, 차원축소와 군집화를 동시에 수행하는 분류기법
  • 입력층과 경쟁층으로 신경망을 구성, 경쟁단계 - 협력단계 - 적응단계로 학습이 이루어짐

1) SOM 특징

  • 입력층과 2차원의 격자 형태의 경쟁층(출력층)으로 구성됨, 입력 변수의 개수와 동일하게 뉴런 수가 존재
  • 출력 뉴런들은 승자가 되기 위해 경쟁 학습을 수행, 시각적으로 이해하기 편하여 패턴 발견, 이미지 분석 등에서 뛰어난 성능을 나타냄
  • 속도가 빨라 실시간 학습처리가 가능함

2) SOM과 신경망 모형 비교

  • 신경망 모형은 여러 개의 연속적인 계층으로 구성, SOM은 2차원의 그리드로 구성
  • 신경망 모형은 오차를 수정하도록 학습, SOM은 경쟁 학습을 시킴
  • 신경망 모형은 역전파 알고리즘, SOM은 순전파를 사용하여 속도가 매우 빠름
  • 신경망 모형은 지도학습 알고리즘, SOM은 비지도학습 알고리즘

5. 유전 알고리즘

  • 생명의 진화를 모방하여 최적해를 구하는 알고리즘, 문제의 해결책을 매커니즘(자연선택, 돌연변이)를 통해 점진적으로 진화
  • 유전 알고리즘은 어떤 미지의 함수를 최적화하는 해 x를 찾기 위해 진화를 모방한 탐색 알고리즘임
  • 생물학적 진화를 유도하는 과정인 자연 선택에 기반한 것으로 제약 조건이 있는 최적화 문제와 제약 조건이 없는 최적화 문제를 모두 풀 수 있는 방법

Section 3. 연관 분석

  1. 연관분석
  • 대량의 데이터에 숨겨진 항목간의 연관 규칙을 찾아내는 분석 기법, 장바구니 분석이라고도 함
  • 구매 패턴을 분석하여 의미있는 규칙을 나타내는 분석
  • 트랜잭션에 포함된 항목간의 관련성을 파악하여 둘 이상의 항목들로 구성된 연관성 규칙을 도출하는 분석 방법
  • 상품의 구매, 서비스 등 일련의 거래 및 사건들간의 규칙을 발견하기 위해 적용
  • R에서는 instpect 명령어 사용

1) 연관 분석 알고리즘

  • Apriori 알고리즘: 지지도 및 신뢰도를 적정하게 설정하여 빈발 아이템 항목을 판별, 빈발 아이템들에 대해서만 연관규칙을 찾도록 함으로서 계산 복잡도를 감소시킴
  • FP-Growth 알고리즘: 데이터셋이 큰 경우 모든 아이템셋을 하나씩 검사하는 것이 비효율적이라는 문제점에서 탄생, Apriori 알고리즘보다 속도가 빠르고 연산 비용이 저렴, 지지도가 낮은 품목부터 짖도가 높은 품목순으로 올라가면서 빈도수가 높은 아이템 집합을 생성하는 상향식 알고리즘

2) 연관 분석 특징

  • 데이터베이스에서 거래의 연관규칙을 찾는 데이터 분석기법
  • 비지도학습에 의한 패턴 분석에 해당
  • 지지도, 신뢰도, 향상도를 연관규칙의 평가 도구로 사용, 거래량이 적으면 규칙 바련이 어려우므로 유사한 품목과 함께 범주 구성으로 해결
  • 품목수의 증가는 계산량의 증가를 초래, 거래가 발생하지 않은 품목에 대해서는 분석 불가능
  • 고객대상 상품 추천, 패키지 상품 판매 및 기획, 상품 디스플레이 설정, 추천 알고리즘에 활용

2. 연관 분석의 척도

1) 지지도(Support)

  • 전체 거래 중 두 개의 품목A,B가 동시에 포함되어 거래된 비율
  • P(A교집합B) = A와 B가 동시에 포함된 거래수 / 전체 거래수
  • 짖도는 좋은 규칙을 찾거나 불필요한 연산을 줄이기 위한 목적으로 사용됨, 지지도가 높다는 것은 두 개의 아이템이 함께 잘 팔린다는 것을 의미

2) 신뢰도(Confidence)

  • P(A교집합B) / P(A) = A와 B가 동시에 포함된 거래 수 / A가 포함된 거래수 : 연관성 정도 파악 가능
  • 신뢰도는 어떤 하나의 품목이 구매되었을 때 다른 품목 하나가 구매될 확률로서 조건부 확률로 나타낼 수 있음

- 신뢰도 (A->B) = P(A|B)= A와 B가 동시에 포함된 거래수 / A가 포함된 거래수

3)향상도(Lift)

  • A가 주어지지 않았을 때 품목 B의 구매 확률에 비해 A가 주어졌을 때의 품목 B의 구매 확률의 증가 비율
  • 향상도(A->B) = 신뢰도 (A->B)/P(B) = P(A교B) / P(A)P(B)
  • 향상도(B->A) = 신뢰도 (A->B)/P(A) = P(A교B) / P(B)P(A)
  • A와B사이에 아무런 상호관계가 없으면 향상도는 1, 향상도가 1보다 클수록 연관성이 높다, 1이면 독립적인 관계, 0과 1사이면 품목산 상호 음의 상관관계


 

저번보다 분량이 줄어서 그런지 더 부담없이 공부를 할 수 있었던 것 같다. 틀렸던 내용들이 왜 틀렸는지랑 모르는 부분들을 공유하고 이해한대로 설명해주셔서 잘 이해가 되었다. 혼자 공부했으면 잘 모르고 넘어갔을 부분들을 짚어주셔서 감사했고 도움이 많이 되었다. 다음주부터는 데이터에 대한 개념적인 부분들을 다루는 거라서 이해하는 게 더 중요할 것 같다. 파이팅 !!