/*
-- Title : 머신러닝 알고리즘
-- Reference : BDMBA
*/
■ 머신러닝 알고리즘 종류
•분류(classification)
•추정(estimation)
•예측(prediction)
•유사성 집단화(affinity grouping)
•연관성 규칙(association rules)
•군집화(clustering)
•설명(description)
•프로파일링(profiling)
■ 머신러닝 유형
■ 독립변수(X)와 종속변수(Y) 형태에 따른 머신러닝 기법
■ 의사결정트리(decision tree)
•데이터 분류와 예측
•Rule(if-then) 기반의 조건규칙
•투명성과 가독성이 좋음
•Feature를 선별할 때 사용 가능
ㅁ 분류규칙(분리변수) 기준을 찾는 방법
•분류모형(분리변수가 범주형)
- 카이제곱 통계량(chi-square statistics)
- 지니지수(gini nidex)
- 엔트로피지수(entropy index)
- 지식습득(information gain)
•회귀모형(분리변수가 연속형)
- 분산분석에 의한 F-통계량(f-statistics)
- 분산의 감소량
ㅁ 랜덤포레스트(random forest)
•랜덤 포레스트는 수백개의 의사결정트리가 포레스트를 구성하여 각각 트리의 예측결과를 하나의 결과변수로 평균화하여 예측 정확도를 향상한 알고리즘
•실무에서 단순 의사결정트리보다는 랜덤포레스트를 더 사용함
•머신러닝, 딥러닝의 피처(feature)를 판별할 때 사용
•다양한 형태의 데이터에서도 월등하나 예측력
■ 선형회귀분석(lenear regression)
ㅁ 회귀분석
•19세기 프랜시스 갤턴(Francis Galton)이 키 큰 선대 부모들이 낳은 자식들 키가 평균 키로 회귀하는 경향에서 발견
•하나의 독립변수가 변할 때 종속변수가 얼마나 변하는지, 영향을 미치는지 예측
ㅁ 선형회귀분석
•X가 Y에 미치는 영향(기울기)는 어느 위치에 있더라도 일정
•개별 설명벼수는 서로 독립적이라고 가정 → 설명변수가 독립적이지 않을 때 다중공선성 문제 발생
•β-계수 추정 기준 필요
•최소제곱법 : 오차제곱의 합을 최소화
ㅁ 회귀모형 평가
•회귀모형의 에러 제곱합 평가(sum of squares)
- Total variance: the total sum of squares (SST)
- Explained variance: the regression sum of squares (SSR)
- Residual variance: the sum of squares of errors (SSE)
→ SST = SSR + SSE
•회귀모형의 평균 에러 평가(mean square)
- Regressioin mean square(MSR) = SSR/p
- Mean square error(MSE) = SSE/(n-p-1) : 학습데이터가 낳아지면 MSE가 낮아지는 함정
•회귀모형의 적합도 평가(R-squared)
- Statistical measures for goodness-of-fit(적합도)
- R-squared = Explained variance / Total variance
- 전체 변동 배디 모형이 설명되는 변동
- 변수의 개수가 추가되면 R^2 값은 높아짐, 변수의 개수를 패널티로 보정된 R^2사용
•회귀모형의 설명력 평가(F-test)
- F-test를 통해 모델이 종속변수 편차를 유의하게 설명하는지 검증
- F-test 가설 : β-계수가 0이다 → X가 Y에 영향을 주지 않는다 → X와 Y는 무관하다
- F = MSR/MSE
- P-value가 유의하면 MSE에 비해 MSR이 통계적으로 유의하다
- ANOVA 테이블 해석
•개별 독립변수의 유의성 평가(T-test)
- T-test로 개별 독립변수가 유의한지 검증
- 가설 : 개별 βi계수가 0이다 → Xi변화가 Y에 영향을 주지 않는다 → Xi와 Y는 무관하다
•잔차 다이어그램을 통한 오차 분포 확인
- 오차가 X값의 위치에 관계없이 정규분포를 따른다는 회귀의 가정을 충족하는지 확인
- 오차가 등분산적이고 편향이 없다면 선형성을 만족한다고 볼 수 있음
- X값에 따라 오차가 패턴을 보인다는 것은 현재의 독립변수로는 설명 불가능한 관계가 존재함을 의미
•다중공선성 확인
- 회귀분석에서 독립변수들 간에 강한 상관관계가 나타나는 문제
- 서로 다른 두 변수가 선형관계를 갖고 있거나 한 변수가 다른 독립변수로부터 선형적으로 표현될 때 나타남
- 다중공선성은 회귀계수의 분산을 증가시켜 안정적인 계수추정과 해석을 어렵게 만듬
- 종속변수와 독립변수가 유의한 관계가 존재하는 경우에도 계수가 유의하지 않은 것으로 나타날 수 있음
- 높은 상관관계가 있는 두 독립변수가 있을 때 이들 중 한 변수의 유무는 다른 변수의 회귀계수에 큰 영향을 끼침
- Variance inflation factor(VIF) : 다중공선성의 심각성을 정량적으로 계산하는 척도
ㅁ 모델 학습 전 확인 사항
•사용할 데이터는 선형성을 만족하는 데이터인가?
- 독립변수와 종속변수 관계의 선형 검증 : 학습전 상관계수나 Plot 확인
- 독립변수의 값과 관계 없이 정규분포 인지 : 학습전 불가, 학습 후 잔차 다이어그램에서 잔차 분포 확인(등분산성, 편향성)
•독립변수간 상호관계 존재?
- 다중공선성 심각정도를 VIF로 평가
ㅁ 학습한 모델 사용전 확인 사항
•학습된 모델이 설명변수와 종속변수의 관계를 잘 설명?
- F-test로 설명력 검증, R-squred로 모형 적합도 평가, MSE로 오차 평가
•사용한 설명변수와 종속변수는 서로 유의한 관계인가?
- T-test로 개별 변수간 유의성 평가
ㅁ 과적합(Over fitting)과 일반화(Regularization)
•과적합 피하는 방법
- 충분한 데이터 양
•일반화
- 노이즈로 인한 과적합 방지를 위한 추정된 계수 제약
- 노이즈 학습하면 모델의 bias 증가
- 보통 제약은 계수가 0에 가가워지도록 설정
■ 군집분석(Clustering)
ㅁ 개념
- 복잡한 데이터를 유사한 항목들끼리 그룹지어 집합으로 묶어주는 집단화 기법
- 군집내의 데이터는 동질집단으로 구성하고 군집간의 데이터는 서로 다른 이질집단으로 구분
- 복잡한 데이터의 구성에 대해 이해 할 수 있는 지식을 제공
- 군집으로 Block화 된 모집단의 특성을 파악하고 이후 Action을 수행
ㅁ 목적
- 분할과 지배의 원리(Divide & Conquer)
- 복잡하고 큰 문제를 해결하기 위해 보다 작은 부분 문제로 분할하고 해결하는 과정으로 전체 문제 접근
ㅁ 특징
•비지도 분류(Unsupervised Classification)
- 분류와 유사한 결과 도출
- 군집화에서는 미리 정해진 분류 없음
•차원(Dimension)
- 군집화 측정위한 독립변수
- 차원 수가 증가하면 가시화 어려움
ㅁ 군집 그룹화
•유사성(similarity) 거리
- 개체간의 거리, 변수간의 상관계수, 확률적 유사성 측정
•거리(distance) 유형
•범주형 거리
- 이산형 자료에 대한 유사성 및 거리
- 범주형 자료에 대한 유사성 및 거리
ㅁ 군집분석 절차
ㅁ 군집분석 기법
ㅁ 군집분석 수행시 고려사항
•군집의 수화 크기 : 강력한 군집의 처리방향, 중첩 군집 허용여부, 이상치 군집화 고려
•유사도(거리)의 기준 : domain knowledge 필요
•타당성 : 의미있는 결과 평가, 선형/역 변환으로 직관적 군집 고려
ㅁ 군집분석의 해석
• 해석은 분석가의 몫
• 유용한 2가지
- 군집 중심값들을 이용한 군집 특징 인식
- 군집간 차이를 통한 특징 인식
■ 연관규칙(Association Rule)
ㅁ 개념
•특정항목(조건) 발생시 다른 항목(결과)이 발생하는 규칙
•조건부 확률 : 특정조건 발생시 다른 결과 발생 확률
•ex. 바비인형과 캔디바(장바구니분석), 맥주와 기저기 사례(교차판매)
ㅁ 계산
•IF A then B형태로 연관규칙(지지도, 신뢰도, 향상도) 계량화
•지지도(support) : 전체 중 A와 B가 동시에 발생할 확률, 구매율/빈발항목선정
•신뢰도(confidence) : A가 발생하고 B가 발생할 조건부 확률, 조건부확률
•향상도(lift) : 독립적으로 B가 발생하는 대비 A 발생 후 B가 발생할 확률, 연관관계 강도와 방향/신뢰도 의미 검증
ㅁ 고려사항
•연관규칙 유형
•연관규칙 경의의 수
•아이템 수준 설정
ㅁ 유사 기법
•상관분석 : 같이 움직이는 방향 정도
•순차분석 : 연속적으로 발생하는 관계(사용자, 시간정보 추가 필요)
•인과성분석 : 원인과 결과 관계
•연관분석 : 동시에 일어날 조건 확률