기업이 보유하고 있는 일일 거래 데이터, 고객 데이터, 상품 데이터 혹은 각종 마케팅 활동에 있어서의 고객 반응 데이터 등과 이외의 외부 데이터를 포함하는 모든 사용 가능한 원천 데이터를 기반으로 감춰진 지식, 기대하지 못했던 경향 또는 새로운 규칙 등을 발견하고 이를 실제 비즈니스 의사결정 등에 유용한 정보로 활용하는 일련의 작업
데이터 마이닝 5단계
단계
설명
목적 정의
데이터 마이닝 도입 목적을 명확하게 함.
데이터 준비
- 데이터 정제(Cleaning)를 통해 데이터의 품질 확보까지 포함. - 필요시 데이터 양 충분하게 확보
데이터 가공
- 목적 변수를 정의하고, 필요한 데이터를 데이터 마이닝 소프트웨어에 적용할 수 있게 가공 및 준비하는 단계 - 충분한 CPU와 메모리, 디스크 공간 등 개발환경 구축이 선행
데이터 마이닝 기법 적용
모델을 목적에 맞게 선택하고 소프트웨어를 사용하는 데 필요한 값 지정
검증
검증 결과에 대한 검증 시행
대표적 데이터 마이닝 기법
기법
설명
분류 (Classification)
- 새롭게 나타난 현상을 검토하여 기존의 분류, 정의된 집합에 배정하는 것 - 의사결정나무, memory-based reasoning 등
추정 (Estimation)
- 주어진 입력 데이터를 사용하여 알려지지 않은 결과의 값을 추정하는 것 - 연속된 변수의 값을 추정, 신경망 모형
연관분석 (Association Analysis)
- '같이 팔리는 물건' 같이 아이템의 연관성을 파악하는 분석 - 카탈로그 배열 및 교차 판매, 공격적 판촉 행사 등의 마케팅 계획
예측 (Prediction)
- 미래에 대한 것을 예측, 추정하는 것을 제외하면 분류나 추정과 동일한 의미 - 장바구니 분석, 의사결정나무, 신경망 모형
군집 (Clustering)
- 미리 정의된 기준이나 예시에 의해서가 아닌 레코드 자체가 가진 다른 레코드와의 유사성에 의해 그룹화되고 이질성에 의해 세분화 됨. - 데이터 마이닝이나 모델링의 준비단계로서 사용됨.
기술(Description)
- 데이터가 가진 특징 및 의미를 단순하게 설명하는 것 - 데이터가 암시하는 바에 대해 설명 및 그에 대한 답을 찾아 낼 수 있어야 함.
분류 분석(Classification Analysis)
데이터 분석 순서
분석용 데이터 준비
▶
탐색적 분석 데이터 전처리
▶
모델링
▶
모델 평가 및 검증
▶
모델 적응 운영 방안 수립
- 속성간 상관 관계 파악 - 데이터 특성 파악 - 분포 파악 - 데이터 확인 - 데이터 형식 변경 - 결측 값 처리 - 이상 값 처리 - 특성 조작 (Scaling, Binning, Transform, Dummy) - 데이터 차원 축소
- 회귀 분석 - 분류 분석 - 군집 분석 - 연관 분석
- 결정 계수(`R^{2}`) - F 통계량, t 값 - ROC Curve - 오류 분포 - 실루엣, DI
적절한 표본 추출법으로 데이터에서 여러 개의 훈련용 데이터 집합을 만들어 각 데이터 집합에 하나의 분류기를 만들어 결합하는 방법
약하게 학습 된 여러 모델들을 결합하여 사용
성능을 분산시키기 때문에 과적합(Overfitting) 감소 효과가 있음.
종류
Voting
Bagging
Boosting
Random Forest
종류 ① : Voting
서로 다른 여러 개 알고리즘 분류기 사용
각 모델의 결과를 취합하여 많은 결과 또는 높은 확률로 나온 것을 최종 결과로 채택하는 것
Hard Voting
Soft Voting
- 각 모델의 예측 결과 중 많은 것을 선택 - 1 예측 3표, 2예측 1표 → 1예측 선택
- 각 모델의 클래스 확률을 구하고 평균 높은 확률을 선택 - 1예측 : `{(0.9 + 0.8 + 0.3 + 0.4)} / {4} = 0.6` → 1예측 선택 - 2예측 : `{(0.1 + 0.2 + 0.7 + 0.6)} / {4} = 0.4`
728x90
종류 ② : 배깅(Bagging, Bootstrap AGGregatING)
서로 다른 훈련 데이터 샘플로 훈련, 서로 같은 알고리즘 분류기 결합
원 데이터에서 중복을 허용하는 크기가 같은 표본을 여러 번 단순 임의 복원 추출하여 각 표본에 대해 분류기(Classifiers)를 생성하는 기법
여러 모델이 병렬로 학습, 그 결과를 집계하는 방식
같은 데이터가 여러 번 추출될 수도 있고, 어떤 데이터는 추출되지 않을 수 있음.
대표적 알고리즘 : MetaCost Algorithm
종류 ③ : 부스팅(Boosting)
여러 모델이 순차적으로 학습
이전 모델의 결과에 따라 다음 모델 표본 추출에서 분류가 잘못된 데이터에 가중치(Weight)를 부여하여 표본을 추출함.
맞추기 어려운 문제를 맞추는데 초점이 맞춰져 있고, 이상치(Outlier)에 약함.
대표적 알고리즘 : AdaBoost, GradientBoost (XGBoost, Light GBM) 등
Light GBM : Leaf-Wise-Node 방법을 사용하는 알고리즘
종류 ④ : 랜덤 포레스트(Random Forest)
배깅(Bagging)에 랜덤 과정을 추가한 방법
노드 내 데이터를 자식 노드로 나누는 기준을 정할 때 모든 예측변수에서 최적의 분할을 선택하는 대신, 설명 변수의 일부분만을 고려함으로 성능을 높이는 방법 사용
여러 개 의사 결정 나무를 사용해, 하나의 나무를 사용할 때보다 과적합 문제를 피할 수 있음.
④ k-NN(k-Nearest Neighbors)
새로운 데이터에 대해 주어진 이웃의 개수(k) 만큼 가까운 멤버들과 비교하여 결과를 판단하는 방법
k 값에 따라 소속되는 그룹이 달라질 수 있음. (k 값은 Hyper Parameter)
거리를 측정해 이웃들을 뽑기 때문에 스케일링이 중요함.
반응 변수가 범주형이면 분류, 연속형이면 회귀의 목적으로 사용됨.
모형을 미리 만들지 않고, 새로운 데이터가 들어오면 그때부터 계산을 시작하는 Lazy Learning(게으른 학습)이 사용되는 지도 학습 알고리즘
- k가 3인 경우, 초록색 Class로 분류
- k가 7인 경우, 빨강색 Class로 분류
⑤ SVM(Support Vector Machine)
서로 다른 분류에 속한 데이터 간의 간격(margin)이 최대가 되는 선을 찾아 이를 기준으로 데이터를 분류하는 모델
아래 그림에서 `H_{3}` 은 분류를 올바르게 하지 못하며, `H_{1}, H_{2}`는 분류를 올바르게 하는데 `H_{2}`가 `H_{1}` 보다 더 큰 간격을 갖고 분류하므로 이것이 분류 기준이 됨.
이미지 출처 : wikimedia.org
⑥ 인공 신경망(ANN, Artificial Neural Network) 모형
인공 신경망을 이용하면 분류 및 군집을 할 수 있음.
인공 신경망은 입력층, 은닉층, 출력층3개의 층으로 구성되어 있음.
각 층에 뉴런(노드)이 여러 개 포함되어 있음.
학습 : 입력에 대한 올바른 출력이 나오도록 가중치(Weights)를 조절하는 것
가중치 초기화는 `-1.0~1.0` 사이의 임의 값으로 설정하며, 가중치를 지나치게 큰 값으로 초기화하면 활성화 함수를 편향 시키게 되며, 활성화 함수가 과적합 되는 상태를 포화 상태라고 함.
인공 뉴런 (=퍼셉트론)
경사 하강법(Gradient Descent)
함수 기울기를 낮은 쪽으로 계속 이동시켜 극값에 이를 때까지 반복시키는 것
제시된 함수의 기울기의 최소값을 찾아내는 머신러닝 알고리즘
비용 함수(Cost Function)을 최소화 하기 위해 Parameter를 반복적으로 조정하는 과정
경사 하강법 과정
① 임의의 Parameter 값으로 시작 ② Cost Function 계산, 시작점에서 곡선의 기울기 계산 (Cost Function : 모델을 구성하는 가중치 w의 함수) ③ Parameter 값 갱신 : W = W - learning rate * 기울기미분값 ④ n 번의 Iteration, 최소값을 향해 수렴함. (Learning Rate가 적절해야 함.)
Gradient Descent
인공 신경망 모형의 장/단점
장점
변수의 수가 많거나 입/출력 변수 간에 복잡한 비선형 관계에 유용함.
이상치 잡음에 대해서도 민감하게 반응하지 않음.
입력 변수와 결과변 수가 연속형이나 이산형인 경우 모두 처리 가능
단점
결과에 대한 해석이 쉽지 않음.
최적의 모형을 도출하는 것이 상대적으로 어려움.
모형이 복잡하면 훈련 과정에 시간이 많이 소요됨.
데이터를 정규화 하지 않으면 지역해(Local Minimum)에 빠질 위험이 있음.
신경망 활성화 함수(Activation Function)
결괏값을 내보낼 때 사용하는 함수
가중치 값을 학습할 때 에러가 적게 나도록 도움.
풀고자 하는 문제 종류에 따라 활성화 함수의 선택이 달라짐.
목표 정확도와 학습시간을 고려하여 선택하고 혼합 사용도 함.
문제 결과가 직선을 따르는 경향이 있으면 ‘선형 함수’를 사용
종류
계단 함수
부호 함수
선형 함수
sigmoid 함수
연속형 0~1, Logistic 함수라 불리기도 함.
선형적인 멀티-퍼셉트론에서 비선형 값을 얻기 위해 사용
softmax 함수
모든 logits의 합이 1이 되도록 output을 정규화
sigmoid함수의 일반화된 형태로, 결과가 다 범주인 경우 각 범주에 속할 사후 확률(Posterior Probability)을 제공하는 활성화 함수
주로 3개 이상 분류 시 사용함.
신경망 은닉 층, 은닉 노드
다층 신경망은 단층 신경망에 비해 훈련이 어려움.
은닉층 수와 은닉 노드 수의 결정은 ‘분석가가 분석 경험에 의해 설정' 함.
은닉층 노드
너무 적으면
네트워크가 복잡한 의사결정 경계를 만들 수 없음.
Underfitting 문제 발생
너무 많으면
복잡성을 잡아낼 수 있지만, 일반화가 어려움.
레이어가 많아지면 기울기 소실 문제가 발생할 수 있음.
과적합(Overfitting) 문제 발생
역전파 알고리즘(Backpropagation Algorithm)
출력층에서 제시한 값에 대해, 실제 원하는 값으로 학습하는 방법으로 사용
동일 입력층에 대해 원하는 값이 출력되도록 개개의 Weight를 조정하는 방법으로 사용됨.
기울기 소실 문제(Vanishing Gradient Problem)
다층 신경망에서 은닉층이 많아 인공 신경망 기울기 값을 베이스로 하는 역전파 알고리즘으로 학습시키려고 할 때 발생하는 문제
기울기 소실
역전파(Backpropagation) 알고리즘은 출력층(Output Layer)에서 입력층(Input Layer)으로 오차 Gradient를 흘려 보내면서, 각 뉴런의 입력 값에 대한 손실 함수의 Gradient를 계산함.
이렇게 계산된 Gradient를 사용하여 각 가중치 매개변수를 업데이트 해 줌.
다층 신경망에서는 역전파 알고리즘이 입력층으로 갈 수록 Gradient가 점차적으로 작아져 0에 수렴하여, Weight가 업데이트 되지 않는 현상이 발생함.
활성화 함수(Activation Function)으로 sigmoid 함수를 사용할 때 발생
해결을 위해 ReLU등 다른 함수 사용
- 최대점 0.25에서 0으로 수렴함. (기울기 = 0) - W = W - Learning Rate * 기울기미분값
모형 평가
① 홀드 아웃(Hold Out)
원천 데이터를 랜덤하게 두 분류로 분리하여 교차 검정을 실시하는 방법으로 하나는 모형 학습 및 구축을 위한 훈련용 자료로 다른 하나는 성과 평가를 위한 검증용 자료로 사용하는 방법
과적합(Overfitting) 발생 여부를 확인하기 위해서 주어진 데이터의 일정 부분을 모델을 만드는 훈련 데이터로 사용하고, 나머지 데이터를 사용해 모델을 평가
잘못된 가설을 가정하게 되는 2종 오류의 발생을 방지
# iris 데이터를 7:3 비율로 나누어 Training에서 70%, Testing에 30% 사용하도록 함.
idx <- sample(2, nrow(iris), replace=TRUE, prob=c(0.7, 0,3))
trainData <- iris[idx==1,]
testData <- iris[idx==2,]
② 교차 검증(Cross Validation)
데이터가 충분하지 않을 경우, Hold-out으로 나누면 많은 양의 분산 발생
이에 대한 해결책으로 교차 검증을 사용할 수 있음.
그러나 클래스 불균형 데이터에는 적합하지 않음.
주어진 데이터를 가지고 반복적으로 성과를 측정하여 그 결과를 평균한 것으로 분류 분석 모형의 평가 방법
K-fold Cross Validation 1. 전체 데이터를 Shuffle 2. K개로 데이터를 분할 3. K번째의 하부 집합을 검증용 자료, K-1개는 훈련용 자료로 사용하여 K번 반복 측정 4. 결과를 평균 낸 값을 최종 평가로 사용함
③ 붓스트랩(Bootstrap)
평가를 반복하는 측면에서 교차 검증과 유사하지만, 훈련용 자료를 반복 재선정한다는 점에서 차이가 있는 평가 방법
붓스트랩은 관측치를 한 번 이상 훈련용 자료로 사용하는 복원추출법에 기반함.
전체 데이터 양이 크지 않을 경우의 모형 평가에 가장 적합
훈련 데이터를 63.2% 사용하는 0.632 붓스트랩이 있음.
데이터 분할 시 고려사항
Class의 비율이 한쪽에 치우쳐 있는 클래스 불균형 상태라면 다음 기법 사용을 고려함.
Under Sampling : 적은 Class의 수에 맞추는 것
Over Sampling : 많은 Class의 수에 맞추는 것
오분류표를 활용한 평가 지표
지표
설명
정밀도 (Precision)
- 예측값이 True인 것에 대해 실제값이 True인 지표 - 식 : TP / (TP + FP)
재현율, 민감도 (Recall, Sensitivity)
- 실제값이 True인 것에 대해 예측값이 True인 지표 - 식 : TP / (TP + FN)
F1
- 데이터가 불균형 할 때 사용 - 오분류표 중 정밀도와 재현율의 조화 평균을 나타내며 정밀도와 재현율에 같은 가중치를 부여하여 평균한 지표 - 2 * (Precision * Recall) / (Precision + Recall)
① 모수(평균, 분산, 혼합 계수)에 대해 임의의 초기값을 정함. - 잠재변수(Latent Variable) : 어느 집단에 속하는지에 대한 정보를 갖는 변수 ② E step : k개의 모형 군집에 대해 모수를 사용해 각 군집에 속할 사후 확률을 구함. ③ M step : 사후 확률을 이용해 최대 우도 추정으로 모수를 다시 추정하고, 이를 반복함.
군집화 평가 지수
실루엣 계수(Silhouette Coefficient)
군집내 거리와 군집 간의 거리를 기준으로 군집 분할 성과를 측정하는 방식
클러스터 안의 데이터들이 다른 클러스터와 비교해 얼마나 비슷한가를 나타내는 군집 평가
실루엣 지표가 1에 가까울수록 군집화가 잘 되었다고 판단
한 군집의 모든 개체가 한치도 떨어져 있지 않고 붙어있는 경우 실루엣 지표는 1이 됨.
실루엣 지표가 0.5 보다 크면 결과가 타당한 것으로 평가
Dunn Index(DI)
DI = 군집과 군집 사이 거리 중 최솟값 / 군집 내 데이터들 거리 중 최댓값
분자가 클 수록 군집 간 거리가 멀고, 분모가 작을 수록 군집 내 데이터가 모여 있음.
Dunn Index가 클수록 군집화가 잘 되었다고 평가
SOM(Self-Organizing Maps)
자기 조직화 지도
인공신경망의 한 종류로, 차원 축소와 군집화를 동시에 수행하는 기법
비지도 학습(Unsupervised Learning)의 한 가지 방법
고차원으로 표현된 데이터를 저차원으로 변환해서 보는데 유용함.
입력층과 2차원의 격자 형태의 경쟁층(=출력층) 으로 이루어져 있음. (2개의 층으로 구성)
이미지 출처 : https://m.blog.naver.com/pmw9440/221588292503
SOM Process
- 단계 1 : SOM의 노드에 대한 연결 강도(Weight) 초기화 - 단계 2 : 입력 벡터와 경쟁층 노드 간의 거리 계산 및 입력벡터와 가까운 노드 선택 → 경쟁 - 단계 3 : 경쟁에서 선택된 노드와 이웃 노드의 가중치(연결 강도) 갱신 → 협력 및 적응 - 단계 4 : 단계 2로 가서 반복 - 승자만이 출력을 내고, 승자와 그의 이웃만이 연결 강도를 수정하는 승자 독점 구조로 인해 경쟁층에는 승자 뉴런만 나타남.
SOM vs. 신경망 모형
신경망 모형은 연속적인 Layer로 구성된 반면, SOM은 2차원의 그리드(격자)로 구성
신경망 모형은 에러 수정을 학습 하는 반면 SOM은 경쟁 학습 실시
신경망은 역전파 알고리즘이지만, SOM은 전방 패스를 사용해 속도가 매우 빠름.
연관 분석(Association Analysis)
연관규칙(Association Rule) : 항목들 간의 ‘조건-결과’ 식으로 표현되는 유용한 패턴
이러한 패턴 규칙을 발견해내는 것을 연관 분석이라 함.
장바구니 분석이라고 함.
미국 마트에서 기저귀를 사는 고객은 맥주를 동시에 구매한다는 연관 규칙을 알아낸 것에 기인함.
Apriori 알고리즘
연관 규칙의 대표적 알고리즘으로 현재도 많이 사용됨.
데이터들에 대한 발생 빈도를 기반으로 각 데이터 간의 연관 관계를 밝히는 방법
데이터셋이 큰 경우 모든 후보 Itemset에 대해 하나하나 검사하는 것이 비효율적임.
FP Growth
Apriori 단점을 보완하기 위해 FP-Tree 와 node, link 라는 특별한 자료 구조를 사용
장점
조건반응(if-then)으로 표현되는 연관 분석의 결과를 이해하기 쉬움.
강력한 비목적성 분석 기법이며, 분석 계산이 간편함.
단점
분석 품목 수가 증가하면 분석 계산이 기하급수적으로 증가함.
너무 세분화된 품목을 가지고 연관규칙을 찾으려면 의미 없는 분석 결과가 도출됨.
상대적 거래량이 적으면 규칙 발견 시 제외되기 쉬움.
연관 규칙 측정 지표
규칙 표기 : A → B
if A then B
예) A가 팔리면 B가 같이 팔린다.
지지도(Support)
전체 거래 항목 중 상품 A와 상품 B를 동시에 포함하여 거래하는 비율
전체 거래 중 차지하는 비율을 통해 해당 연관 규칙이 얼마나 의미가 있는 것인지를 확인함.
지지도 = P(A∩B):A와 B가 동시에 포함된 거래 수 / 전체 거래 수
신뢰도(Confidence)
상품 A를 포함하는 거래 중 A와 B가 동시에 거래되는 비율
상품 A를 구매했을 때 상품 B를 구매할 확률이 어느 정도 되는지를 확인
신뢰도 = P(B|A) = P(A∩B) / P(A): A와 B가 동시에 포함된 거래 수 / A가 포함된 거래 수
향상도(Lift)
A가 주어지지 않았을 때 B의 확률 대비 A가 주어졌을 때 B의 확률 증가 비율
품목B를 구매한 고객 대비 품목 A를 구매한 후 품목 B를 구매하는 고객에 대한 확률
향상도 = P(B|A) / P(B) = P(A∩B) / P(A)*P(B)
= 상품 A의 거래 중 상품 B가 포함된 거래의 비율 / 전체 상품 거래 중 상품 B가 거래된 비율
= A와 B가 동시에 일어난 확률 / A, B가 독립된 사건일 때 A, B가 동시에 일어날 확률
향상도 해석
▲ 1보다 큰 수
- 향상도가 1보다 높아질수록 연관성이 높다고 할 수 있음. - 향상도가 1보다 크면 이 규칙은 결과를 예측하는데 있어 우수하다는 것을 의미함. - 향상도가 1보다 크면 서로 양의 관계로 품목 B를 구매 할 확률보다 품목 A를 구매한 후에 품목B를 구매할 확률이 더 높다는 것을 의미함.