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]
    打印图
  • 相关阅读:
    交换变量方法总结
    Java Object Model(一)
    Git命令文本手册
    移动端浏览器touch事件的研究总结
    jQuery中的end()方法
    AngularJs开发——控制器间的通信
    网站收藏
    HTTP Content-type 对照表
    ViewData和ViewBag的那些事
    jQuery选择器
  • 原文地址:https://www.cnblogs.com/gongdiwudu/p/6138151.html
Copyright © 2011-2022 走看看