본문 바로가기
학습노트/통계

분류(3) ~ 통계적 머신러닝(1)

by kime2 2024. 6. 17.

5.5 분균형 데이터 다루기

  • 불균형 데이터에서 예측 모델링 성능을 향상시킬 수 있는 방법
  • 과소표본 : 분류모델에서 개수가 많은 클래스 데이터 중 일부 소수만을 사용하는 것 (유의어 : 다운샘플)
  • 과잉표본 : 분류모겔에서 희귀 클래스 데이터를 중복하여, 필요하면 부트스트랩해서 사용하는 것(유의어 : 업샘플)
  • 상향 , 하양 가중치 : 모델에서 희귀 혹은 다수 클래스에 높은/낮은 가치를 주는 것
  • 데이터 생성: 부트스트랩과 비슷하게 다시 샘플링한 레코드를 빼고 원래 원본과 살짝 다르게 데이터를 생성하는 것
  • z점수 : 표준화 결과
  • K : 최근접 이웃 알고리즘에서 이웃들의 개수

주요개념

  • 데이터의 심각한 불균형( 즉, 관심있는 결과의 데이터가 희박할 때)은 분류 알고리즘에서 문제가 될 수 있다
  • 불균형 데이터를 다루는 한가지 방법은 다수의 데이터를 다운샘플링하거나 의귀한 데이터를 업샘플링해 학습 데이터의 균형을 맞추는 것이다
  • 갖고 있는 1의 데이터를 모두 사용해도 그 개수가 너무 적을 때는, 희귀한 데이터에 대해 부트스트랩 방식을 사용하거나 지곤의 데이터와 유사한 합성 데이터를 만들기 위해 SMOTE를 사용한다
  • 데이터에 불슌형이 존재할 경우 보통은 어느한쪽을 정확히 분류하는 것에 더 높은 점수를 주게 되어있고, 이러한 가지 비율이 평가 지표에 반영되어야 한다

6.1 최근접이웃

  • 이웃 : 예측변수에서 값들이 유사한 레코드
  • 거리 지표 : 각 레코드 사이가 얼마나 멀리 떨러져 있는지를 나타내는 단일 값
  • 표준화 : 평균을 뺀 후에 표준편차로 나누는 일
  • z점수 : 표준화를 통해 얻은 값
  • K : 최근접 이웃을 계산하는 데 사용되는 이웃의 개수

K-NN : 거리기반의 알고리즘, 어떤 새로운 데이터로부터 거리가 가까운 K개의 다른 데이터의 레이블을 참고하여 K개의 데이터 중 가장 빈도 수가 높게 나온 데이터의 레이블로 분류하는 알고리즘

> 유사한 데이터들의 평균을 예측값으로 사용하여 회귀 알고리즘으로 사용 가능하다

장점 단점
- 분류 및 회귀로 사용 가능
- 사용이 간단하여 학습이 빠름
- 별도의 학습 불필요
- 범주로 분류할 기준이 없어도 사용 가능
- K값의 결정이 어려움
- 연속형 데이터가 아닐 경우 유사도 정의가 어려움
- 이상값 존재시 성능저하 발생

 

  • K값은 학습의 난이도와 데이터의 개수에 따라 결정될 수 있음 > 일반적으로 훈련개수의 제곱근으로 설정
  • K값이 너무 크면 주변의 데이터와 떨어져 분류가 잘 이루어 지지 않음 > 과소적합
  • K값이 너무 작으면 데이터 하나하나에 민감 > 과대 적합

 

<알고리즘 절차>

  1. 사전 모델링 없이 훈련 데이터 저장 = lazy model
  2. 초기 K값 정의(새로운 데이터 분류에 참여할 이웃 데이터 수)
  3. 새로운 데이터 각 데이터의 거리 계산(유클리드 거리, 마할라노비스거리 등)
  4. 가장 가까운 K개의 데이터 선정
  5. 새로운 데이터를 선정된 K개의 데이터 중 가장 많은 집단으로 분류(majirity Voting)

<유클리드 거리 = L2 Distance>

https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%EA%B1%B0%EB%A6%AC

 

<맨하튼 거리 = L1 Distance>

유클리드 공식처럼 직선으로 이동할 수 없는 건물들이 많은 체계적인 지역의 거리를 재기 위한 공식

대각선의 거리를 고려하지 않는다

즉, 맨하튼 거리는 항상 유클리드 거리보다 같거나 크다

d(P1,P2 ) = ∣p1−p2∣+∣q1−q2∣ 

검은색 점(P1, P2)의 거리

초록색 : 유클리드 거리

맨하튼 거리 : 빨간색, 파란색, 노란색(모두 거리가 같다)

 

범수값 범위의 조정 : 정규화

K-NN 알고리즘은 데이터 포인트들 간의 거리를 계산하여 가장 가까운 이웃을 찾습는다.

> 데이터의 각 특징(feature)들이 서로 다른 범위를 가진다면, 큰 범위를 가진 특징이 거리 계산에 더 큰 영향을 미치게 된다

 

예시 : 월급(1~100,000,000)과 키(1~200)의 거리계산

> 월급으로 대다수의 계산이 이루어짐

 

정규화를 하지않을 경우

Distance(A,B)= √ (160170)^2+(40,000,000100,000,000)^2 = 60,000,000

Distance(A,C)= √

> 급여로만 계산이 이루어지고 각 키에 대한 차이는 무시된다

 

정규화의 종류

1. 최대 -최소 정규화 : 0 ~ 1사이의  값이 나옴 

> 데이터가 특정 분위내에 있을때 유용, 각 특징의 분포가 서로 다를 때 적합 + 이상치에 민감

 

2. Z-점수 정규화 : 평균이 0, 표준편차가 1인 분포로 변환

> 데이터가 정규 본포를 따를 때 효과적, 이상치에 덜 민감 > 좀더 로버스트 함~

이상치에 덜 민감한 이유 : 이상치가 반영된 표준편차로 나누기 때문

(이상치가 커지면 표준편차도 커지기 때문)

 

정규화 거리를 통한 계산(Min-Max)

키 150 ~200

급여 120,000,000 ~ 30,000,000

Distance(A,B) = √ (0.20.4)^2+(0.1110.778)^2 = 0.696

Distance(A,C) = √ (0.20.6)^2+(0.1110.056)^2 = 0.404

Distance(B,C) = √ (0.40.6)^2+(0.7780.056)^2 = 0.749

 

bias 편향 - variance분산의 trade off

모델링 결과에 대한 오차에는 편향과 분산이 있음

예) 예측 결과

 

편향 : 학습 알고리즘에서 잘못된 가정을 했을때 발생하는 오차

편향 오차가 높다는 것(high bias)은 실측치와 예측치간의 오차가 크게 벌어진 상황

> 과소적합의 경향 : 모델이 단순 (예: 선형회귀)

 

분산 : 트레이닝 데이터의 변동으로 인해 발생하는 오차

분산오차가 높다는 것(high variance)은 노이즈까지 학습하여 예측범위가 넓은 상황 

> 과대적합의 경향 : 모델이 복잡(예 : 고차 다항 회귀, 심층 인공신경망)

 

https://untitledtblog.tistory.com/143

a는 너무 과소적합하고 c는 너무 과대적합하다

b와 같이 편향과 분산이 적절하게 최소화된 예측모델을 만들어야 하는데

평향과 분산을 동시에 최소화 할 수 없다

 

 

 

주요개념

  • K-최근접이웃방법이란 유사한 레코드들이 속한 클래스로 레코드를 분류하는 방법
  • 유사성(거리)은 유클리드 거리나 다른 관련 지표들을 이용해 결정한다
  • 가장 가까운 이웃 데이터의 개수를 의미하는  K는 학습 데이터에서 얼마나 좋은 성능을 보이는지를 가지고 결정한다
  • 일반적으로 예측변수들을 표준화한다 > 이를 통해 스케일이 큰 변수들의 영향력이 너무 커지지 않도록 한다
  • 예측 모델링의 첫 단계에서 종종KNN을 이용한다 > 이렇게 얻은 값을 다시 데이터에 하나의 예측변수로 추가해서 두 번째 단계의 모델링을 위해 사용한다

'학습노트 > 통계' 카테고리의 다른 글

[통계학습] 부스팅과 주성분 분석  (0) 2024.06.25
[통계학습] 통계적 머신러닝(2)  (0) 2024.06.24
[통계학습] 분류 (2)  (0) 2024.06.12
[통계학습] 분류 (1)  (1) 2024.06.10
[통계학습] 회귀와 예측(2)  (2) 2024.06.05