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

时间:2019-09-19 15:42:35

标签: python optimization scipy

我有一个函数,该函数带有一些参数并返回浮点数。并且每个参数都有分布。

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_difference”的字符串值。 请给我建议或示例,如何优化参数?

0 个答案:

没有答案