글 한눈에 보기

문제 설정
https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_california_housing.html 데이터 피쳐 설명
원본 구조
1990년 캘리포니아 주택 데이터
데이터 맥락
https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_california_housing.html 데이터 피쳐 설명
주요 장
1990년 캘리포니아 주택 데이터
구현 흐름
California Housing 불러오기 -> GridSearchCV 모델 학습 -> 회귀 성능 평가
자료
ipynb / md · 코드 7 · 실행 6
주요 스택
sklearn, numpy
from sklearn.datasets import fetch_california_housing
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import mean_squared_error, make_scorer
import numpy as np

1990년 캘리포니아 주택 데이터

https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_california_housing.html

항목 내용
데이터 크기 총 20,640개의 샘플
입력 특성 (X) 8개의 수치형 변수
타겟 (y) 1인당 평균 주택 가격 (단위: 100,000 달러)
사용 목적 회귀 문제 (주택 가격 예측 등)
출처 UCI Machine Learning Repository (California Housing Dataset, 1996 Census 기반)

데이터 피쳐 설명

열 이름 설명
MedInc 블록 내 중간 소득 (단위: 10,000달러)
HouseAge 주택 연식의 중앙값
AveRooms 가구당 평균 방 개수
AveBedrms 가구당 평균 침실 개수
Population 블록 내 인구 수
AveOccup 가구당 평균 인원 수
Latitude 위도
Longitude 경도
# 데이터 로드
X, y = fetch_california_housing(return_X_y=True)
# RMSE 함수 정의
def rmse(y_true, y_pred):
    return np.sqrt(mean_squared_error(y_true, y_pred))

rmse_scorer = make_scorer(rmse, greater_is_better=False)
# 파라미터 그리드 정의
param_grid = {'alpha' : [0.01, 0.1, 1, 10, 100]}
# 그리드 서치 설정 및 학습
grid = GridSearchCV(Ridge(), param_grid, scoring=rmse_scorer, cv=5)         # cv=5: cross validation
grid.fit(X,y)
# 결과 출력
print("최적의 alpha: ", grid.best_params_['alpha'])     # best_params_: 모델의 최적 파라미터 값 반환
print("RMSE: ", grid.best_score_)                       # best_score_: 최적 모델의 점수

=> RMSE가 0.75라는건,

모델의 예측값이 실제값과 평균적으로 약 7만 5천달러 정도 차이가 난다! (Why? 기본 단위가 100,000달러)