9.기본 지도학습 알고리즘들 (Lasso, Ridge)
글 한눈에 보기
문제 설정
테스트 데이터 트레이닝 데이터 분할
원본 구조
원본 마크다운의 큰 섹션 흐름을 기준으로 이 실습을 다시 읽을 수 있게 정리했습니다.
데이터 맥락
테스트 데이터 트레이닝 데이터 분할
주요 장
전처리와 입력 정리 · 선형 모델과 정규화
구현 흐름
California Housing 불러오기 -> LinearRegression 모델 학습 -> 학습/검증 데이터 분리
자료
ipynb / md · 코드 19 · 실행 18
주요 스택
sklearn
from sklearn.datasets import fetch_california_housing
# 데이터 불러오기
X, y = fetch_california_housing(return_X_y = True)
# 위와 같은 코드
data = fetch_california_housing()
X, y = data.data, data.target
X.shape
# 테스트 데이터 트레이닝 데이터 분할
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state=42)
from sklearn.linear_model import LinearRegression
# 모델링
model_lr = LinearRegression()
model_lr.fit(X_train, y_train)
model_lr.score(X_test, y_test)
from sklearn.linear_model import Ridge
# 릿지 회귀 모델링
model_ridge = Ridge(alpha=0.9)
model_ridge.fit(X_train, y_train)
model_ridge.score(X_test, y_test)
from sklearn.linear_model import Lasso
model_lasso = Lasso(alpha=0.5)
model_lasso.fit(X_train, y_train)
model_lasso.score(X_test, y_test)
from sklearn.linear_model import ElasticNet
model_elastic = ElasticNet(alpha=0.1, l1_ratio=0.5)
model_elastic.fit(X_train, y_train)
model_elastic.score(X_test, y_test)
from sklearn.metrics import mean_squared_error
print("LR MSE: ", mean_squared_error(y_test, model_lr.predict(X_test)))
print("Ridge MSE: ", mean_squared_error(y_test, model_ridge.predict(X_test)))
print("Lasso MSE: ", mean_squared_error(y_test, model_lasso.predict(X_test)))
print("Elastic MSE: ", mean_squared_error(y_test, model_elastic.predict(X_test)))