Python 튜토리얼

Lv3 튜닝 3/3 python 파이썬 Bayesian Optimization 실습

2021.07.30 12:06 5,812 조회

이번 시간에는 Bayesian Optimization 실습을 진행하겠습니다.

코드가 어려울 수 있으니, 잘 따라와보세요!

바로 실습으로 넘어가겠습니다.

---------------------------------------------------------------------------------------------------------------------------------

# X에 학습할 데이터를, y에 목표 변수를 저장해주세요

X = train.drop(columns = ['index', 'quality'])

y = train['quality']


# 랜덤포레스트의 하이퍼 파라미터의 범위를 dictionary 형태로 지정해주세요

## Key는 랜덤포레스트의 hyperparameter이름이고, value는 탐색할 범위 입니다.

rf_parameter_bounds = {

                      'max_depth' : (1,3), # 나무의 깊이

                      'n_estimators' : (30,100),

                      }


# 함수를 만들어주겠습니다.

# 함수의 구성은 다음과 같습니다.

# 1. 함수에 들어가는 인자 = 위에서 만든 함수의 key값들

# 2. 함수 속 인자를 통해 받아와 새롭게 하이퍼파라미터 딕셔너리 생성

# 3. 그 딕셔너리를 바탕으로 모델 생성

# 4. train_test_split을 통해 데이터 train-valid 나누기

# 5 .모델 학습

# 6. 모델 성능 측정

# 7. 모델의 점수 반환


def rf_bo(max_depthn_estimators):

  rf_params = {

              'max_depth' : int(round(max_depth)),

               'n_estimators' : int(round(n_estimators)),      

              }

  rf = RandomForestClassifier(**rf_params)


  X_train, X_valid, y_train, y_valid = train_test_split(X,y,test_size = 0.2, )


  rf.fit(X_train,y_train)

  score = accuracy_score(y_valid, rf.predict(X_valid))

  return score


# 이제 Bayesian Optimization을 사용할 준비가 끝났습니다.

# "BO_rf"라는 변수에 Bayesian Optmization을 저장해보세요

BO_rf = BayesianOptimization(f = rf_bo, pbounds = rf_parameter_bounds,random_state = 0)


# Bayesian Optimization을 실행해보세요

BO_rf.maximize(init_points = 5, n_iter = 5)


# 하이퍼파라미터의 결과값을 불러와 "max_params"라는 변수에 저장해보세요

max_params = BO_rf.max['params']

max_params['max_depth'] = int(max_params['max_depth'])

max_params['n_estimators'] = int(max_params['n_estimators'])

print(max_params)


# Bayesian Optimization의 결과를 "BO_tuend_rf"라는 변수에 저장해보세요

BO_tuend_rf = RandomForestClassifier(**max_params)

---------------------------------------------------------------------------------------------------------------------------------

[Colab 실습 링크]


↩️ 오늘의 파이썬 리스트

#데이콘_101 #AI #머신러닝 #딥러닝 #파이썬 #파이선  #데이터분석 #데이터사이언티스트 #코랩 #Python  #colab #kaggle #pandas #numpy #sckit-learn # read_csv #Bayesian #Optimization #bayesianoptimization #베이지안옵최적화

로그인이 필요합니다
0 / 1000
그린티
2021.09.08 21:31

done

DSJY
2021.09.13 18:15

phu
2021.09.14 22:57

Lv3 튜닝 2/3 BayesianOptimization -> 하이퍼파라미터의 범위를 지정한 후, Random하게 R 번 탐색한 후, B번 만큼 최적의 값을 찾아간다.
pbounds : 하이퍼 파라미터 값의 최소~최대 지정
init_points : 몇 번 탐색할지
n_iter : 최적 값을 몇 번 찾아 갈지
maximize : 반복하며 가장 높은 target값을 찾는다
파라미터 정보 -> https://github.com/fmfn/BayesianOptimization/blob/master/bayes_opt/bayesian_optimization.py

매미인턴
2021.09.16 14:42

다욤
2021.09.19 16:11

Holte
2021.09.30 23:52

왼쪽눈썹왁싱
2021.10.31 11:26

changhyeon
2021.12.16 16:44

done

도톤
2021.12.27 20:36

moran
2021.12.30 13:15

dbnoid
2022.01.18 20:21

hijihyo
2022.01.23 18:59

done

ChimChim
2022.03.08 23:58

acebed
2022.03.10 18:00

done

kimgugu
2022.03.27 11:33

비회원
2022.04.06 12:20

Kdata
2022.04.27 16:58

krooner
2022.05.19 15:59

48hour
2022.07.02 13:56

차근차근

Y2J
2022.07.08 20:22

MINKYU
2022.07.22 02:24

세라자데
2022.08.02 12:12

엿장수
2022.10.14 01:09

gnt0000
2022.10.31 23:25

done

sk100
2022.11.04 11:31

done

DACON.NPC
2022.11.04 11:41

abcd123
2023.01.11 17:39

rf=RandomForestClassifier(**rf_params)에서 **이 뜻하는게 무엇인가요?

highllight
2023.01.16 21:20

김시옷
2023.05.29 02:58

done+