#optimization #parameters
Вопрос:
Если у меня есть функция, которая возвращает значение с плавающей запятой, представляющее, например, прибыль, полученную от торговли акциями (хотя я сталкивался с такой проблемой при выполнении различных задач), и прибыль варьируется в зависимости от различных параметров, передаваемых функции, существует ли библиотека Python, которую можно использовать для эффективного изучения пространства параметров?
Я мог бы применить наивный подход, когда я пробую каждое значение параметра, но это может занять очень много времени в зависимости от количества параметров и диапазона значений.
Я слышал о MCMC и идее пройти ряд шагов для изучения параметров, где могут быть предприняты попытки экстремальных значений, и можно вернуться к значениям, которые работают лучше, но я понятия не имею, применимо ли это здесь, поскольку MCMC, по — видимому, касается вероятностей (и байесовской статистики) — я ищу что-то довольно простое, если оно существует.
Я представляю себе что-то вроде приведенного ниже, где параметры имеют диапазон возможных значений, и есть функция, которая проверяет значения параметров более эффективным способом, чем просто пробовать каждую отдельную комбинацию. Возможно ли это с помощью достаточно простой библиотеки Python?
# define a range of possible values for parameters
a = [2.0,2.1,2.2,2.3,2.4]
b = [1.2,1.3,2.4]
c = [float(x) for x in range(1,1000)]
d = [112.0,113.0,114.0]
e = [3.0,3.1]
f = [9.0,10.0,11.0,12.0]
g = [float(x) for x in range(5,36)]
def profit(a,b,c,d,e,f,g):
# carry out calculations using parameters
return profit
n_steps = 1000
def optimize(n_steps,a,b,c,d,e,f,g):
for x in range(0,n_steps):
# try profit() using different values within the range of each parameter a-g in attempt to find those that produce largest profit
# i.e. for each step in n_step call profit() with one float value for each of a-g
return a,b,c,d,e,f,g # return set of parameters producing largest profit within n_steps