一、Python矩阵基本运算学习
二、梯度下降法
梯度的定义
梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
微分的定义
微分在数学中的定义:由函数B=f(A),得到A、B两个数集,在A中当dx靠近自己时,函数在dx处的极限叫作函数在dx处的微分,微分的中心思想是无穷分割。
梯度下降法的定义
梯度下降在机器学习中应用十分的广泛,不论是在线性回归还是Logistic回归中,它的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。
梯度算法手工求解
Excel梯度下降法求解
求:z=2(x-1)^2 + y^2的近似根
迭代到第1000步,极值一直不出来
修改学习率为0.15,极值出来了为(0,0)
线性回归求解
定义一个代价函数
代码如下
#导入bumpy包
from numpy import *
#定义别名
import numpy as np
# 定义数据集的大小 即20个数据点
m = 20
# x的坐标以及对应的矩阵
X0 = ones((m, 1)) # 生成一个m行1列的向量,其值全是1
X1 = arange(1, m+1).reshape(m, 1) # 生成一个m行1列的向量,也就是x1,