如何通过python使用某些函数优化多个参数?

2024-06-17 15:31:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数,它接受一些参数并返回浮点数。a具有每个参数的分布

class Ranges:
    K = range(0, 100)
    D = range(0, 100)
    KD_difference = ('K>D', 'K<D', 'K=D', None)

def function(parameters):
    # <some code>
    return result   # -10.2 or 32.4 etc.

如何使用快速优化功能找到参数的优化值

I've tried grid optimisation:
for K in Ranges.K:
    for D in Ranges.D:
        for KD in Ranges.KD_difference:
            parameters = (K, D, KD)
            result = function(parameters)
            # ... chose parameters, that give max result value

…但是太慢了。我尝试过随机搜索:

import random
while True:
    parameters = (
        random.choice(Ranges.K),
        random.choice(Ranges.D),
        random.choice(Ranges.KD_difference)
    )
    result = function(parameters)
    # ... chose parameters, that give max result value

…但它无法为我的参数提供完全优化的值

现在我希望使用scipy.optimize。但我不明白,我是否应该为每个参数设置分布,以及它如何获得参数“KD_差”的字符串值。 请给出建议或示例,我如何优化我的参数


Tags: infor参数thatrangefunctionrandomresult