1. 베이스라인 모델_선형회귀
from sklearn.model_selection import train_test_split
#
num_train = len(train) # 훈련 데이터 개수
# 훈련 데이터와 테스트 데이터 나누기
X_train= all_data[:num_train] # 0~num_train -1 행
X_test = all_data[num_train:] # num_train ~ 마지막 행
y_train = train['yield'].values
y_test = submission['yield'].values
==> 훈련 데이터와 테스트 데이터 나누기
%%time
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import GridSearchCV
# 선형 회귀 모델 초기화
lr_model = LinearRegression()
# 그리드 서치를 위한 하이퍼파라미터 그리드 준비
param_grid_lr = {
'fit_intercept': [True, False], # 절편 사용 여부
#'normalize': [True, False] # 특성 정규화 여부
'n_jobs' : [-1]
}
# 그리드 서치 객체 생성
grid_search_lr = GridSearchCV(lr_model, param_grid_lr, cv=5)
# 그리드 서치 수행
grid_search_lr.fit(X_train, y_train)
# 최적의 모델 및 파라미터 출력
best_model_grid_search_lr = grid_search_lr.best_estimator_
best_params_grid_search_lr = grid_search_lr.best_params_
print("Best Model (Linear Regression):", best_model_grid_search_lr)
print("Best Parameters (Linear Regression):", best_params_grid_search_lr)
==> 그리드 서치를 활용한 최적의 하이퍼파라미터 값 찾기
y_preds = best_model_grid_search_lr.predict(X_test)
y_preds
from sklearn.model_selection import train_test_split
num_train = len(train) # 훈련 데이터 개수
# 훈련 데이터와 테스트 데이터 나누기
X= all_data[:num_train] # 0~num_train -1 행
X_test = all_data[num_train:] # num_train ~ 마지막 행
y = train['yield'].values
X_train , X_valid , y_train, y_valid = train_test_split(X,y, test_size = 0.2, random_state=0)
==> 검증값 산정하기 위한 데이터 나누기
from sklearn.metrics import mean_absolute_error
# 모델 학습 (예시로 Linear Regression 모델 사용)
# 검증 데이터에 대한 예측 수행
y_pred = best_model_grid_search_lr.predict(X_valid)
# MAE 계산
mae = mean_absolute_error(y_valid, y_pred)
print("MAE:", mae)
MAE: 368.9014144764922

==> 상당히 낮은 등수이다 1700등/1800등
from sklearn.model_selection import train_test_split
#
num_train = len(train) # 훈련 데이터 개수
# 훈련 데이터와 테스트 데이터 나누기
X_train= all_data[:num_train] # 0~num_train -1 행
X_test = all_data[num_train:] # num_train ~ 마지막 행
y_train = train['yield'].values
y_test = submission['yield'].values
%%time
from sklearn import metrics
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import mean_absolute_error
ridge_model = Ridge()
# 하이퍼파라미터 값 목록
ridge_params = {'max_iter': [30, 50,100,200], 'alpha': [0.01,0.05,0.1, 1] ,
'random_state' : [42],
'solver' : ['auto']}
# 교차 검증용 평가 함수(MAE 계산)
mae_scorer = metrics.make_scorer(mean_absolute_error, greater_is_better=False)
gridsearch_ridge_model = GridSearchCV(estimator=ridge_model,
param_grid=ridge_params,
scoring=mae_scorer,
cv=5)
# 그리드 서치 수행
gridsearch_ridge_model.fit(X_train, y_train)
best_model_grid_search_ridge = gridsearch_ridge_model.best_estimator_
best_params_grid_search_ridge = gridsearch_ridge_model.best_params_
print("Best Model (Ridge Regression):", best_model_grid_search_ridge)
print("Best Parameters (Ridge Regression):", best_params_grid_search_ridge)
==> 릿지 모델(L1 규제 활용한 모델)
https://knowallworld.tistory.com/446
[LogisticRegression()활용] 하이퍼파라미터 값 알아보기★ROC-AUC★L1,L2규제
1. LogisticRegression() 활용 최적의 하이퍼파라미터 찾고 학습하기 %%time from sklearn.model_selection import GridSearchCV from sklearn.linear_model import LogisticRegression # 로지스틱 회귀 모델 생성 logistic_model = LogisticRegr
knowallworld.tistory.com
Best Model (Ridge Regression): Ridge(alpha=0.01, max_iter=30, random_state=42)
Best Parameters (Ridge Regression): {'alpha': 0.01, 'max_iter': 30, 'random_state': 42, 'solver': 'auto'}
Wall time: 949 ms
★주목!!
# 교차 검증용 평가 함수(MAE 계산)
mae_scorer = metrics.make_scorer(mean_absolute_error, greater_is_better=False)
==> 문제에서 MAE를 기반한 점수 출력이므로 교차검증용 mae_scorer 생성시킨다!!!
==> 이런식으로 최적의 하이퍼파라미터 그리드서치로 찾아냈다
# 타깃값 1일 확룰 예측
y_preds= best_model_grid_search_ridge.predict(X_test)
# y_preds
from sklearn.model_selection import train_test_split
num_train = len(train) # 훈련 데이터 개수
# 훈련 데이터와 테스트 데이터 나누기
X= all_data[:num_train] # 0~num_train -1 행
X_test = all_data[num_train:] # num_train ~ 마지막 행
y = train['yield'].values
X_train , X_valid , y_train, y_valid = train_test_split(X,y, test_size = 0.2, random_state=0)
from sklearn.metrics import mean_absolute_error
# 모델 학습 (예시로 Linear Regression 모델 사용)
# 검증 데이터에 대한 예측 수행
y_pred = best_model_grid_search_ridge.predict(X_valid)
# MAE 계산
mae = mean_absolute_error(y_valid, y_pred)
print("MAE:", mae)
==> gridsearch로 찾은 최적의 하이퍼파라미터를 바탕으로 Ridge모델을 시행하여 검증 데이터에 대한 MAE 계산
MAE: 368.90375712305973
==> 조금 높아졌다? ==> 선형회귀보다

==> 1615등 / 1800 등 조금 높아졌다