机器学习数学基础

一、微分、梯度的含义

在向量微积分中,标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率。更严格的说,从欧氏空间Rn到R的函数的梯度是在Rn某一点最佳的线性近似。在这个意义上,梯度是雅戈比矩阵的一个特殊情况。
  在单变量的实值函数的情况,梯度只是导数,或者,对于一个线性函数,也就是线的斜率。
  梯度一词有时用于斜度,也就是一个曲面沿着给定方向的倾斜程度。可以通过取向量梯度和所研究的方向的点积来得到斜度。梯度的数值有时也被成为梯度。

二、什么是梯度下降法

梯度下降:通过迭代方法找到目标函数的最小值,或者收敛到的最小值。

三、用梯度下降法手工求解函数

设置初始点及学习率

在这里插入图片描述在这里插入图片描述

四、在Excel里用梯度下降法求解 z=2(x-1)2+y2 的近似根

设置初始值:

在这里插入图片描述
在这里插入图片描述

五、 梯度下降法求解线性回归

参考网址:

link

from sklearn import linear_model        
#可以调用sklearn中的linear_model模块进行线性回归
import seaborn as sns
定义数据集的大小 即20个数据点
m = 20
x的坐标以及对应的矩阵
X0 = ones((m, 1))  # 生成一个m行1列的向量,其值全是1
X1 = arange(1, m+1).reshape(m, 1)  # 生成一个m行1列的向量,也就是x1,从1到m
X = hstack((X0, X1))  # 按照列堆叠形成数组,其实就是样本数据
对应的y坐标
Y = np.array([
       3, 4, 5, 5, 2, 4, 7, 8, 11, 8, 12,
       11, 13, 13, 16, 17, 18, 17, 19, 21
   ]).reshape(m, 1)

回归计算:

#进行线性回归的求解
model = linear_model.LinearRegression()
model.fit(X1,Y) 
print("斜率=",model.coef_[0])
print("截距为=",model.intercept_)

绘制结果:

# 根据数据画出对应的图像
def plot(X, Y, theta):
    ax = plt.subplot(111)  # 将画布分为11列,取第一个
    ax.scatter(X, Y, s=30, c="blue", marker="s")
    plt.xlabel("X")
    plt.ylabel("Y")
    x = arange(0, 21, 0.2)  # x的范围
    y =  model.intercept_+ model.coef_[0]*x
    ax.plot(x, y)
    plt.show()

plot(X1, Y, model.coef_[0])

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值