목 차
1. 선형 회귀
(비선형 회귀는 선형 회귀에서 종속 변수(y)로 z(시그모이어 함수)를 구한다.z가 독립변수(x)의 계수와 관계없이 나오는 값이라 비선형 모델이라 합니다.)
2. 릿지 회귀
3. 라쏘 회귀
4. 엘라스틱넷 회귀
5. 랜덤포레스트 & xgboost
6. 하이퍼파라미터 튜닝
7. 평가(회귀)
머신러닝 구조 개념
1) 데이터 셋
2) 테스트 (예측값, 실제값 대입)
3) 정확도 출력 (accruacy : : 분류는 매칭 정확도(확률), 회귀는 오차(error)값)
4) 정확도 성능 Optimizing (하이퍼파라미터 조절)
5) 검증
(Validation: 모델이 test data 이전에 점검 과정, 검증 데이터 사용, 모의고사)
(검증 방법 : KFold, Holdout, CV(교차검증), LOOCV)
6) 평가 (Evaluation: 실제값과 모델에 의한 예측된 값을 비교하여 차이(오차)를 구하는 과정)
# 검증 데이터를 분리
from sklearn.model_selection import train_test_split
# 오차 제곱의 평균 구하기 (평가를 위함), mse
from sklearn.metrics import mean_squared_error
# 데이터 셋 로드 (당뇨병 : diabetes)
from sklearn.datasets import load_diabetes
# 선형 회귀 모델 import (LinearRegression)
from sklearn.linear_model import LinearRegression
# 릿지 회귀 모델 import (Ridge)
from sklearn.linear_model import Ridge
# 회귀 계수
model.coef_ # 피처(컬럼) 순서로 출력 된다
# 회귀 계수 저장 (alpha = 뭐뭐 일때)
coef['alpha뭐뭐'] = model.coef_
# 데이터 프레임화
pd.DataFrame(data=뭐뭐, columns=뭐뭐, columns=['뭐뭐'])
# 엘라스틱넷 회귀 L1, L2 규제 비율 조절 (l1_ratio 60%)
model = ElasticNet(alpha=0.0001, l1_ratio=0.6)
# 하이퍼파라미터 튜닝
# GridSearchCV, RandomizedSearchCV import 하기
from sklearn.model_selection import GridSearchCv, RandomizedSearchCV
# GridSearchCV 코드 (params 딕셔너리 작성했다고 가정)
GridSearchCV(모델, 파라미터(params), cv=수, n_jobs=-1) #n_jobs=-1 코어 전부 사용
grid.fit(x,y) # x,y 데이터 대입
# 최적의 파리미터 찾기 (위 딕셔너리 params 중)
grid.best_params_
# 분류에서 정확도 찾기도 된다
grid.bestscore_