학습 주제
- 선형 SVM
- 비선형 SVM
- SVR, Support Vector Regression
- Decision Tree
- 비지도 학습
주요 학습 내용
- 선형 SVM
- 잘 나눈 다는 정의가 필요하다
- 정확히 나누었는가?
- 일반화가 잘 되었는가? - 분류하는 선이 각 클래스의 데이터 샘플로부터 가장 멀리 위치해 있으면 일반화 성능이 좋다
- 마진 : 샘플로부터 분류 선까지의 거리
- 서포트 벡터 : 마진을 구성하는 데이터
- 두 데이터를 나누는 직선(고차원은 초평면)을 찾고자 한다.
- 찾고자 하는 직선과 평행한 두 개의 직선을 만들 수 있고 두 직선 사이의 거리를 마진이라 한다
- 결국 마진을 최대화하는 최적 직선을 만드는 것이 목적이다
- 이 때의 직선을 '최대 마진 초평면'
- w^Tx + b = 0
- w = 최대 마진 초평면의 법선 벡터
- b = 편향
- 모든 데이터가 이쁘게 나뉘어 있어서 어떠한 오분류도 허용하지 않고 완벽한 선형 모델로 분리가 가능하다
- 하드 마진 SVM - 완벽한 선형 분리가 불가능한 경우가 많다, 어느 정도 오류를 허용하면서 오차 발생에 따른 패널티를 비용 함수에 부과, 이를 통해 일반화 성능을 올릴 수 있는것
- 소프트 마진 SVM
- 잘 나눈 다는 정의가 필요하다
- 슬랙 변수 (Slack variable)
- 소프트 마진 SVM에서 사용하는 개념
- 완벽하게 선형 분리되지 않는 데이터에 대해 SVM을 적용할 수 있도록 한다.
- 각 데이터 포인트(i)당 하나의 슬랙 변수가 할당된다. = 마진을 얼마나 위반하는지 수치적으로 나타낸다.
- 마진 위반하지 않은 데이터
- 슬랙변수 = 0
- 서포트 벡터와, 서포트 벡터보다 멀리 있는 데이터 - 마진을 위반한 데이터
- 마진경계 ~ 결정 경계 : 0 < 슬랙변수 <= 1
- 결정 경계 이후 : 1 < 슬랙변수 ,, = 이 경우는 올바르지 못한 클래스로 분류
- 소프트 마진 SVM은 하드 마진 SVM 최적화 과정에 규제 페널티를 도입해 일반화한 최적화 식을 사용한다.
- 마진의 크기를 최대화
- 마진 위반을 최소화 하는 목적을 가진다.
- 선형 SVM 모델의 한계
- 데이터가 휘어진 형태로 분포한다면 선형 SVM으로는 분류할 수 없다.
- 고차원에서의 데이터
- 선형적으로 분리할 수 없는 데이터 고차원으로 변경하면 고차원의 초평면으로 분리할 수 있는 형태로 변환이
가능하다. - 차원이 증가하면 데이터 포인트 간의 상대 거리 증가
- 각 차원 데이터끼리 차지하는 공간이 확장
- 비슷한 특성을 공유하는 데이터들 특정한 축 혹은 방향으로 군집될 가능성이 높다.
- 선형적으로 분리할 수 없는 데이터 고차원으로 변경하면 고차원의 초평면으로 분리할 수 있는 형태로 변환이
- 고차원 데이터의 문제
- 계산량이 늘어난다.
- 원본 데이터의 차원보다 훨씬 크다면 모델의 복잡도가 늘어나고 효율성이 떨어진다.
- 확장한 고차원이 원본 데이터의 차원보다 훨씬 크다면 모델의 복잡도가 늘어나고 효율성이 떨어진다.
- 이를 해결하기 위해 커널 트릭이 제시된다.
- 높은 차원의 장점과 계산의 복잡성이 증가되지 않는 기법
- 커널 트릭
- 데이터 선형 분류하기 위해 데이터 포인트 사이 내적 계산이 수행되어야 한다.

- 계산량이 많이 소요 되므로, 고차원의 내적 연산의 결과와 똑같은 결과를 보여주는 저차원 vector 끼리의 연산
함수가 있다면 ?
- 고차원으로 데이터 변형하지 않고도 저차원의 데이터 만으로도 고차원 데이터를 활용한 내적 연산의 효과를 누릴 수 있다.
- 데이터 선형 분류하기 위해 데이터 포인트 사이 내적 계산이 수행되어야 한다.
- 다양한 커널의 종류
- 다항 커널 (Polynomial Kernal)
- 다양한 차수 설정으로 여러 식을 근사할 수 있지만 과적합의 위험이 있다. - RBF 커널 (Radial Basis Function Kernel) 혹은 가우시안 커널 (Gaussian Kernel)
- 다양한 데이터에 적용하면서도 유연성이 높아 범용성이 높다 - 시그모이드 커널 (Sigmoid Kernel)
- 이진 분류에 최적화되며 RBF 커널에 비해 성능이 떨어진다.
- 다항 커널 (Polynomial Kernal)
- 회귀 문제에 적용되는 SVR
- 회귀 문제로 확장한 SVM 방법을 SVR (Support Vector Regression)이라고 한다.
- 주어진 데이터에서 가능한 많은 데이터 포인트를 포함하는 마진 구역을 설정
- 마진 구역 안에서 회귀선을 찾는 것을 목표로 한다.
- Tree 용어
- 노드
- 데이터에 대한 특정 질문이나 조건
- 데이터를 분류하는 과정에서 사용 - 엣지
- 노드와 노드를 연결하는 선
- 상위 노드의 특정 질문에 대한 가능성 답변 - 루트 노드
- 트리의 가장 상단에 위치한 노드
- 분류 또는 예측을 시작하는 지점 - 분할 노드 (= 결정 노드)
- 데이터를 더 작은 하위 집합으로 나누는 데 사용되는 중간 노드 - 리프 노드 (= 터미널 노드)
- 트리 말단에 위치한 노드
- 더 이상의 분기가 없고 자식 노드를 갖지 않는다.
- 노드
- 결정 기준 (Decision Criteria)
- 데이터를 분할하는 기준을 결정하는데 사용되는 방법론
- 트리의 각 단계에서 최적의 분할을 찾기 위해 사용
- 트리의 깊이와 복잡성을 관리할 수 있다.
- 좋은결정 기준은 트리를 더욱 간결하고 효율적으로 만들어 준다.
- 과적합을 방지하고 일반화 성능을 향상 시킨다.
- 분류 과정에서 사용되는 결정 기준
- 정보 이득
- 지니 불순도 - 회귀 과정에서 사용되는 결정 기준
- MSE 최소화
- 엔트로피 (Entropy)
- 어떤 상황이나 현상이 품고 있는 불확실성, 포함하는 정보의 양과 반비례한다.
- 정보 이득
- 부모 노드와 자식 노드들의 엔트로피를 계산해 엔트로피가 낮아지는 방향으로 결저 경계를 선정하는 것
- 정보 이득을 최대화 하는 방향
- 부모 노드와 자식 노드들의 엔트로피를 계산해 엔트로피가 낮아지는 방향으로 결저 경계를 선정하는 것
- 지니 불순도 (Gini Impurity)
- 데이터 집합의 순도를 측정하는 또 다른 방법
- 데이터 안에 존재하는 클래스 분포의 불균형을 평가하는 방법
- MSE 최소화 방식
- Decision Tree 에서 회귀 문제를 푸는 주요한 방식 중 하나
- 각 노드에서 실제 정답과 예측 값 사이의 평균 제곱 오차 (MSE)의 평균을 계산
- 이 값을 최소화하는 노드를 찾아가는 방식으로 Tree가 만들어진다.
- Tree 사용 과정에서 주의사항
- 축에 수직인 방향으로 데이터가 분할된다.
- 경계면이 회전이 되어있다면 구불구불한 경계면이 생성된다.
- 일반화에 어려움이 있을 수 있다.
- 필요시 주성분 분석을 통한 데이터 회전이 필요할 수 있다. - 데이터 노이즈에 굉장히 민감하다
- Depth가 깊다면 강한 Overfit의 위험이 크다.
- 축에 수직인 방향으로 데이터가 분할된다.
- 비지도 학습
- 주어진 데이터 내부에서 데이터의 구조나 패턴을 자동으로 탐색하는 목적을 가지고 있다.
- 수동으로 데이터의 정답을 생성할 필요가 없어 비용과 시간이 절약
- 데이터 내부의 구조를탐색 -> 다양한 통찰
- 다양한 데이터 유형과 복잡한 구조에도 적용 가능하다
- 결과를 해석하기 어려운 상황이 있을 수 있다.
- 명확한 정답이 없으므로 모델의 성능 객관화와 평가가 어렵다
- 노이즈에 매우 민감하다.
- 군집화
- 데이터를 유사한 특성을 가진 하위 그룹 또는 클러스터로 분할
- 레이블이 없는 데이터에서 내재된 구조를 발견
- 유사한 데이터 포인트를 그룹화하여 패턴을 이해하는 데 사용한다.
- 차원 축소
- 고차원 데이터의 특성을 줄여 더 낮은 차원의 표현으로 만들어 데이터의 핵심 특성을 유지하는 기법
- 데이터 시각화, 노이즈 감소, 계산 효율성 증가, 그리고 더 나은 데이터 해석 등의 목적
- 차원 축소를통해 복잡한 데이터 구조를 간소화, 중요한 정보를 강조하는데 사용
- 이상 탐지
- 데이터에서 비정상적인 패턴, 이상치, 또는 예외적인 사례를 탐지
- 데이터에서 일반적으로 볼 수 있는 특성에서 많이 벗어난 데이터를 식별하는 과정에서 사용
- 보안, 금융, 의료 등의 분야에서 중요한 역할
- 군집화, Clustering
- K-means
- 데이터를 K개의 클러스터로 그룹화
- 각 클러스터의 중심을 계산하고, 각 데이터 포인트를 가장 가까운 클러스터 중심에 할당하는 방식으로 작동
- 반복적인 과정을 통해 클러스터 중심을 업데이트하며 최적화 - 계층적 군집화 (Hierarchical Clustering)
- 데이터 포인트를 개별 클러스터로 가정하여 시작한다.
- 점차 유사한 클러스터를 병합하거나 큰 클러스터를 세분화 하는 방식으로 진행 - DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
- 데이터가 모여있는 밀도를 기반으로 클러스터를 형성
- 고밀도 지역과 저밀도 지역을 이용해 군집화 진행
- K-means
- 차원 축소
- 주성분 분석 (PCA)
- 데이터의 분산을 최대한 보존하는 방향의 축을 찾는다.
- 해당 축을 기준으로 고차원 데이터를 저차원으로 변환
- 주로 데이터의 주요 특성을 추출하고 시각화 하는 과정에서 사용 - t-SNE
- 고차원 데이터의 구조를 보존하면서 저차원으로 매핑하는 기법
- 시각화 과정에서 매우 유용하게 사용된다. - 오토인코더 (Autoencoder)
- 신경망(딥러닝)을 이용한 차원 축소 기법
- 입력 데이터를 저차원으로 압축 후, 다시 원래 차원으로 복원하는 방식으로 핵심 특징을 만들어 낸다.
- 주성분 분석 (PCA)
- 이상 탐지
- Isolation Forest
- Tree를 기반으로하며 특정 데이터 포인트를 격리시키는 데 필요한 분할 수를 기준으로 이상치를 탐지
- 이상치 데이터의 경우 더 적은 분할로 격리되는 경향이 있음을 활용 - One-Class SVM
- 정상 데이터만을 활용해 “정상” 이라는 class로 SVM을 학습하고
- SVM이 정상 패턴에서 벗어나는 데이터를 보고 출력하는 결과를 보고 이상치를 판단 - LOF (Local Outlier Factor)
- 주어진 데이터 주변의 데이터 밀도를 계산
- 정상 데이터는 주변에 높은 데이터 밀도를 갖고 있고,
- 이상치 데이터는 주변에 데이터가 적어 낮은 밀도를 갖고 있음을 활용
- Isolation Forest
공부하면서 어려웠던 점
- SVM 실습을 통해 제대로 이해하고 넘어가야겠다.
반응형
'데이터분석' 카테고리의 다른 글
| 50. 딥러닝 (1) | 2024.02.04 |
|---|---|
| 49. K-means, 이상 탐지 (1) | 2024.02.03 |
| 47-(2). 선형 회귀 (0) | 2024.02.02 |
| 47-(1). 지도학습과 대표 알고리즘 (1) | 2024.02.02 |
| 46-(2). 통계 개념과 용어 (3) | 2024.02.01 |