[Exercise]线性回归、梯度下降算法

1.梯度下降

1.1批梯度下降

eg1:用梯度下降法确定h(x)=x^2-t*x-t中参数t的值

注意迭代因子的选择很重要QAQ,如果程序结果成了发散的就要看看是不是迭代因子选的不好。【最后那个-0.01是无意中试出来的QwQ

 1 def hypo(t,x):          #precise answer : t=2
 2     return (x*x-t*x-t)
 3
 4 def cost(t):
 5     tmp=0
 6     for i in range(0,num):
 7         tmp+=(yy[i]-hypo(t,xx[i]))*xx[i]
 8     return tmp
 9
10 xx=[-2,-1, 0, 1, 2, 3, 4]       #xx[]和yy[]是样本
11 yy=[ 6, 1,-2,-3,-2, 1, 6]
12 num=7
13
14 eps=0.00000000001        #精度
15 aa=-0.01                        #迭代因子
16
17 tx=9999
18 ty=0
19 while(abs(tx-ty)>=eps):
20     tx=ty
21     ty=tx+aa*cost(tx)
22     print(ty)
23
24 print(tx,ty)
25     

迭代结果:

 1 0.84
 2 1.3272
 3 1.609776
 4 1.77367008
 5 1.8687286464
 6 1.923862614912
 7 1.95584031664896
 8 1.9743873836563968
 9 1.9851446825207102
10 1.991383915862012
11 1.9950026711999669
12 1.9971015492959807
13 1.9983188985916687
14 1.9990249611831679
15 1.9994344774862374
16 1.9996719969420178
17 1.9998097582263703
18 1.9998896597712947
19 1.999936002667351
20 1.9999628815470636
21 1.9999784712972968
22 1.999987513352432
23 1.9999927577444105
24 1.999995799491758
25 1.9999975637052196
26 1.9999985869490273
27 1.9999991804304358
28 1.9999995246496527
29 1.9999997242967986
30 1.9999998400921433
31 1.9999999072534431
32 1.999999946206997
33 1.9999999688000583
34 1.9999999819040337
35 1.9999999895043397
36 1.999999993912517
37 1.9999999964692599
38 1.9999999979521708
39 1.999999998812259
40 1.9999999993111102
41 1.9999999996004438
42 1.9999999997682574
43 1.9999999998655893
44 1.9999999999220417
45 1.9999999999547842
46 1.9999999999737748
47 1.9999999999847893
48 1.9999999999911777

1.2随机梯度下降

eg2:

时间: 2024-10-25 09:12:46

[Exercise]线性回归、梯度下降算法的相关文章

简单多元线性回归(梯度下降算法与矩阵法)

多元线性回归是最简单的机器学习模型,通过给定的训练数据集,拟合出一个线性模型,进而对新数据做出预测. 对应的模型如下: n: 特征数量. 一般选取残差平方和最小化作为损失函数,对应为: M:训练样本数量. 通过最小化代价损失函数,来求得 值,一般优化的方法有两种,第一是梯度下降算法(Gradient Descent),第二种是矩阵法(The normal equations). 梯度下降算法

线性回归与梯度下降算法

线性回归与梯度下降算法 作者:上品物语 知识点: 线性回归概念 梯度下降算法 l  批量梯度下降算法 l  随机梯度下降算法 l  算法收敛判断方法 1.1   线性回归 在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性组合. 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析.如果回归分

机器学习(Andrew Ng)笔记(二):线性回归模型 & 梯度下降算法

线性回归模型 回忆一下第一节课提出的预测房屋每平方单位价格的例子.在这个例子中,我们可以画一条直线,尽量符合数据点的分布趋势.我们已经知道这是一个回归问题,即预测连续值的输出.实际上,这是一个典型的线性回归模型.之所以这样定义,大概是因为回归方程可以用一个线性函数来表示. 我们可以假设这个线性函数为: 这是一个关于x的一元一次方程.其中两个参数的值我们还不知道,要根据训练集中的数据求解出来.这里要定义几个概念,我们已经有的数据,即房屋面积与单价的对应数据对,被称作训练集.x作为房屋面积,称作输入

斯坦福CS229机器学习课程笔记一:线性回归与梯度下降算法

应该是去年的这个时候,我开始接触机器学习的相关知识,当时的入门书籍是<数据挖掘导论>.囫囵吞枣般看完了各个知名的分类器:决策树.朴素贝叶斯.SVM.神经网络.随机森林等等:另外较为认真地复习了统计学,学习了线性回归,也得以通过orange.spss.R做一些分类预测工作.可是对外说自己是搞机器学习的还是不太自信,毕竟和科班出身的各位大牛相比自己对这些模型.算法的理解只能算是“知其然而不知其所以然”,用起来总感觉哪里不对劲. 因此,去年早早地就把网易公开课上Andrew大神的斯坦福CS229课程

机器学习算法(优化)之一:梯度下降算法、随机梯度下降(应用于线性回归、Logistic回归等等)

本文介绍了机器学习中基本的优化算法-梯度下降算法和随机梯度下降算法,以及实际应用到线性回归.Logistic回归.矩阵分解推荐算法等ML中. 梯度下降算法基本公式 常见的符号说明和损失函数 X :所有样本的特征向量组成的矩阵 x(i) 是第i个样本包含的所有特征组成的向量x(i)=(x(i)1,x(i)2...,x(i)n) y(i) 第i个样本的label,每个样本只有一个label,y(i)是标量(一个数值) hθ(x(i)) :拟合函数,机器学习中可以用多种类型的拟合函数 θ 是函数变量,

flink 批量梯度下降算法线性回归参数求解(Linear Regression with BGD(batch gradient descent) )

1.线性回归 假设线性函数如下: 假设我们有10个样本x1,y1),(x2,y2).....(x10,y10),求解目标就是根据多个样本求解theta0和theta1的最优值. 什么样的θ最好的呢?最能反映这些样本数据之间的规律呢? 为了解决这个问题,我们需要引入误差分析预测值与真实值之间的误差为最小. 2.梯度下降算法 梯度下降的场景: 梯度下降法的基本思想可以类比为一个下山的过程.假设这样一个场景:一个人被困在山上,需要从山上下来(i.e. 找到山的最低点,也就是山谷). 但此时山上的浓雾很

线性回归之梯度下降算法

线性回归之梯度下降法 1.梯度的概念 梯度是一个向量,对于一个多元函数\(f\)而言,\(f\)在点\(P(x,y)\)的梯度是\(f\)在点\(P\)处增大最快的方向,即以f在P上的偏导数为分量的向量.以二元函数\(f(x,y)\)为例,向量\(\{\frac{\partial f}{\partial x},\frac{\partial f}{\partial y}\}|_{(x_0,y_0)}=f_x(x_0,y_0)\overrightarrow i+f_y(x_0,y_0)\overri

梯度下降算法&amp;线性回归算法

**机器学习的过程说白了就是让我们编写一个函数使得costfunction最小,并且此时的参数值就是最佳参数值. 定义 假设存在一个代价函数 fun:\(J\left(\theta_{0}, \theta_{1}\right)\) 通过不断地调整\(\theta_{0}\)和\(\theta_{1}\)是函数\(J\left(\theta_{0}, \theta_{1}\right)\)取得最小值 梯度下降就是使J不断通过导数下降的一种算法 \(\theta_{j}:=\theta_{j}-\a

梯度下降算法笔记

今天课上主要讲的是梯度下降算法. 上一次老师留了梯度下降算法求解线性回归的作业.大部分用java和C++实现的. 笔记也主要来自课程ppt,老师课程的ppt也主要参考的斯坦福吴恩达老师的讲义. 梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最速下降法. 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索.如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点:这个过程则被称为梯度

梯度下降算法

首先定义几个符号: Xi vector[X]:input data Yi vector[Y]:output data h(X) hypothesis function 对于输入的数据给出预测值 Y is continous variation?regression problem(回归问题) Y is discrete variation?classification problem(分类问题) PART 1:线性回归 如图,蓝色的离散点是Xi,红色的线就是求出的回归函数. hypothesis