• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

R语言-线性回归(1)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python、R语言、VBA 和 SQL 中的整除发布时间:2022-07-18
下一篇:
R语言模型选择之精度准则与最大值法问题发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap