printf("ho_tari\n");
8일차 본문
2025.04.23
다중 선형 회귀(Multiple Linear Regression)
- 독립 변수 x가 1개가 아니라 여러 개인 경우에 사용
회귀 모델 대표적인 알고리즘 - Linear Regression
- 연속적인 타겟을 예측하는 알고리즘
- 실제 데이터와 모델이 예측한 데이터 사이의 오차를 최소화하는 것이 목표
장점
- 선형 회귀는 직관적으로 구현할 수 있어 구현하기 쉬움
- 직관적이기 때문에 결과 해석이 쉬워 영향을 끼치는 변수가 무엇인지 쉽게 파악 가능
- 데이터가 기본적으로 선형 관계가 있다면 높은 예측률을 보일 수 있음
단점
- 선형 관계에 비해 실제로 많이 일어나는 비선형 관계에 있어서는 취약함
- 결측치나 이상치가 성능에 큰 영향
- 독립 변수끼리의 관계가 있을 경우 성능이 저하될 수 있음
라이브러리
- from sklearn.linear_model import LinearRegression
선형 회귀 알고리즘을 사용한 프로그래밍
1. 문제 정의
2. 데이터 변수의 역할 정의하기
3. 데이터 모아 보기
머신러닝 패키지 사용 - 선형 회귀 알고리즘 프로그래밍
- Scikit-learn 라이브러리는 분류, 회귀, 군집화, 의사결정 트리 등 다양한 머신러닝 알고리즘을 적용할 수 있는 함수들을 제공하는 파이썬 라이브러리
회귀 모델 대표적인 알고리즘 - 서포트 벡터 머신 회귀(SVM)
- 기계 학습의 분야 중 하나로 패턴 인식, 자료 분석을 위한 지도 학습 모델이며 주로 분류와 회귀 분석을 위해 사용
- 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, SVM 알고리즘은 주어진 데이터 집합을 바탕으로 하여 새로운 데이터가 어느 카테고리에 속할지 판단하는 비확률적 이진 선형 분류 모델
장점
- 비선형 관계도 모델링할 수 있음
- 이상치에 대해 덩 민감함
단점
- 데이터 전 처리 및 파라미터 튜닝이 필요
- 널 함수 선택 등의 설정에 따라 성능이 크게 달라질 수 있음
라이브러리
- from sklearn import svm
회귀 모형 평가 지표
MSE와 MAE의 차이점
1. 민감성 : MSE는 큰 오차에 민감하게 반응하는 반면, MAE는 모든 오차를 동등하게 취급합니다.
2. 해석 용이성 : MSE의 경우 결과 값의 단위가 제곱 단위로 변환되므로 직관적인 해석이 어렵습니다. 반면, MAE는 원래 데이터와 동일한 단위를 가지므로 해석이 더 쉽습니다.
3. 이상치에 대한 반응 : MSE는 이상치에 대해 더 민감하게 반응합니다. 따라서 데이터에 이상치가 많은 경우 MSE의 값이 크게 나올 수 있습니다.
이상치가 많은 경우 : MAE를 사용하는 것이 좋습니다.
이상치가 중요한 경우 : MSE를 사용하는 것이 좋습니다.
앙상블 기법
- 여러 개의 분류기를 생성하고 그 예측을 결합함으로써 보다 정확한 예측을 도출하는 기법으로 강력한 하나의 모델을 사용하는 대신, 보다 약한 모델 여러 개를 조합하여 더 정확한 예측에 도움을 주는 방식
배깅(Bagging, Bootstrap aggreagting)
- 주어진 데이터셋에서 무작위 샘플링을 통해 여러 데이터 서브셋을 구성하고 각각의 서브셋에서 독립적으로 model을 학습시킨 뒤, 모든 모델의 예측을 집계하는 기법
배깅(Bagging) - Voting
- 서로 다른 알고리즘을 가진 분류기 중 투표를 통해 최종 예측 결과를 결정하는 방식
부스팅(Boosting, Bootstrap Aggreagting)
- 순차적으로 모델을 학습시키고 이전 모델이 잘못 예측한 부분을 다음 모델이 개선할 수 있도록 하는 방법
앙상블 장점 및 주의점
장점
- 성능 향상
단일 모델의 한계를 넘어서는 높은 성능을 달성하는 것이 가능합니다. 특히 다양한 데이터셋과 조건에서의 일관된 성능 향상을 기대할 수 있습니다.
- 과적합 방지
여러 model을 결합함으로써 특정 데이터 포인트에 지나치게 최적화되는 문제, 즉 과집합을 효과적으로 방지할 수 있습니다.
- 안정성 및 다양성
모델의 다양성이 증가함에 따라 예측의 안정성이 높아집니다. 이는 특히 노이즈가 많은 데이터에서의 성능 향상으로 이어질 수 있습니다.
주의점 및 한계
- 계산 복잡성
다수의 model을 학습하고 예측하는 과정은 많은 계산 리소스를 요구합니다. 따라서 시간과 비용이 추가적으로 발생할 수 있습니다.
- 해석의 어려움
여러 모델의 결합으로 인해 결과의 해석이 복잡해질 수 있습니다. 각 model의 기여도나 중요성을 파악하기 어렵기 때문에 '블랙박스'라는 비판도 받고 있습니다.
군집화
- 주어진 데이터 집합을 비슷한 개체끼리 한 그룹으로, 다른 개체는 다른 그룹으로 묶는 방법
- 레이블 정보가 없는 상태에서 학습을 통해 데이터의 패턴이나 구조를 찾아내어 자동 분리하는 대표적인 비지도 학습 방법으로 군집 안에 있는 개체끼리는 서로 비슷해야 하고 다은 군집과는 달라야 합니다.
군집화의 목적
- 사람들이 사용하는 매체가 다양해지고 네트워크 속도가 빨라지면서 이메일, 사진, 오디오, 비디오, 로그데이터와 같은 비구조화된 데이터들이 많이 생성되고 있지만 이런 데이터들을 사용할 때는 레이블을 지정하기가 어렵습니다. 따라서 이런 데이터들을 처리하는데는 비지도 학습이 많이 사용되고 있으며 대표적으로 군집화 방식이 많이 쓰입니다. 하지만 머신러닝 알고리즘처럼 단순 정확군집화는 레이블이 없어 찾고자하는 것이 무엇인지 모르기 때문에 일반적인 정확도(Accuracy) 같은 지표로 평가하기 어렵고 데이터의요약 정보를 알아내고 그 요약 정보를 통해 전체 데이터가 가지고 있는 특징을 발견하는 데 사용됩니다.
군집화(Clustering) vs 분류(Classification)
K-평균 알고리즘 특성 및 장단점
장점
- 일반적으로 군집화에서 가장 많이 사용되는 알고리즘
- 알고리즘이 쉽고 간결함
단점
- 거리 기반 알고리즘으로 속성의 개수가 많을수록 군집화 정확도가 떨어짐
- 반복횟수가 많을 경우 수행 시간이 느려짐
- 몇 개의 군집을 선택해야 할지 어려움
- 크기가 매우 다른 군집을 찾는 데는 적절하지 않음
K-평균 모델을 과정으로 나타내기
1. 전체 데이터를 군집화할 K를 정하고 각 군집의 대표가 될 가상의 레이블인 초기 중심점(centroid)을 정합니다.
2. 각 데이터를 가장 가까운 중심점의 군집에 할당합니다.
3. 각 군집마다 학습 데이터의 좌표값 평균을 계산한 후 이것을 새로운 중심으로 설정합니다.
4. 중심이 변경된 후 2~3단계를 반복하면서 모든 학습 데이터에서 자신이 속한 군집에서 더 이상 변경이 일어나지 않으면 학습을 완료합니다.
군집화 기준
- 군집 내 응집도를 최소화하기 : 군집 내 데이터들은 서로 가까워햐 함
- 군집 간 분리도 최대화하기 : 다른 군집 내의 데이터들과는 거리가 멀어야 함