线性回归算法(涉及最小二乘法、梯度下降法)

本文介绍了线性回归的基本概念,包括简单线性回归和多元线性回归。讨论了最小二乘法和梯度下降法在求解线性回归模型中的应用,并详细阐述了损失函数、评估指标如MSE、RMS、MAE和R Squared。同时,提到了梯度下降法的特点和学习率的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录:
一、简单线性回归算法
二、向量化
三、衡量线性回归法的指标MSE、RMS、MAE、R Squared 指标
四,多元线性回归(最小二乘法)
五、多元线性回归(梯度下降法)

一、简单线性回归算法
1、优点:
(1)解决回归问题
(2)思想简单,实现容易
(3)许多强大的非线性模型的基础
(4)结果具有很好的可解释性
(5)蕴含机器学习中的很多重要思想

2、什么是线性回归
(1)寻找一条直线,最大程度地拟合样本特征和样本输出标记之间的关系
(2)样本特征只有一个称为简单线性回归
(3)样本特征有多个称为多元线性回归

3、目标
(1)真值:
在这里插入图片描述

(2)预测值:
在这里插入图片描述
(3)目标:
在这里插入图片描述

4、机器学习算法的基本思路
(1)损失函数:度量样本没有拟合的程度

(2)效用函数:度量拟合的程度
(3)通过分析问题,确定问题的损失函数或效用函数;通过最优化损失函数或者效用函数,获得机器学习模型,近乎所有参数学习算法都是这样的套路,如线性回归,SVM,多项式回归,神经网络,逻辑回归…

5、通过最小二乘法计算a,b的值
(1)
在这里插入图片描述
(2)
在这里插入图片描述

6、创建SimpleLinearRegression类

import numpy as np
import matplotlib.pyplot as plt

#定义一个类,注意括号是空的,因为我们要从空白创建这个类
class SimpleLinearRegression1():
     def _init_(self):
         #初始化属性a,b。a,b用于储存计算生成的结果,不是用户输入数据
         self.a_=None
         self.b_=None
         
         #fit方法,x_train,y_train是用户输入数据
     def fit(self,x_train,y_train):
         #根据训练数据集x_train,y_train训练线性回归模型
         assert x_train.ndim==1,\
             "Simple Linear Regressor can only solve single feature training data."
         assert len(x_train)==len(y_train),\
             "the size of x_train must be equal to the size of y_train"
            
            #计算x,y平均值
         x_mean=np.mean(x_train)
         y_mean=np.mean(y_train)
        
        #计算a,b的值
         num=0.0
         d=0.0
         for x,y in zip(x_train,y_train):
             num+=(x-x_mean)*(y-y_mean)
             d+=(x-x_mean)**2
         self.a_=num/d
         self.b_=y_mean-self.a_*x_mean
        
         return self
    
     #predict方法
     def predict(self,x_predict):
         #给定待测数据集x_predict,返回表示x_predict的结果向量
         assert x_predict.ndim==1,\
             "Simple Linear Regressor can only solve single feature training data."
         assert self.a_ is not None and self.b_ is not None,\
             "must fit before predict!"
            
         return np.array([self._predict(x) for x in x_predict])
     
     #_predict方法
     def _predict(self,x_single):
         #给定待测数据集x_single,返回表示x_single的预测结果值
         return self.a_*x_single+self.b_
    
     #_repr_方法,字符串输出
     def _repr_(self):
         return"SimpleLinearRegression1()"

7、根据SimpleLinearRegression类创建一个实例

import numpy as np
import matplotlib.pyplot as plt
from SimpleLinearRegression import SimpleLinearRegression1


x=np.array([1,2,3,4,5])
y=np.array([1,3,2,3,5])

#创建一个实例
reg1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值