로운's 기술노트

Chapter 3. 데이터 분석 입문 (9주차_3/5) 본문

내배캠_데이터분석가_'24.04~08/회고

Chapter 3. 데이터 분석 입문 (9주차_3/5)

로운's 2024. 6. 13. 01:26
목표 : [오전] 머신러닝 분류(Clasification)_세션
           [오후] 머신러닝_과제

 

 

머신러닝의 지도학습 중 '분류' 라이브세션을 수강했다.

대표적인 4가지 기법을 알게 되었다.

수강을 하다가 KNN에서 K이웃의 수가 동일하거나 *데이터 가중의 불균형에 대해 의문이 들었는데, 마치고 따로 문의드려 보니 *가중KNN이라는 것도 있더라..

* 데이터 가중의 불균형

데이터 포인트 특성 레이블
새로운 데이터 3  
데이터1 4 A
데이터2 2 A
데이터3 7 B
데이터4 9 B
데이터5 8 B

* 가중 KNN (Weighted KNN)
- 각 이웃에 대한 가중치를 계산하고, 이 가중치를 사용하여 예측을 수행
- 가중치는 일반적으로 거리의 역수와 같은 함수를 사용하여 계산.
- 따라서 이웃과의 거리가 가까울수록 해당 이웃의 영향력이 더 커지게 됩니다.
- 데이터셋이 불균형하거나 이상치가 있는 경우, 거리 정보가 예측에 중요한 역할을 하는 경우에 유용함

 

 

특히, SVM은 (비록 선형적이진 않지만) 군사분계선(초평면)을 사이에 둔 DMZ(마진)가 떠올랐다.

 

 

1. K-최근접 이웃 (KNN, K-Nearest Neighbors)  

ㅇ 정의  ≒ 다수결투표?!

- 대상 데이터 주변의 K개의 가장 가까운 데이터들의 범주를 기반으로 예측하는 기법

- 간단하고 직관적인 분류 알고리즘으로 실제로 많이 사용된다.  

- K 값의 선택이 중요하며, 일반적으로 K 값이 작으면 과적합, 크면 과소적합이 발생할 수 있다.

- 유클리드 거리나 맨하탄 거리 등의 거리 측정 방법을 사용

 

ㅇ 활용처

- 간단하면서도 효과적인 분류 알고리즘으로, 데이터 분포에 대한 사전 가정이 필요 없다.

- 다양한 분야에서 사용되며, 특히 패턴 인식, 추천 시스템 등에서 유용하다.

- 적용 사례 : 영화 추천, 이미지 검색

 

ㅇ 동작원리

1) 새로운 데이터가 주어지면, 이 데이터와 다른 학습 데이터들 간의 거리를 계산
2) 계산된 거리 중 가장 가까운 K개의 이웃을 선택
3) 선택된 K개의 이웃 중 가장 많은 범주를 새로운 데이터의 범주로 할당

 

ㅇ 관련 용어

- 이웃(Neighbor) : 예측하려는 데이터 포인트와 가장 가까운 데이터 포인트

- 유클리드 거리(Euclidean distance)

  . 두 점 사이의 직선거리를 측정 (평면이나 공간에서 두 점 사이의 가장 짧은 경로)

  . 2차원 평면에서 두 점 A(x1, y_1)와 B(x2, y2) 사이의 유클리드 거리는 다음과 같다.

- 맨허튼 거리(Manhattan Distance)

  . 두 점 사이의 직각 거리를 측정

  . 두 점 (x1, y1)과 (x2, y2)가 주어졌을 때, 아래와 같다.

- K 값(K value) : 고려할 이웃의 숫자

(좌) 유클리드 거리 / (우) 맨튼 거리

 

 

2. 나이브 베이즈 (Naive Bayes)

ㅇ 정의  ≒ 역사학자?!

- 확률 기반 분류 기법으로, 독립 변수 간의 독립성을 가정하여 확률을 계산하는 분류 기법

- 주어진 데이터가 특정 클래스에 속할 확률을 계산하여 분류하는 알고리즘인 베이즈 정리(Bayes' Theorem)를 기반

- 이 정리를 순수하게(naive) 적용한다고 해서 나이브 베이즈라 명명됨

 

ㅇ 활용처

- 데이터 수집 : 예를 들어, 이메일이 스팸인지 아닌지를 분류하는 문제를 가정해 볼 때, 각 이메일에 대해 특정 단어가 포함되어 있는지 여부와 같은 여러 특징을 수집할 수 있음.

- 특징 추출 : 각 이메일에서 "무료", "당첨", "광고" 등의 단어가 포함되어 있는지를 특징으로 추출

- 확률 계산

  . 스팸 메일일 확률 → P(스팸)

  . 스팸 메일에서 "무료"라는 단어가 나올 확률 P(무료∣스팸)

  . 스팸이 아닌 메일에서 "무료"라는 단어가 나올 확률  P(무료∣스팸아님)

- 분류

  . 새 이메일이 주어졌을 때, 그 이메일이 스팸인지 아닌지의 확률을 계산

  . 이메일이 스팸일 확률과 스팸이 아닐 확률을 비교하여 더 높은 쪽으로 분류

 

ㅇ 동작원리

- *베이즈 정리를 사용하여 데이터의 조건부 확률을 계산한 후, 가장 높은 확률을 가진 클래스로 분류

- 텍스트 분류에 매우 효율적

* 베이즈 정리
- P(A∣B)는 사건 B가 발생했을 때 사건 A가 발생할 확률
- P(B∣A)는 사건 A가 발생했을 때 사건 B가 발생할 확률
- P(A)는 사건 A가 발생할 확률
- P(B)는 사건 B가 발생할 확률

ㅇ 관련 용어

- 베이즈 정리 (Bayes' Theorem) : 조건부 확률을 계산하는 정리.

- 사전 확률 (Prior Probability) : 특정 클래스가 나타날 사전 확률.

 

 

3. 로지스틱 회귀 (Logistic Regression)

ㅇ 정의

- 이진 분류 문제(Binary Classfication)를 해결하는 데 주로 사용되는 분석 기법

- 데이터가 특정 범주에 속할 확률을 0에서 1 사이의 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류

- 즉, 주어진 데이터가 특정 범주에 속할 확률을 예측하여 0과 1로 나눌 수 있음

- 로지스틱 함수(시그모이드 함수)를 사용하여 어떤 값을 입력하더라도 0과 1 사이의 값으로 변환.

 

ㅇ 활용처

- 이진 분류 문제(2가지 범주로 데이터를 분류하는 문제)에 주로 사용됨.

- e.g. 적용 사례: 스팸 메일 필터링, 질병 여부 진단, 고객 이탈 여부 등

 

ㅇ 관련 용어

- 로짓 함수(Logit Function) : 로그 확률을 계산하는 함수.

- 오즈(Odds) : 특정 사건이 발생할 확률과 발생하지 않을 확률의 비율.

- 시그모이드 함수(Sigmoid Function) : 확률을 0과 1 사이로 변환하는 함수.

 

 

4. 서포트 벡터 머신 (Support Vector Machine)

 

ㅇ 정의  ≒ 땅따먹기?!

- 데이터를 고차원 공간으로 매핑하여 최적의 초평면(Hyperplane)을 찾는 기법

- * 커널 트릭을 사용하여 비선형 분류 문제를 해결할 수 있는 강력한 분류 알고리즘

- 장점 > 고차원 공간에서도 효과적으로 작동
          > 다양한 커널을 통해 비선형 분류도 가능
- 단점 > 대규모 데이터셋에서는 계산 속도 저하
          > 모델 튜닝 방법이 다양한 만큼 최적화된 하이퍼 파라미터 선택

* 커널 트릭
- 실제 데이터는 선형적으로 분류되지 않는 경우 多
- 커널 함수를 사용하여 데이터를 다차원 공간으로 변환함으로써 선형적으로 분리할 수 없는 데이터를 선형적으로 분리
- 대표적인 커널 함수
  . 폴리노미얼 커널 (Polynomial Kernel)
  . RBF 커널 (Radial Basis Function Kernel, 가우시안 커널)
  . 시그모이드 커널 (Sigmoid Kernel)

 

ㅇ 활용처

- 적용 사례: 얼굴 인식, 손글씨 분류

 

ㅇ 동작원리

- SVM은 최대 마진을 찾기 위해 최적화 문제를 해결

- 하드 마진 SVM : 모든 데이터 포인트가 마진 외부에 위치하도록 결정 초평면을 설정 (잡음이 없는 데이터에 적합)

- 소프트 마진 SVM : 일부 데이터 포인트가 마진 내부에 위치할 수 있도록 허용하며, 이를 위해 벌점 변수를 도입 (잡음이 있는 데이터에 적합)

 

ㅇ 관련 용어

- 초평면(Hyperplane) : 데이터 포인트를 분류하는 경계.

- 서포트 벡터(Support Vectors) : 초평면에 가장 가까이 위치한 데이터 포인트.

- 마진(Margin) : 서포트 벡터와 초평면 사이의 거리.

 

다음 목표 : [오전] 머신러닝 회귀(Regression)_세션
                    [오후] 머신러닝_과제

 

Comments