一、说明
最优化问题目前在机器学习,数据挖掘等领域应用非常广泛,因为机器学习简单来说,主要做的就是优化问题,先初始化一下权重参数,然后利用优化方法来优化这个权重,直到准确率不再是上升,迭代停止,那到底什么是最优化问题呢?
比如你要从上海去北京,你可以选择搭飞机,或者火车,动车,但只给你500块钱,要求你以最快的时间到达,其中到达的时间就是优化的目标,500块钱是限制条件,选择动车,火车,或者什么火车都是x
在金融和经济领域,凸优化有着重要的作用。例如期权定价,效用最优化等问题。
- 1、在这里,我们首先定义要优化的函数并作图。
- 2、接下来,我们分别来求解全局最优和局部最优,我们需要使用scipy.optimize库中的brute和fmin函数。
- 3、修改函数以跟踪详细的信息,修改初始的参数可以让结果更为优化。
- 4、在局部最优化中,除了指定函数的定义和初始参数外,还可以指定输入参数的容忍度和函数值的容忍度,以及最大的迭代次数和函数调用次数。
- 5、不同的初始参数通过局部最优化可能得到不同的结果。
二、示例
#coding:UTF-8
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib as mpl
import scipy.optimize as spo
def fm(*args):
return (np.sin(args[0])+0.05*args[0]**2+np.sin(args[1])+0.05*args[1]**2)
x = np.linspace(-10,10,50)
y = np.linspace(-10,10,50)
x,y = np.meshgrid