Python-玩转数据-凸优化

一、说明

最优化问题目前在机器学习,数据挖掘等领域应用非常广泛,因为机器学习简单来说,主要做的就是优化问题,先初始化一下权重参数,然后利用优化方法来优化这个权重,直到准确率不再是上升,迭代停止,那到底什么是最优化问题呢?

比如你要从上海去北京,你可以选择搭飞机,或者火车,动车,但只给你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

你可能感兴趣的:(python,数据挖掘,人工智能)