강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của jincheolim974329
jincheolim974329

câu hỏi đã được viết

Phát triển bot giao dịch thuật toán bitcoin

Chiến lược giao dịch và backtest (kỹ thuật giao dịch ngược xu hướng)

베이지안에서 질문있습니다.

Viết

·

280

0


pbounds = {
    'revenue_rate' : (0.005,0.015),
    'max_loss_rate' : (0.05,0.3),
    'increase_rate' : (0.1,0.4),
    'buy_cnt_limit' : (5,20),
    'buy_amt_unit' : (10,20)
}


여기서 buy_cnt_limit은 사실 정수가 나와야 하는데. 베이지안 최적화 후에 반올림하여 수정하는 방법밖에 없을까요?

 

pandas투자퀀트

Câu trả lời 2

0

multicoreit님의 프로필 이미지
multicoreit
Người chia sẻ kiến thức

안녕하세요 Jc님

베이지안 함수에서는 기본적으로 소수점 단위로 데이터를 반환합니다.

정수로 사용하고 싶을 실 경우 데이터를 활용하는 run_test 함수에서 반올림하셔야 합니다.

제공해 드린 예제를 보시면 반올림(round)해서 사용하는 부분을 확인하실 수 있습니다.

감사합니다.

def black_box_function....

revenue = run_test(config_data)

def run_test(config):

set_wma_s = list_wma_s [int(round(config['wma_s'],0))]

0

안녕하세요, 인프런 AI 인턴이에요.

베이지안 최적화를 사용해야하는 목적이 알려져 있다면, buy_cnt_limit 값을 정수로 설정하려는 것이 이해됩니다.
베이지안 최적화는 연속적인 값을 최적화하는데 주로 사용되기 때문에 정수 값을 최적화하기가 어려울 수 있습니다.

buy_cnt_limit 값을 정수로 설정하려면 반올림을 사용하는 방법이 있을 것입니다. 예를 들어, 반올림 함수인 round()를 사용하면 됩니다.
다음은 베이지안 최적화 결과를 반올림하여 정수로 변환하는 예시 코드입니다.

from bayes_opt import BayesianOptimization

# 최적화 함수
def target_func(revenue_rate, max_loss_rate, increase_rate, buy_cnt_limit, buy_amt_unit):
    # buy_cnt_limit를 반올림하여 정수로 변환
    buy_cnt_limit = round(buy_cnt_limit)

    # 최적화하고자 하는 로직 수행
    # ...

    # 결과 반환
    return optimized_result

# 범위 설정
pbounds = {
    'revenue_rate' : (0.005,0.015),
    'max_loss_rate' : (0.05,0.3),
    'increase_rate' : (0.1,0.4),
    'buy_cnt_limit' : (5,20),
    'buy_amt_unit' : (10,20)
}

# 최적화 수행
optimizer = BayesianOptimization(target_func, pbounds)
optimizer.maximize()

# 최적화 결과 출력
buy_cnt_limit = round(optimizer.max['params']['buy_cnt_limit'])
print("Optimized buy_cnt_limit:", buy_cnt_limit)

위의 코드는 베이지안 최적화 라이브러리인 BayesianOptimization을 사용하는 예시입니다.
target_func 함수에서 buy_cnt_limit를 반올림하여 정수로 변환한 후 최적화 로직을 수행하고, 최적화 결과를 출력합니다.
다른 최적화 라이브러리를 사용한다면 해당 라이브러리의 문서를 참고하여 반올림하는 방법을 찾아보시기 바랍니다.

반올림을 통해 buy_cnt_limit 값을 정수로 변환할 수 있습니다. 하지만 정수로 변환되지 않은 값으로 최적화를 수행하고 그 결과를 반올림하는 방법도 고려할 수 있습니다. 따라서 결과와 유의미한 값을 산출하는 방식을 선택하시면 될 것 같습니다.

추가적으로, 해당 질문은 베이지안 최적화에 관한 것이며 프로그래밍 관련 질문이므로 답변을 드릴 수 있었습니다.
더 궁금한 점이 있다면 언제든지 물어보세요!

Hình ảnh hồ sơ của jincheolim974329
jincheolim974329

câu hỏi đã được viết

Đặt câu hỏi