在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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 |
请发表评论