一、什么是梯度下降法
梯度下降法 Gradient Descent
1.不是一个机器学习算法
2.是一种基于搜索的最优化方法
3.作用:最小化一个损失函数
4.梯度上升法:最大化一个效用函数





并不是所有函数都有唯一的极值点



二、模拟梯度下降法






三、线性回归中的梯度下降法
多元线性回归中的梯度下降法





四、实现线性回归中的梯度下降法
playML.LinearRegression.py
import numpy as np from .metrics import r2_score class LinearRegression: def __init__(self): """初始化Linear Regression模型""" self.coef_ = None self.intercept_ = None self._theta = None def fit_normal(self, X_train, y_train): """根据训练数据集X_train, y_train训练Linear Regression模型""" assert X_train.shape[0] == y_train.shape[0], \ "the size of X_train must be equal to the size of y_train" X_b = np.hstack([np.ones((len(X_train), 1)), X_train]) self._theta = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y_train) self.intercept_ = self._theta[0] self.coef_ = self._theta[1:] return self def fit_gd(self, X_train, y_train, eta=0.01, n_iters=1e4): """根据训练数据集X_train, y_train, 使用梯度下降法训练Linear Regression模型""" assert X_train.shape[0] == y_train.shape[0], \ "

