머신러닝 모델과 지도 학습
머신러닝에서 지도 학습은 정답이 있는 데이터를 통해 예측하는 방식입니다. 주로 두 가지 모델을 사용합니다:
- 회귀 모델: 연속적인 값을 예측합니다. 예를 들어, 사람의 키, 가격 등을 예측할 때 사용합니다.
- 분류 모델: 데이터를 여러 범주로 분류합니다. 예를 들어, 개와 고양이 또는 사과와 오렌지를 구분하는 문제를 다룹니다.
이번 글에서는 선형 회귀, 다항 회귀, 리지 회귀, 라소 회귀에 대해 간단히 다뤄보겠습니다.
선형 회귀 모델의 기본 개념
선형 회귀 모델에서 중요한 두 가지 요소는 종속 변수와 독립 변수입니다.
- 종속 변수: 예측하려는 목표 변수.
- 독립 변수: 예측에 사용되는 정보.
선형 관계는 두 변수 간에 직선으로 표현될 수 있는 관계를 의미합니다. 예를 들어, 나이만을 이용해 키를 예측할 수 있다면, 이는 선형 관계로 간주됩니다.
- 단순 선형 회귀는 하나의 독립변수와 종속변수 간의 관계를 다룹니다. 예: 나이와 키.
- 다중 선형 회귀는 여러 개의 독립변수를 사용하여 종속변수를 예측하는 모델입니다. 예: 나이와 몸무게를 함께 사용해 키를 예측.
머신러닝 모델에서의 학습과 Loss Function
회귀 모델에서 학습은 b0와 b1 값을 찾는 과정입니다. 이때 중요한 개념이 Loss Function입니다.
- Loss Function: 예측 값과 실제 값 간의 차이를 나타내는 함수입니다. 오차가 크면 Loss Function 값도 커집니다.
- 목표: Loss Function 값을 최소화하는 b0와 b1을 찾아 모델을 최적화하는 것입니다.
경사하강법은 이 Loss Function을 최소화하기 위한 기법으로, 가중치를 점차적으로 업데이트하며 최적점을 찾습니다.
머신러닝 학습의 개념 및 최적화 과정
머신러닝 모델은 일반적으로 복잡하기 때문에 전역 최적점을 찾는 것이 어려운 경우가 많습니다. 이에 따라 미분을 사용해 가중치를 업데이트하며 점진적으로 최적점을 찾아갑니다.
- 학습은 예측값과 실제값을 비교해 오차를 계산하고, 이를 줄여가는 과정입니다.
- 전역 최적점을 찾는 것이 목표이지만, 항상 가능하지 않으며 로컬 최적점에 도달할 수도 있습니다.
머신러닝에서의 최적화와 선형 회귀
학습에서 중요한 점은 전역 최적점에 도달하는 것입니다. 로컬 최적점에 머무르지 않도록 주의해야 합니다.
사이킷런(Scikit-learn)은 선형 회귀 모델 구현을 매우 간단하게 만들어줍니다. 이 라이브러리를 사용하면, 복잡한 수학적 공식 없이도 머신러닝 모델을 쉽게 적용할 수 있습니다.
간단한 데이터와 라이브러리 임포트
선형 회귀를 실습하기 위해, NumPy, Pandas, Scikit-learn 라이브러리를 사용합니다.
- 라이브러리 임포트: 필요한 라이브러리를 먼저 불러옵니다.
- 데이터 분할: train_test_split 함수를 사용하여 학습 데이터와 테스트 데이터를 나눕니다.
- 모델 학습: 학습 데이터를 통해 모델을 학습하고, 성능을 평가합니다.
머신러닝 모델 학습과 평가
train_test_split 함수를 사용하여 데이터를 학습 데이터와 테스트 데이터로 분할합니다. 그 후 모델을 학습하고, 예측값과 실제값을 비교해 MSE(Mean Squared Error)와 R2 점수로 모델 성능을 평가합니다.
- MSE: 값이 0에 가까울수록 좋습니다.
- R2: 값이 1에 가까울수록 좋은 성능을 의미합니다.
평가 매트릭과 모델 성능 비교
MSE와 R2는 머신러닝 모델의 성능을 평가하는 중요한 지표입니다.
- MSE가 0에 가까울수록 좋은 모델입니다.
- R2는 1에 가까울수록 좋은 모델입니다.
이 두 가지 지표를 통해 여러 모델의 성능을 비교할 수 있습니다. 예를 들어, 테스트 데이터를 사용해 예측값을 구하고 실제값과 비교하여 모델의 성능을 평가합니다.
다항 회귀와 과적합 문제
다항 회귀는 비선형 데이터를 예측할 때 유용한 모델입니다. 제곱항, 세 제곱항 등을 추가하여 비선형 관계를 모델링합니다. 그러나 이 모델은 오버피팅의 위험이 있습니다.
- 오버피팅: 모델이 학습 데이터에 과도하게 적합되어 새로운 데이터에 대해 잘 일반화되지 않는 현상입니다.
- 방지 방법: 데이터가 잘 구성되어 있거나, 학습 데이터에 규제를 추가하는 방법을 통해 오버피팅을 방지할 수 있습니다.
차수 선택 문제와 오버피팅
다항 회귀에서 차수를 선택하는 것이 중요한데, 너무 높은 차수를 선택하면 오버피팅이 발생할 수 있습니다.
- 예를 들어, 2차 함수로 예측 가능한 데이터에 10차 함수를 적용하면, 두 점은 완벽하게 예측되지만 나머지 점들에 대해서는 성능이 떨어질 수 있습니다.
- 적절한 차수 선택이 중요하며, 데이터가 간단할 경우 낮은 차수로 예측하는 것이 더 효과적일 수 있습니다.
회귀 모델 구현 및 성능 평가
다항 회귀 모델을 구현하여 비선형 데이터를 예측합니다. 폴리노미얼 피처 생성기를 사용해 0차, 1차, 2차 항을 생성하고, 이를 통해 모델을 학습시킵니다.
- 선형 회귀와 다항 회귀를 비교하여, 다항 회귀가 비선형 데이터를 더 잘 예측하는 것을 확인할 수 있습니다.
- MSE와 R2 값을 통해 모델의 성능을 평가합니다.
선형 회귀와 다항 회귀
선형 회귀식은 다항 회귀식으로 변형할 수 있으며, 이를 통해 더욱 복잡한 데이터 패턴을 모델링할 수 있습니다. 이 과정에서 비선형 데이터를 더 정확하게 예측할 수 있게 됩니다.
'Python > Machine Learning' 카테고리의 다른 글
| 탐색적 데이터 분석(EDA) (4) | 2024.12.19 |
|---|---|
| [TIL] 241219 머신러닝 워크플로우 정리 (3) | 2024.12.19 |
| 챕터2 주택가격예측 과제설명 (3) | 2024.12.18 |
| 데이터 전처리 개념 (0) | 2024.12.15 |
| 데이터 전처리 실습 (2) | 2024.12.15 |