Matlab程序现在终止了以下代码,实现了机器学习算法的Python版本。目录一、 1、代价函数:我们要求出theta,使得代价函数最小化,即我们拟合出的方程与真实值最接近。共有m条数据,代表我们要拟合的方程到真实值距离的平方,这是因为可能存在正负值抵消的情况,因此平方运算。原因是可能会存在负值,正负值可能会抵消,前面有一个系数2。下面的代码实现了这一过程: #计算代价函数def computerCost(X,y,theta): m = len(y) J = 0 J = (np.transpose(Xtheta-y))(Xtheta-y)/(2m) #计算代价J return J注意这里的X是真实数据前加了一列1,因为有theta(0) 2、梯度下降算法:代价函数对theta求偏导数得到:因此,对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