zoukankan      html  css  js  c++  java
  • 5、多变量线性回归

    引例:当房价受房屋面积、卧室数量、楼层、房屋年龄等多个因素影响时的线性回归算法是什么样的?

    房屋面积

    卧室数量

    楼层

    房屋年龄

    房价($1000)

    2104

    5

    1

    45

    460

    1416

    3

    2

    40

    232

    1534

    3

    2

    30

    315

    852

    2

    1

    36

    178

    ….

    ….

    ….

    假设函数:h(x)=WTX

    输入变量(x1,w1)、(x2,w2)、(x3,w3)、(x4,w4)分别代表房屋面积、卧室数量、楼层、房屋年龄和各自的权重,w0代表偏差,则假设函数为:h(x)=w0+w1x1+w2x2+w3x3+w4x4

    推广到一般,对于n个特征的多因素线性回归问题的假设函数:h(x)=w0+w1x1+w2x2+...+wnxn

    设定x0=1,则假设函数为:h(x)=w0+w1x1+w2x2+...+wnxn=w0x0+w1x1+w2x2+...+wnxn

    把W(w0,w1,w2,....),X(x0,x1,x2,....)分别看成是n+1维的列向量,则W、X、WT(W的转置矩阵)分别为:

    ,则假设函数为:

    损失函数:J(w0,w1,w2,...,wn)=J(W)=Σmi=1(h(x(i))-y(i))2/m

    特征缩放

    方法一:把特征值缩放到[-1,1]之间(或者差不多大小的区间)来达到更快的收敛到最小值的效果

    例如:房屋面积x1的大小在0-2000,卧室数量x2的大小在1-5,使用特征缩放,对x1,x2进行缩放处理,则:

    x1=房屋面积/2000,0≤x1≤1

    x2=卧室数量/5,0≤x2≤1

    缩放后会加快收敛到最小值

    方法二:均值归一化

    例如:房屋面积x1的大小在0-2000(均值为1000),卧室数量x2的大小在1-5(均值为2),使用特征缩放,对x1,x2进行缩放处理,则:

    x1=(房屋面积-1000)/2000,-0.5≤x1≤0.5

    x2=(卧室数量-2)/5,-0.5≤x2≤0.5

    或者

    x1=(房屋面积-1000)/(样本最大值-样本最小值),-0.5≤x1≤0.5

    x2=(卧室数量-2)/(样本最大值-样本最小值),-0.5≤x2≤0.5

    学习率learning rate

    1、看图:x轴数学习次数,y轴是J(W)损失函数,通过图形对收敛情况判断学习率的情况

    2、..., 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1, ... 间隔3倍选择学习率测试

    线性回归问题正规方程解法:W=(XTX)-1XTy  , 其中XT是X矩阵的转置矩阵,(XTX)-1是XTX的逆矩阵

    对于线性回归:梯度下降法和正规方程解法的区别

    • 梯度下降需要选择一个学习率,需要迭代很多次
    • 正规方程不需要学习率,一次求解
    • 特征数量(n)很大(百万级)选择梯度下降,特征数量不多(万级或者以下)选择用正规方程解法(时间复杂度O(n3))
  • 相关阅读:
    nethogs命令执行报异常的解决方法
    性能监控
    Linux图形化监控网络流量:speedometer查看流量
    JMeter监控Slave机器是否执行
    安全测试robots
    在ASP.NET MVC4中实现同页面增删改查,无弹出框02,增删改查界面设计
    在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建
    报错:非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复
    ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象
    在ASP.NET MVC中使用Knockout实践09,自定义绑定
  • 原文地址:https://www.cnblogs.com/jp-mao/p/10174531.html
Copyright © 2011-2022 走看看