zoukankan      html  css  js  c++  java
  • 逻辑回归--多元线性回归模型

    1 引言

      给出多元线性回归的解法,本篇重点回答如何构造“梯度下降法解”的数学模型。

    2 从线性回归模型到最小二乘法的构建 

      [问题] 对于给定向量集合Ω={Xi},i:={1,...m},Xi属于集合Rn;再给出一个数集Y={yi},i:={1,...m}存在一个映射{Di}→{Yi}试给出它们的最佳超平面模拟;

          [分析]   映射        Z = Xα + β          ; Z是m×1向量;X是m×n的矩阵; α是1×n的向量;β为标量常量

                     最小二乘法表达式: E = ∑i( yi  - Zi2

          改写为: E = ∑i( yi  - Xi α - β)2

                     重新拼接表达式:令 Xα + β = [X I ][α β],且W = [X,I],ω = [α,β]T

                     E = || Y - Wω||2

                     梯度表达式:∂E/∂ω = 2(-W)T( Y - W ω );       //   此处为E对ω的梯度;根据此梯度更新ω的系数;对矩阵求导后,需要转置换位;

                     令迭代序列为 {ω  ω1   ω2    ω3 ...  ωs }

                     其中 ωi+1 = ωi  - 2ε(∂E/∂ω) ,               其中ε是给定的迭代步长;每次迭代增加梯度方向上的ε个长度

           至此,按照梯度逐步下降的方向,一步一步将ωi迭带为数值解。

    3 Python代码实现

    import numpy as np
    Y = np.array([0.75,0.98,1.76,1.98,2.63])
    W = np.array([[2.1,1],[2.98,1],[4.9,1],[6.1,1],[7.6,1]])
    omig = np.array([0,0])
    for i in range(60000):
    mid = Y - np.dot(W,omig)
    Gnd = -2*np.dot(W.T,mid)
    omig = omig - 0.0002*Gnd
    if (i%10000 == 0 ):
    print omig
    结果打印
    [ 0.01807416 0.00324 ]
    [ 0.33869174 0.0163087 ]
    [ 0.33910011 0.0140404 ]
    [ 0.33912152 0.01392144]
    [ 0.33912265 0.0139152 ]
    [ 0.3391227 0.01391487]
    打印图
  • 相关阅读:
    设计模式之工厂模式-抽象工厂(02)
    1036 跟奥巴马一起编程 (15 分)
    1034 有理数四则运算 (20 分)
    1033 旧键盘打字 (20 分)
    1031 查验身份证 (15 分)
    大学排名定向爬虫
    1030 完美数列 (25 分)二分
    1029 旧键盘 (20 分)
    1028 人口普查 (20 分)
    1026 程序运行时间 (15 分)四舍五入
  • 原文地址:https://www.cnblogs.com/gongdiwudu/p/6138151.html
Copyright © 2011-2022 走看看