일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로세스
- API
- DI
- jvm
- 부트캠프추천
- inversion of control
- Dependency Injection
- bean
- 객체지향 프로그래밍
- 쓰레드
- 스레드
- 소셜로그인
- 항해99솔직후기
- 클래스
- class
- 항해99장점
- Instance
- 객체
- IoC
- 회고록
- 오브젝트
- process
- 항해99단점
- 소셜
- object
- Thread
- 인스턴스
- jwt
- 인스턴스화
- social login
- Today
- Total
로운's 기술노트
Chapter 3. 데이터 분석 입문 (9주차_3/5) 본문
목표 : [오전] 머신러닝 분류(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)_세션
[오후] 머신러닝_과제
'내배캠_데이터분석가_'24.04~08 > 회고' 카테고리의 다른 글
Chapter 3. 데이터 분석 입문 (10주차_1/5) (0) | 2024.06.18 |
---|---|
Chapter 3. 데이터 분석 입문 (9주차_5/5) (0) | 2024.06.15 |
Chapter 3. 데이터 분석 입문 (9주차_2/5) (0) | 2024.06.12 |
Chapter 3. 데이터 분석 입문 (9주차_1/5) (0) | 2024.06.10 |
Chapter 3. 데이터 분석 입문 (8주차_4/4) (1) | 2024.06.07 |