우편물에 인쇄된 우편번호 판별 분석을 통해 우편물 자동 분류
동일 차종의 수리 보고서 데이터를 분석하여 차량 수리에 소요되는 시간 예측
의사결정나무 분석
library(party)
# iris 데이터셋 로드
data(iris)
# 의사결정나무 모형 생성
model <- ctree(Species ~ Petal.Length + Petal.Width, data = iris)
# 의사결정나무 시각화
plot(model)
활용
세분화, 분류, 예측, 차원축소 및 변수선택, 교호작용효과의 파악
분석 과정
성장 단계
적절한 최적의 분리규칙을 찾고, 적절한 정지규칙을 만족하면 중단
1. 분리규칙
최적 분리 규칙 → 순수도 ↑
(이산형) 카이제곱 통계량 p값 ↓ 지니지수 ↓ 엔트로피 지수 ↓
(연속형) 분산분석 F통계량 p값 ↓ 분산의 감소량 ↑
이산형 목표변수
a. 카이제곱 통계량 P값
$ \chi^2 = \sum_{i=1}^{n} \frac{(O_i - E_i)^2}{E_i}$
P값이 가장 작은 예측변수, 그 때의 최적 분리
(((실제도수-기대도수)^2)/기대도수)의 합
기대도수 = (열의 합계 * 합의 합계) / 전체합계
b. 지니지수
$Gini = 1 - \sum_{i=1}^{n} p_i^2$
지니 지수를 감소시켜주는 예측변수, 그 때의 최적 분리
1-((특성n의개수/전체특성개수)^2의 합)
c. 엔트로피 지수
$Entropy = - \sum_{i=1}^{n} p_i \log_2 p_i$
엔트로피 지수가 가장 작은 예측변수, 그 때의 최적분리
-((특성n의개수/전체특성개수)*($log_2$(특성n의개수/전체특성개수))의 합)
연속형 목표변수
a. 분산분석에서 F통계량
F 통계량에 대한 유의확률 p값이 가장 작은 독립변수와 그 때의 최적분리
b. 분산의 감소량
분산의 감소량을 최대화하는 기준의 최적분리
2. 정지규칙
의사결정나무의 깊이를 지정, 끝마디의 레코드 수의 최소 개수를 지정
가치지기 단계
오차를 크게 할 위험이 높거나, 부적절한 추론규칙을 가진 불필요한 가지를 제거.
관측치의 비율 또는 MSE등을 고려하여 의사결정나무 모형의 복잡도를 감소시키는 방법
자료가 일정 수 이하 일 때 분할을 정지하고 비용-복잡도 가지치기를 이용
타당성 평가 단계
이익도표, 위험도표, 시험자료를 이용하여 의사결정나무를 평가
해석 및 예측 단계
나무모형을 해석하고 예측모형을 설정한 후 예측에 적용하는 단계
알고리즘
CART
목적변수가범주형일 경우 지니지수,연속형일 경우 분산을 이용한 이진분리 사용 입력변수들의 선형결합들 중에서 최적의 분리를 찾을 수 있음
C4.5, C5.0
CART와 달리 각 마디에서 다지분리 가능, 범주형 입력변수에 대해서는 범주의 수만큼 분리 엔트로피지수 사용
CHAID
가지치기하지 않고 적당한 크기에서 나무모형의 성장 중지, 입력변수 반드시 범주형 변수 카이제곱 통계량사용
장점과 단점
- 장점
결과 설명 용이, 모형 만드는 방법 계산 복잡하지 않음, 대용량 데이터 빠르게 생성 가능, 비정상 잡음 데이터에도 민감함 없이 분류 가능, 불필요한 변수가 있어도 크게 영향을 받지 않음, 수치형변수와 범주형변수를 모두 사용 가능, 모형 분류 정확도 높음
- 단점
새로운 자료에 대한 과대적합 가능성이 높음, 경계선 부근의 자료값에 대해 오차가 큼, 설명변수 간의 중요도를 판단 어려움
인공신경망 분석
인간 뇌를 기반으로 한 추론 모델 → 한계를 극복하기 위해 제안된 심화신경망을 활용한 머신 러닝의 한 분야가 딥러닝
# iris 데이터셋 로드
data(iris)
# 데이터 전처리
iris$Species <- as.numeric(iris$Species)
set.seed(1234)
train <- sample(nrow(iris), 0.7 * nrow(iris))
trainset <- iris[train, ]
testset <- iris[-train, ]
# 인공신경망 모델 생성
nn_model <- neuralnet(Species ~ ., data = trainset, hidden = 2, linear.output = FALSE)
뉴런
기본적인 정보처리 단위. 가중치가 있는 링크로 연결, 여러 입력 신호를 받지만 출력 신호는 오직 하나.
- 단일 뉴런의 학습(단층 퍼셉트론)
퍼셉트론은 선형 결합기와 하드 리미터로 구성
입력층이 은닉층을 거치지 않고 직접 출력층에 연결

- 다층 퍼셉트론
은닉층과 은닉노드가 많으면 가중치가 많아져서 과대 적합 문제 발생
은닉층과 은닉노드가 적으면 과소 적합 문제 발생
은닉층의 수가 하나인 신경망은 범용 근사자이므로 모든 매끄러운 함수를 근사적으로 표현 가능. 가능하면 은닉층은 하나로 선정
은닉노드의 수는 적절히 큰 값으로 놓고, 가중치를 감소시키면서 적용- 과대 적합 문제
신경망에서는 과대 적합 문제가 빈번
알고리즘의 조기 종료(검증오차가 증가하기 시작하면 반복 중지), 가중치 감소 기법(선형모형의 능형회귀와 유사한 벌점화 기법)으로 해결
- 은닉층 너무 많으면? 네트워크의 일반화가 어려움, 기울기 소실 문제, 훈련에 많은 시간
- 은닉층 너무 적으면? 네트워크가 복잡한 의사결정 경계를 만들 수 없음
- 과대 적합 문제
입력 변수 (x)
- 범주형 변수
모든 범주에서 일정 빈도 이상의 값을 갖고, 각 범주의 빈도가 일정한 경우 적합
- 연속형 변수
입력변수의 값들의 범위가 변수간의 큰 차이가 없을 때 적합
분포가 평균을 중심으로 대칭이 아니면 좋지 않은 결과를 도출하기 때문에 변환(대부분 평균 미만이고, 특정 데이터가 매우 큰 경우 로그변환),
범주화(각 범주의 빈도가 비슷하게 되도록)와 같은 방법을 활용
가중치 (w)
- 가중치 초기값이 0인 경우
시그모이드 함수는 선형, 신경망 모형은 근사적으로 선형모형이 됨
반복하여도 값이 전혀 변하지 않음
- 초기값은 0 근처로 랜덤하게 선택
초기 모형은 선형 모형에 가깝고, 가중치 값이 증가할수록 비선형모형이 됨
너무 크면 좋지 않은 해를 주는 문제점 내포
활성화 함수 (f)
Sigmoid 시그모이드 함수
로지스틱 회귀분석과 유사하며, 0~1의 확률값을 가짐
Softmax 함수 (표준화 지수 함수)
출력값이 여러개고 목표치가 다범주인 경우 각 범주에 속할 사후확률을 제공
Relu 함수
입력값이 0 이하는 0, 0 이상은 x값을 가지는 함수. 즉, Relu = max(0, x)
학습모드
가중치를 반복적으로 조정하며 학습. 훈련 데이터를 통해 가중치를 갱신하여 신경망의 구조를 선택하고, 학습할 알고리즘 결정 후 신경망을 훈련시킴
- 온라인 학습
순차적으로 관측값을 하나씩 신경망에 투입하여 가중치 추정값이 매번 바뀜. 속도 빠름. 비정상성과 같이 특이한 성질을 가진 경우가 좋음. 국소최솟값에서 벗어나기 더 쉬움
- 확률적 학습
온라인 학습 모드와 같으나 관측값의 순서가 랜덤
- 배치 학습
전체 훈련자료를 동시에 신경망에 투입
역전파 알고리즘
다층 퍼셉트론에서 기여도 할당 문제에 대한 해결책
신경망에서는 (y - o)만큼의 오차(e = y - o)가 발생
오차에 비례하여 출력층의 가중치를 갱신하고, 그다음 은닉층의 가중치를 갱신
가중치를 갱신하는 방향은 신경망의 처리 방향과는 반대이기 때문에 역전파 알고리즘이라 함
나이브 베이즈 분류기
특성들 사이의 독립을 가정하는 베이즈 정리를 적용한 확률 분류기의 일종
최근접 이웃법 KNN
훈련용 데이터 집합으로부터 미리 모형을 학습하는 것이 아니라 새로운 자료에 대한 예측 및 분류를 수행할 때 모형을 구성하는 lazy learning 기법을 사용하는 것
로지스틱 회귀분석
반응 변수가 범주형(0,1)인 경우 적용되는 회귀분석모형
새로운 설명변수가 주어질 때 반응변수의 각 범주에 속할 확률이 얼마인지를 추정하여, 추정확률을 기준치에 따라 분류하는 목적으로 활용
사후확률
모형의 적합을 통해 추정된 확률
다중로지스틱 회귀모형의 그래프 형태
회귀 계수가 0보다 크면 S자 모양, 0 보다 작으면 역 S자 모양을 가짐
오즈비(odds ratio)
오즈(odds)는 성공할 확률이 실패할 확률의 몇 배인지를 나타내는 확률
Odds = P/(1-P)
Odds Ratio = Odds(A)/Odds(B)
Logit
종속변수 y를 (0,1)로 조정하기 위해 사용
Cut-Off (분류임계값)
모델이 분류 결정을 내리는 기준값
로지스틱 회계분석과 같이 집단에 속할 확률을 반환할 경우 성공집단에 속할 기준 값이 필요할 때 사용
로지스틱 회귀분석에서는 cut-off 값을 조정하여 모델의 성능을 최적화할 수 있음 일반적으로 분류 임계값으로 0.5를 사용하거나 ROC 커브 상에서 가장 위쪽에 가까운 지점 또는 AUC 값이 최대가 되는 분류 임계값을 선정
앙상블 분석
여러 개의 예측모형들을 만들고, 이를 조합하여 하나의 최종 예측 모형을 만드는 방법
작은 변화에 의해 예측모형이 크게 변하는 경우 학습방법이 불안정하다 말한다. 가장 안정적인 방법으로는 1-nearest neighbor, 선형회귀모형. 가장 불안정한 방법으로는 의사결정나무.
배깅
여러 개의 붓스트랩(bootstrap/동일한 크기의 표본을 랜덤 복원추출로 뽑은 자료, 샘플에 한번도 선택되지 않는 원데이터가 발생할 수 있음. 약 36.8%) 생성, 예측모형을 만든 후 결합해 최종 예측모형을 만드는 방법. 가지치기를 하지 않고 최대로 성장한 의사결정나무들을 활용. 훈련자료를 모집단으로 생각하고 평균예측모형을 구하여 분산을 줄이고 예측력 향상
- 데이터 집합에서 크기가 같은 표본(붓스트랩) 여러개를 단순 임의복원 추출하여 분류기 생성
- 최적 모델 결정은 독립 수행 후 다수결로 결정
부스팅
예측력이 약한 모형들을 결합해 강한 예측모형을 만드는 방법 Adaboost는 랜덤 분류기보다 조금 더 좋은 분류기 n개에 각각 가중치를 설정하고 n개의 분류기를 결합하여 최종 분류기를 만드는 방법(가중치의 합은 1)
훈련 오차를 빨리 쉽게 줄일 수 있고, 배깅보다 성능이 뛰어난 경우가 많다.
하지만, 속도가 느리고 과대적합 가능성이 존재한다.
lgbm boost : Leaf wise node 방법
- 새로운 분류 규칙 만들고, 이 과정 반복해 최종 모형 만듬
랜덤 포레스트(random forest)
의사결정나무의 특징인 분산이 크다는 점을 고려, 배깅과 부스팅보다 더 많은 무작위성을 주어 약한 학습기들을 생성한 후 이를 선형결합하여 최종 학습기를 만드는 방법
Random input에 따른 forest of tree
변수제거 없이 실행되므로 정확도 측면에서 좋은 성과를 보임. 이론적 설명이나 최종 결과에 대한 해석은 어려움. 하지만 예측력이 매우 높음.
(입력변수가 많은 경우 배깅, 부스팅과 비슷하거나 좋은 예측력)
- 전체 변수 집합에서 부분 변수 집합을 선택하여 각각의 데이터 집합에 대해 모형을 생성한 후 결합
- 다수의 나무로부터 투표를 통해 분류 결과를 도출
- 트리개수가 많으면 많을수록 과대적합 가능성이 낮아짐
- 여러개의 의사결정트리 → 랜덤포레스트
스태킹
개별적인 여러 알고리즘을 서로 결합해 예측 결과를 도출한다는 점에서 배깅(Bagging) 및 부스팅(Boosting)과 공통점을 가지고 있다. 하지만 가장 큰 차이점은 개별 알고리즘으로 예측한 데이터를 기반으로 다시 예측을 수행한다는 점이다.
여러 가지 모델들의 예측값을 최종 모델의 학습 데이터로 사용
'🥇 certification logbook' 카테고리의 다른 글
단순 선형 회귀 (Simple Linear Regression Model) (0) | 2023.06.06 |
---|---|
분석환경 설정 (Visual Studio Code + 주피터노트북) (0) | 2023.06.05 |
[ADsP] 비지도학습 - 주성분 분석(PCA) (0) | 2023.06.05 |
[ADsP] 비지도학습 - 연관 분석 (0) | 2023.06.05 |
[ADsP] 지도학습 - 시계열 분석 (0) | 2023.06.04 |
[ADsP] 지도학습 - 회귀분석 (0) | 2023.06.04 |
분석환경 설정 (파이썬 + 주피터노트북 + pandas) (0) | 2023.06.03 |
[ADsP] 확률분포 (0) | 2023.06.03 |