지도 학습은 분류와 회귀 알고리즘 2가지로 나눌 수 있는데,
예측하는 결과가 이름 혹은 문자라면 분류,
예측하는 결과가 임의의 숫자라면 회귀 알고리즘을 사용할 수 있습니다 🛠️
https://www.youtube.com/playlist?list=PLJN246lAkhQjoU0C4v8FgtbjOIXxSs_4Q
[완결] 혼자 공부하는 머신러닝+딥러닝
[혼자 공부하는 머신러닝+딥러닝] 강의 동영상 혼자 공부하는 머신러닝+딥러닝: https://tensorflow.blog/hg-mldl 깃허브: https://github.com/rickiepark/hg-mldl 유튜브: http://bit.ly/hg-mldl-youtube
www.youtube.com
6강. 회귀 문제를 이해하고 K-최근접 이웃 알고리즘으로 풀어보기
📍 시나리오
농어의 길이를 이용하여, 농어의 무게를 예측해보자 !
타깃 : 무게 (임의의 숫자)
1. 훈련 세트 & 테스트 세트 준비하기
- 분류 알고리즘과는 다르게 stratify 값을 사용하지 않았다
- 임의의 숫자가 타깃이기 때문
- false 가 기본값
- perch_length : 1차원 배열
→ train_input, test_input, train_target, test_target : 1차원 배열
→ numpy 의 reshape 함수가 2차원 배열처럼 만들어준다
2. 회귀 모델 훈련 : K-최근접 이웃 회귀 알고리즘
- 훈련 세트로 knr 모델 훈련하기 : fit 함수 사용
- 테스트 세트로 정확성 판단하기 : score 함수 사용
3. 문제 발생 : 과소적합
➡️ 일반적으로, 테스트 세트 정확도가 훈련 세트의 정확도보다 낮다 (왼쪽은 반대의 경우 : 과소적합)
- 훈련 세트의 정확도 > 테스트 세트의 정확도 : 과대적합
- 훈련 세트의 정확도 < 테스트 세트의 정확도 : 과소적합
4. 문제 해결 : 이웃 개수 줄이기
➡️ 이웃의 개수를 5 → 3 으로 변경
➡️ 훈련 세트 정확도 상승 & 과소적합 문제 해결
7강. 사이킷런으로 선형 회귀 모델 만들어보기
📍 시나리오
길이가 50cm 인 농어가 있다. 이전에 만든 knr 모델을 통해 예측한 이 농어의 무게는 대략 1kg 이 나왔다. 하지만 실제 예측값은 1.5kg 으로, 모델이 예측한 값과는 차이가 났다. 이유가 뭘까?😋
💡 K-최근접 이웃 회귀 알고리즘의 문제점
- 훈련 세트의 샘플 범위 밖의 값을 예측하기가 어렵다
➡️ 선형 회귀 알고리즘을 사용해야 한다 !
💡 선형 회귀 알고리즘
- 모델이 데이터로 학습한 값을 저장할 때 보통 _ 을 변수명에 추가한다
- lr.coef_ : 기울기
- lr.intercept_ : 절편
- 문제점 : 직선을 그릴 때, 무게가 음수가 되는 부분이 생긴다
➡️ 다항 회귀의 필요성
💡 다항 회귀를 이용하여 모델 재훈련하기
➡️ 다항 회귀를 위한 클래스는 따로 존재하지 않기 때문에, column_stack 을 이용하여 직접 구현해주어야 한다
- 원래의 특성을 제곱하면서, 다항식 학습 모델을 만든다
🐟 50cm 농어의 무게 예측값이 1574g 으로 보다 정확하게 나왔다 !
8강. 특성 공학과 규제 알아보기
여러 특성을 조합 → 특성 공학
✅ 여러 개의 특성을 이용한 다중 선형 회귀 사용
회귀 분석 종류 | 설명 |
단순 선형 회귀 | 하나의 특성만 사용 |
다중 선형 회귀 | 사용하는 특성이 둘 이상 |
다항 회귀 | 비선형 데이터 |
💡 다중 선형 회귀 모델 구현하기
- 늘어난 특성의 개수 확인하기 : shape
- 어떻게 늘어났는지 확인하기 : get_feature_names()
✅ 특성의 개수를 늘렸을 때
- 훈련 세트의 정확도는 거의 완벽하다
- 반면, 테스트 세트의 정확도는 음수이다 (하나도 맞지 않음)
→ 과대적합
➡️ 규제가 필요하다 !
(규제 전 표준화 필수)
💡 규제로 테스트 세트 정확도 높이기
1. L1 규제 : Lasso 모델
- L1 규제 : 선형
- 모델 파라미터 : | 가중치 |
- 훈련 세트와 테스트 세트 alpha의 간격이 제일 좁은 곳이 최적
- 일부 특성을 완전히 사용하지 않을 수도 있다
- 가중치를 0으로 → 특성 사용 X
- lasso.coef_ → 40
2. L2 규제 : Ridge 모델
- 모델 파라미터 : (가중치)^2
- alpha 매개변수 기본값 = 1
- 커질수록 강도가 세진다 (= 규제↑)
- 작아질수록 강도가 약해진다
- 어떤 것이 최적인지는 확인해보아야 알 수 있다
- alpha 값 찾는 법
- log scale 로 변경 (10의 배수)
- 훈련 세트와 테스트 세트의 간격이 가장 좁은 곳이 최적이다
→ alpha = 0.1
- 일반적으로 Lasso 회귀보다는 Ridge 회귀가 효과적이다 ^_^
'AI' 카테고리의 다른 글
[AI 도전기 9일차] 결정 트리에서의 이진 분류에 대해 알아보자 ! (0) | 2024.04.04 |
---|---|
[AI 도전기 8일차] 분류 모델에서 확률 구하기 : 로지스틱 회귀와 확률적 경사 하강법 (0) | 2024.04.03 |
[AI 도전기 6일차] 훈련 세트와 테스트 세트 데이터 다루기 (0) | 2024.04.01 |
[AI 도전기 5일차] 간단한 머신 러닝 예제 공부하기 (0) | 2024.03.31 |
[AI 도전기 4일차] Google Colab 시작하기 (0) | 2024.03.30 |