matlab终止以下代码
机器学习算法Python实现
目录
一、
1、代价函数
其中:
下面就是要求出theta,使代价最小,即代表我们拟合出来的方程距离真实值最近
共有m条数据,其中代表我们要拟合出来的方程到真实值距离的平方,平方的原因是因为可能有负值,正负可能会抵消
前面有系数2的原因是下面求梯度是对每个变量求偏导,2可以消去
实现代码:
#
计算代价函数
def
computerCost(X,y,theta):
m
=
len(y)
J
=
0
J
=
(np.transpose(X*theta-y))*(X*theta-y)/(2*m)
#计算代价J
return
J
注意这里的X是真实数据前加了一列1,因为有theta(0)
2、梯度下降算法
代价函数对求偏导得到:
所以对theta的更新可以写为:
其中为学习速率,控制梯度下降的速度,一般取0.01,0.03,0.1,0.3.....
为什么梯度下降可以逐步减小代价函数
假设函数f(x)
泰勒展开:f(x+△x)=f(x)+f'(x)*△x+o(△x)
令:△x=-α*f'(x)
,即负梯度方向乘以一个很小的步长α
将△x
2022-06-30 18:29:41
34.1MB
系统开源
1