일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 인공지능캠프
- GNS3
- wireless communication
- ORAN
- 머신러닝 #로지스틱 회귀 #소프트맥스 #시그모이드
- AI
- naver connect
- rocky
- Communication
- 한국계산과학공학회
- 6G
- LG U+
- 머신러닝 #규제 #릿지 #라쏘 #특성공학
- telco
- digico
- computer-use agents
- 코딩테스트
- 머신러닝 #확률적 경사하강법 #경사하강법
- 결정트리 #머신러닝 #불순도 #정보이득
- DL
- her
- 백준
- ai agents
- ML
- MobaXterm
- MATLAB
- matlab onramp
- 머신러닝 #선형 회귀 #회귀 #회귀알고리즘
- aiaas
- onramp
- Today
- Total
Tenma
[ML] Ch.3 (2) 선형 회귀 본문
안녕하세요!
Tenma입니다.

이번 장에서는 (2) 선형 회귀를 다루며
k- 최근접 이웃 회귀와 선형 회귀 알고리즘의 차이를 이해하고 사이킷런을 사용해 여러가지 선형 회귀 모델을 만들어 보겠습니다
Ch.3 (2) 선형 회귀
k-최근접 이웃의 한계
[출력]
(42, 1) (14, 1)
[1033.33333333]
*문제 발생!
=> 50cm의 농어의 실제무게는 1500g 이지만 예측 값은 1033.33g 이 나왔다!
원인을 파악하기 위해 산점도를 그려봅시다!
=>kneighbors() 메서드를 통해 이웃들을 확인한 그래프 입니다
샘플 타깃(50cm의 농어)의 평균을 구해봅시다.
[출력]
1033.3333333333333
이번엔 100cm의 농어를 예측해봅시다.
[출력]
[1033.33333333]
50cm 농어와 100cm 농어의 예측값이 동일하게 나오네요
그래프를 그려서 한번 확인 해 봅시다
=> 훈련 세트의 범위를 넘어가서 농어의 길이가 아무리 길어도 이웃이 같으므로 동일한 값을 예측하겠네요
*머신러닝 모델은 주기적으로 훈련해야 한다!
: 시간과 환경이 변하면서 데이터도 바뀌기 때문에 주기적으로 새로운 훈련 데이터로 모델을 훈련 시켜야 합니다.
선형 회귀
*선형 회귀란?
: 대표적인 회귀 알고리즘으로 특성이 하나인 경우 직선을 학습하는 알고리즘입니다.
분류 알고리즘과 비슷하게 선형 회귀 클래스에도 fit(), score(), predict() 메서드가 존재합니다.
[출력]
[1241.83860323]
=> k-최근접 이웃회귀에 비해 선형 회귀가 더 높은 값으로 예측했음을 알 수 있습니다.
직선을 그리기 위해선 기울기와 절편이 필요합니다.
코드를 통해 기울기와 절편을 알아 봅시다!
[출력]
[39.01714496] -709.0186449535477
=> 여기서 coef_ 는 coefficient (계수) 또는 weight (가중치)라고 부릅니다.
* 모델 파라미터
: 모델 파라미터는 머신러닝에서 찾은 값이라는 의미로 위에서의 coef_ 와 intercept_ 를 의미합니다.
* 모델 기반 학습 vs 사례 기반 학습
: k-최근접 이웃에는 모델 파라미터 없이 훈련세트를 저장해 훈련 하는데 이런 방식을 사례 기반 학습이라 하고
선형 회귀와 같이 최적의 모델 파라미터를 찾는 과정을 모델 기반 학습이라고 합니다.
이제 찾은 직선을 그려보겠습니다.
=> 50cm의 농어가 직선의 맨 끝에 있습니다.
=> 길이가 작은경우 무게가 음수가 나오네요?
훈련 세트와 테스트 세트를 평가해 봅시다.
[출력]
0.939846333997604
0.8247503123313558
=> 훈련 세트와 테스트 세트의 점수가 모두 낮은 과소적합이 발생했네요
다항 회귀
선형 회귀에서의 문제점을 보완하기 위한 방법을 생각해 봅시다!
2차 방정식을 활용해볼텐데요
우선 길이의 제곱 항이 훈련세트에 추가 되어야 합니다
[출력]
(42, 2) (14, 2)
=> 길이의 제곱항을 추가한 2차원 리스트를 만들었습니다.
=> **2 도 넘파이 브로드 캐스팅이 수행됩니다.
여기서 훈련 세트에는 제곱항을 추가했지만 타깃 값은 그대로 사용한다는 점을 알아야 합니다.
[출력]
[1573.98423528]
=> 선형 회귀 보다도 높은 무게를 예측하고 실제 값과도 유사한 값을 예측했음을 알 수 있습니다.
계수와 절편을 알아봅시다
[출력]
[ 1.01433211 -21.55792498] 116.0502107827827
* 2차 방정식이 선형 회귀?
: 여기서 길이의 제곱을 다른 변수로 치환하면 ' a x 변수 + b x 길이 + c' 처럼 변수와 길이의 선형 관계로 표현 가능할 수있습니다.
이처럼 다항식을 사용한 선형 회귀를 다항 회귀(polynomial regression)이라고 합니다.
=> 선형 회귀 모델보다 더 나은 모델이 완성 되었네요!
그럼 평가를 해봅시다
[출력]
0.9706807451768623
0.9775935108325122
=> 테스트 세트의 점수가 향상되었지만 여전히 테스트 세트 점수가 높아 과소적합이 남아 있는것 같긴 합니다.
이번 장에서는 직선의 방정식을 찾고 다항 회귀를 이용해 농어의 길이로 무게를 예측해 보았는데요
다항식에서의 계수와 절편에 따라 예측이 달라질 수 있음을 알 수 있었습니다.
하지만 여전히 과소적합이 남아 있었습니다.

다음장에서는 좀 더 복잡한 모델로 이를 해결해 보겠습니다!!
감사합니다.
'AI > Machine Learning' 카테고리의 다른 글
[ML] Ch.4 (1) 로지스틱 회귀 (0) | 2024.07.26 |
---|---|
[ML] Ch.3 (3) 특성 공학과 규제 (0) | 2024.07.25 |
[ML] Ch.3 (1) k-최근접 이웃 회귀 (0) | 2024.07.17 |
[ML] Ch.2 (2) 데이터 전처리 (2) | 2024.07.15 |
[ML] Ch.2 (1) 훈련 세트와 테스트 세트 (0) | 2024.07.12 |