zoukankan      html  css  js  c++  java
  • R语言-线性回归(1)

    1.数据的产生

           在直线y=2x+5的基础上,加上服从正态分布的噪声。产生20对(x,y)的训练集。

    2,模型

         设回归方程为y=a*x+b,其中a,b为回归系数,利用梯度下降算法求解系数a,b的值

    代码如下:

    train_x=c(1:20)
    train_y=2*train_x+5
    train_error=rnorm(20,mean=0,sd=2)
    train_y=train_y+train_error
    plot(train_x,train_y,col="red",pch=19,main="x与y的关系图")
    #abline(lm(train_y~train_x),col="blue")
    #y=a*x+b
    a=1.0
    b=1.0
    #学习效率
    e=0.003  
    #误差,为了简单,这里没有使用,而是直接迭代了指定的次数
    error=0.0001   
    sum_a=0.0
    sum_b=0.0
    j=0
    repeat
    {
      if(j==2000)
        break
      sum_a=0.0
      sum_b=0.0
      for (i in 1:20)
      {
         sum_a=(train_y[i]-(train_x[i]*a+b))*train_x[i]
         sum_b=(train_y[i]-(train_x[i]*a+b))
         a=a+e*sum_a
         b=b+e*sum_b
      }
      j=j+1
    }
    print(a)
    print(b)
    abline(b,a)
      
    

     运行结果:

    [1] 2.046833
    [1] 4.65819

  • 相关阅读:
    HTML if条件注释解读
    Springboot整合logback日志系统
    Springboot @Valid 参数校验
    JDK1.8 版的if else
    Android获取手机定位坐标
    CentOS8安装JDK
    Vue全局配置文件
    git学习
    百度前端面试题—基础
    前端知识网络
  • 原文地址:https://www.cnblogs.com/sklww/p/3506312.html
Copyright © 2011-2022 走看看