인프런 커뮤니티 질문&답변

JAEHO KWON님의 프로필 이미지
JAEHO KWON

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

gridsearchcv관련 간단한 질문이 있습니다.

작성

·

346

0

안녕하십니까, 많이 배우고 있습니다.

질문 : GridSearchCV의 경우 k-fold만 사용 하는 것 같은데, stratified k-fold는 사용할 수 없나요?

 

아래는 chat gpt가 stratified k-fold 사용법을 알려줬는데 아래와 같이 사용하면 되는지 여쭙습니다.

 

from sklearn.model_selection import StratifiedKFold, GridSearchCV
from sklearn.svm import SVC

# 예제 데이터와 모델
X, y = load_your_data()  # 데이터를 로드하거나 생성하는 코드
model = SVC()  # 사용할 모델

# Stratified K-Fold 교차 검증 설정
stratified_kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)

# 그리드 서치 설정
param_grid = {
    'C': [0.1, 1, 10],
    'kernel': ['linear', 'rbf']
}

grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=stratified_kfold)

# 그리드 서치 수행
grid_search.fit(X, y)

# 최적의 매개변수와 결과 출력
print("Best parameters found: ", grid_search.best_params_)
print("Best cross-validation score: {:.2f}".format(grid_search.best_score_))

위 코드에서는 StratifiedKFoldGridSearchCVcv 매개변수에 전달하여 Stratified K-Fold 교차 검증을 수행하고 있습니다. 따라서 그리드 서치는 Stratified K-Fold 교차 검증을 사용하여 모델의 성능을 평가합니다. StratifiedKFoldn_splits 매개변수는 원하는 폴드 수를 지정할 수 있습니다.

이렇게 하면 그리드 서치를 Stratified K-Fold 교차 검증과 함께 사용하여 클래스 간 분포를 고려한 모델 평가를 수행할 수 있습니다.


답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

오, ChatGPT가 이런 것까지 알려주는 군요.

다만 GridSearchCV는 분류의 경우에 StratifiedKFold를 기본 적용합니다. 때문에 굳이 ChatGPT가 알려준대로 코드를 적을 필요는 없을 것 같습니다.

회귀의 경우는 타겟값이 연속값이므로 StratifiedKFold를 적용할 수 없어서 KFold를 적용합니다.

감사합니다.

JAEHO KWON님의 프로필 이미지
JAEHO KWON

작성한 질문수

질문하기