일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Deep Learning
- 해석
- MariaDB
- 선형회기모델
- tensorflow
- 데이터 분석
- keras
- 데이터베이스
- pythone
- 데이터 수집
- 파이썬
- 알고리즘기초
- 머신러닝
- 딥러닝
- 데이터
- pandas
- 정확도
- 회귀모델
- 데이터 가공
- sklearn
- python기초
- python
- 예측
- SQL예제
- Database
- 데이터전처리
- 훈련
- 크롤링(crawling)
- 시각화
- HeidiSQL
- Today
- Total
코딩헤딩
[ML(머신러닝)] 다중회귀모델(Multiple Regression) 2 본문
1. 평균절대오차(MAE) 확인하기
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(test_target, test_pred)
mae
2. 특성 클래스 생성하기
poly = PolynomialFeatures(include_bias=False)
poly
- 특성을 생성시킬 때 y절편값도 생성을 함께 시킨다.
- 특성만 있으면 되기 때문에 y절편을 생성에서 제외시키기 위해서
---> include_bias = False로 설정
temp_data = [[2,3,4,]]
temp_data
- sample데이터로 어떤 특성들이 만들어지는지 확인 먼저
특성을 만들 패턴 찾기
poly.fit(temp_data)
찾은 패턴으로 특성 생성하기
poly.transform(temp_data)
결과 : array([[ 2., 3., 4., 4., 6., 8., 9., 12., 16.]])
3. 실제 독립변수를 이용해서 특성 생성하기
클래스 생성하기
from sklearn.metrics import mean_absolute_error
poly = PolynomialFeatures(degree=2, include_bias=False)
poly
- dgree-2 : 차원을 의미하며 2는 제곱승을 의미함
: 3을 넣으면 2의 제곱, 3의 제곱을 수행
: 4를 넣으면 3의 제곱, 3의 제곱, 4의 제곱을 수행함
: 가본값은 2 (생략하면 2의 제곱승이 적용됨)
패턴 찾기
# - 훈련 독립변수 사용
poly.fit(train_input)
특성 생성하기
### 훈련 독립변수에 특성 추가하기
train_poly = poly.transform(train_input)
### 테스트 독립변수에 특성 추가하기
test_poly = poly.transform(test_input)
train_poly.shape, test_poly.shape
결과 : ((39, 9), (17, 9))
사용된 패턴 확인하기
poly.get_feature_names_out()
결과 :
array(['x0', 'x1', 'x2', 'x0^2', 'x0 x1', 'x0 x2', 'x1^2', 'x1 x2',
'x2^2'], dtype=object)
1. 클래스 생성
lr = LinearRegression()
lr
2. 훈련하기
lr.fit(train_poly, train_target)
3. 훈련점수 파악
train_r2 = lr.score(train_poly, train_target)
test_r2 = lr.score(test_poly, test_target)
test_pred = lr.predict(test_poly)
train_r2, test_r2
4. 평균절대오차(MAE) 확인하기
mae = mean_absolute_error(test_target, test_pred)
mae
<해석>
- 특성공학을 적용하지 않은 모델은 검증(테스트) 정확도가 다소 낮았으며, 오차가 50 정도 있었으나,
- 특성공학을 적용하여 특성을 추가하여 훈련 집중도를 높였을 때는
--> 훈련 및 검증(테스트) 정확도 모두 높아졌으며, 과적합이 발생하지 않은 일반화 모델로 오차는 30 정도의 매우 우수한 모델로 판단함
- 이 모델을 사용하려면, 독립변수의 특성 길이, 높이, 두께 3개의 특성을 사용해야 하며, 특성 생성 시 degree=2를 적용한 특성을 사용해야 함
'머신러닝 | 딥러닝' 카테고리의 다른 글
Deep learning[딥러닝] 인공신경망 훈련모델 (데이터 전처리, 모델 생성) (0) | 2024.01.03 |
---|---|
[ML(머신러닝)] 다중회귀모델 3 (규제, 릿지, 라쏘) (0) | 2023.12.31 |
[ML(머신러닝)] 다중회귀모델(Multiple Regression) (0) | 2023.12.29 |
[ML(머신러닝)] KNN 회귀모델 -5 <다항회귀모델(곡선)> (0) | 2023.12.28 |
[ML(머신러닝)] KNN 회귀모델 -4 <회귀모델> (1) | 2023.12.27 |