机器学习(六) 梯度下降法 (上)

 一、什么是梯度下降法

梯度下降法  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], \             "
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信