데이터분석-머신러닝-AI/강의 정리
[혼자 공부하는 머신러닝+딥러닝] 7강. 사이킷런으로 선형 회귀 모델 만들어 보기 - 선형 회귀, 다항회귀
https://www.youtube.com/watch?v=xkknXJeEaVA&list=PLJN246lAkhQjoU0C4v8FgtbjOIXxSs_4Q&index=8
- K-Neighbors은 범위를 크게 벗어난 데이터에 대해 이웃한 데이터가 없는 경우 이 중에서 가장 인접한 이웃들을 가지고 평가하기 때문에 올바른 결과를 판별할 수 없다.
- 이는 훈련세트 범위 밖의 데이터를 가지고 예측/추정하기 어렵다.
- 이러한 경우, 문제를 해결하기 위해서 선형회귀(linear ragression) 방법을 사용한다.
- LinearRegression
- 사용 방법 :
- 기울기는 약 39, y 절편은 약 마이너스 709이다
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
# 형 회귀 모델 훈련
lr.fit(train_input, train_target)
# 50cm 농어에 대한 예측
print(lr.predict([[50]]))
[1241.83860323]
print(lr.coef_, lr.intercept_)
[39.01714496] - 709.0186449535477
- 사이킷런 모델들은 어떤 값들에서 학습한 값들을 저장할 때 다른 속성과 구분하기 위해 속성 끝에 밑줄 문자를 추가한다.
- 학습한 직선 그리기
- 일차식 y = ax+b
# 훈련 세트의 산점도를 그린다
plt.scatter(train_input, train_target)
# 15에서 50까지 1차 방정식 그래프를 그립니다.
plt.plot([15, 50], [15*lr.coef_ + lr.intercept_, 50*lr.coef_ + lr.intercept_])
# 50cm 농어 데이터
plt.scatter(50, 1241.8, marker='^')
plt.show()
print(lr.score(train_input, train_target))
0.9398463339976039
print(lr.score(test_input, test_target))
0.8247503123313558
- 다항회귀 : x의 다항식을 만들어 선형회귀를 하는 방식
- 이차식 y=ax^2 +bx +c
train_poly = np.column_stack((train_input ** 2, train_input))
test_poly = np.column_stack((test_input ** 2, test_input))
- 모델 다시 훈련
- 무게 = 1.01 x 길이 ^2 - 21.6 x 길이 + 116.05
lr = LinearRegression()
# 형 회귀 모델 훈련
lr.fit(train_poly, train_target)
# 50cm 농어에 대한 예측
print(lr.predict([[50**2, 50]]))
[1573.98423528]
print(lr.coef_, lr.intercept_)
[1.01433211 -21.55792498] 116.0502107827827
- 학습한 직선 그리기
# 구간별 직선을 그리기 위해 15에서 49까지 정수 배열을 만듭니다
point = np.arrange(15, 50)
# 훈련 세트의 산점도를 그립니다.
plt.scatter(train_input, train_target)
# 15에서 49까지 2차 방정식 그래프를 그립니다
plt.plot(point, 1.01*point**2 - 21.6*point + 116.05)
# 50cm 농어 데이터
plt.scatter([50], [1574], marker = '^')
plt.show()
print(lr.score(train_poly, train_target))
0.9706807451768623
print(lr.score(test_poly, test_target))
0.9775935108325122
- reference :
https://speedanddirection.tistory.com/73
https://blog.naver.com/breezehome50/222311516510
'데이터분석-머신러닝-AI > 강의 정리' 카테고리의 다른 글
[혼자 공부하는 머신러닝+딥러닝] 9강. 로지스틱 회귀 알아보기 - 분류모델 (2) | 2023.11.09 |
---|---|
[혼자 공부하는 머신러닝+딥러닝] 8강. 특성 공학과 규제 알아보기 - 다중회귀 (1) | 2023.10.25 |
[혼자 공부하는 머신러닝+딥러닝] 6강. 회귀 문제를 이해하고 k-최근접 이웃 알고리즘으로 풀어 보기 - reshape, 과대적합, 과소적합 (1) | 2023.10.24 |
[혼자 공부하는 머신러닝+딥러닝] 5강. 정교한 결과 도출을 위한 데이터 전처리 알아보기 - 표준화 정리 (0) | 2023.10.20 |
[혼자 공부하는 머신러닝+딥러닝] 4강. 훈련 세트와 테스트 세트로 나누어 사용하기 - 훈련 세트와 테스트 세트 분할하는 방법 (0) | 2023.10.17 |
댓글