일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 에다 부스트
- ML
- 머신러닝 #ml #미분 #기본기
- Kotlin
- featureimportances
- 디자인 패턴 #싱글톤
- 멀티 프로그래밍
- 결정트리
- 운영체제
- Java
- ml
- bootstrapping
- 다항회귀
- Mutex lock
- cross_val_score
- 속성중요도
- db
- 상호 배제
- 코틀린
- 머신러닝 #ml #기본기
- 지니불순도
- JetBrains
- Mutual exclusion
- jdk #javac #jre #java standard library #javadoc #jar #java
- 머신러닝 #ml #선형대수학 #기본기
- 11049
- min-max
- 경쟁 조건
- featurescaling
- gridsearch
- Today
- Total
코딩하는 오리
[ML] 기본 지도 학습 알고리즘들 - 3. 다항 회귀 (Polynomial Regression) 본문
01. 다항 회귀
직선보다는 곡선이 더 가설함수가 정확할 수 있다.
데이터에 잘 맞는 곡선이 이차함수, 삼차함수 등등 다양
차수가 많을 수록 굴곡이 많은 곡선.
다항식 등 데이터에 잘 맞는 곡선을 찾는 것을 다항 회귀
03. 단일 속성 다항 회귀
다항 회귀도 2가지로 나뉨
1. 속성 1개
2. 속성 여러 개 (다중 다항 회귀)
사실 다중 선형 회귀와 비슷하게 생김
05. 다중 다항 회귀
2차 함수일 때 2차항과 가설함수 모양
동일하게 다항 회귀 처럼, 입력 변수가 9개인 다중 선형 회귀와 동일하게 취급 가능
07. 다항 회귀의 힘
다항 회귀를 사용하면 단순히 복잡한 고차식에 데이터를 맞추는 거를 넘어서 어떻게 모델의 성능을 극대화할 수 있는지
ex) 집 높이, 집 너비의 2가지 데이터
아무리 너미가 커도 높이가 작거나, 높이만 크고 너비만 작으면 크기가 작고 구조가 효율적이지 X -> 집값 높지 않다이 두 변수들 보다 집값을 예측하는데 더 좋은 수치는 이 둘을 곱한 값, 집의 넓이이다.
단순 선형 회귀를 사용하면 이 두 변수가 독립적이기 때문에,
높이와 너비가 같이 커야지만 집값도 커진다라는 관계를 학습할 수 없다 !
높이, 너비 속성이 미치는 영향을 따로 찾아낸다.
추가적으로 집이 아무리 커도 높은 층이 아니거나, 집하철에서 아무리 가까워도 지은지 20년이 넘으면 집 값이 낮을 수 있다. 이런 경우에도 단순 선형회귀를 쓰면 속성 하나하나가 다 독립적이기 때문에 이런 변수들 사이의 관계를 최종 예측 결과에 반영하지 못한다.
따라서 속성을 서로 곱해 차항을 높여주면(선형 회귀 문제를 다항 회귀 문제로 만들면) 속성 사이에 있는 복잡한 관계를 프로그램에 학습시킬 수 있다 !
08. scikit-learn으로 다항 회귀 문제 만들기
boston_dataset.data.shape : (506,13)
boston_dataset.feature_names
이번에는 다항 회귀를 하므로 바로 데이터를 판다스 데이터프레임에 넣지 않고, 가상 열을 추가 후 넣자
import sklearn.preprocessing import PolynomialFeatures (다항 속성을 만들어주는 툴)
polynomial_transformer = PolynomialFeatures(2)
polynomial_data = polynomial_transformer.fit_transform(boston_dataset.data)
polynomial_data.shape : (506, 105)
polynomial_feature_names = polynomail_transformer.get_feature_names(boston_dataset.feature_names)
가능한 모든 2차 조합의 열들이 추가된 형태
X = pd.DataFrame(polynomial_data, column = polynomial_feature_names)
09. scikit-learn으로 다항 회귀 하기
나머지 동일
mean_squared_error(y_test, y_test_prediction) ** 0.5
오차 약 3200 달러 (다중 선형 회귀 4600 보다 더 낫다)
'AI > ML' 카테고리의 다른 글
[ML] 결정 트리와 앙상블 기법 - 1. 결정 트리(Decision Tree) (0) | 2024.07.30 |
---|---|
[ML] 기본 지도 학습 알고리즘들 - 4. 로지스틱 회귀 (Logistic Regression) (0) | 2024.07.30 |
[ML] 기본 지도 학습 알고리즘들 - 2. 다중 선형 회귀(Multiple Linear Regression) (0) | 2024.07.29 |
[ML] 기본 지도 학습 알고리즘들 - 1. 선형 회귀(Linear Regression) (0) | 2024.07.27 |
[ML] 머신 러닝 기본기 - 3. 미분 필요한 만큼만 배우기 (0) | 2024.07.21 |