zoukankan      html  css  js  c++  java
  • 12-少年,玩模型吗?手把手教你statsmodels建模(3)

    生活中我们总是欢迎变化的,不变是温水,是地狱,最忌活成办公室的家具。然而变化终究是外界的,内心的信念不变,才使人身处顺境不眼晕,身处逆境如微风拂面。人的内心如孩童,总是期盼惊喜。可现实的”重锤“让成人如被电击的小白鼠小心翼翼,生怕行差踏错一步堕入万丈深渊。其实都是想象中的深渊,也是想象中的安全感,都是幻觉啊,少年。毁坏容易建设难,另一方面,不破则不立。我喜欢回忆去年此时,再看今年此时,展望明年此时。发现并没有活成一具雕塑。也有人行为艺术般每年相同日期、地点、人物拍照留念,其实记录的都是外形变化,哪能摄取心中气象万千呢?从前慢,回忆美,是因为经历丰富充实罢了。Anyway,学会温和地反击吧。朋友圈的大牛肖凯老师昨天发了一条金句:My only goal is to gradient boost over myself of yesterday. And to repeat this everyday with an unconquerable spirit.共勉:)

    下面是今天的gradient boost,natural?(o>▽<)

    4最优化:Optimization

    1. 函数求根(即函数零点)

     

    2. 函数求最小值

    由上图可见,当初始值为 10 时,函数找到的是局部最小值点,可见 minimize 的默认算法对起始点的依赖性。那么怎么才能不管初始值在哪个位置,都能找到全局最小值点呢?

    可以使用 basinhopping 函数找到全局最优点。相关背后算法,可以查看帮助文档:

    我们设初始值为 10 看是否能找到全局最小值点。

    当起始点在比较远的位置,依然成功找到了全局最小值点!

    下面看看如何求多元函数最小值?

    以二元函数为例,使用 minimize函数求对应的最小值。

    3. 曲线拟合

     

    曲线拟合和最优化有什么关系?

    曲线拟合的问题是,给定一组数据,它可能是沿着一条线散布的,这时要找到一条最优的曲线来拟合这些数据,这里的最优是指这些点和线之间的距离是最小的,这就是为什么要用最优化问题来解决曲线拟合问题。

    上面的点整体上呈现一个线性关系,要找到一条斜线来代表这些点,这就是经典的一元线性回归。要优化的函数是点和线之间的距离,使其最小。点是确定的,而线是可变的,线是由参数值:斜率和截距决定的,这里就是要通过优化距离找到最优的斜率和截距。

    Method1 using scipy.optimize.minimize

     

    上式是误差平方和,即需要最小化的目标函数。

    上面两个输出即是预测的直线斜率和截距,我们是根据点来反推直线的斜率和截距,那么真实的斜率和截距是多少呢?-1 和 2,很接近了,差的一点是因为有噪音的引入。

    Method2 using statsmodels.api

     

    这周回忆了好多数学概念,真是怀旧的一周(●'◡'●)ノ♥ 下周学习statsmodels建模的最后一节:线性模型,敬请期待!

  • 相关阅读:
    metasploit-shellcode生成
    项目中遇到了docker、PaaS、k8s,它们之间的关系是怎么样的呢?
    docker是什么?它里面放着什么?
    java排序算法总结
    java类加载机制
    JVM垃圾回收算法
    跳出循环几种方式
    数据库分片分库常见问题解决方案
    数据库优化
    SQL生命周期
  • 原文地址:https://www.cnblogs.com/turingbrain/p/7143237.html
Copyright © 2011-2022 走看看