多元线性回归matlab代码_五种优化算法实现多元线性回归

本文提供了使用MATLAB实现多元线性回归的代码,包括最小二乘法、梯度下降、随机梯度下降、牛顿法和pso粒子群优化算法。重点在于代码实现,详细推导未在文中展开。
摘要由CSDN通过智能技术生成

实现多元线性回归的要求及假设条件:

'''

    线性回归的假设条件:
    1、样本独立,即每个预测样本之间没有依赖关系;
    2、残差e要服从正态分布,即y_true-y_pred的残差需要服从高斯分布;
    3、特征之间独立,即特征之间需要独立,如果不独立(共线性)会造成系数权重之和为单特征权重且权重方差较大,同时会造成模型预测结果震荡,不稳定;
    4、样本数需要大于特征数,如果特征数量大于样本数量,通过最小二乘法无法求矩阵的逆,通过其他优化方式得到的最优结果非唯一解,造成模型偏差较大;
    5、残差e要求方差齐性,即残差不随观测变量的变化而变化;
    6、自变量与因变量之间呈线性关系;
使用最小二乘法、梯度下降、随机梯度下降、PSO粒子群算法及牛顿法实现多元线性回归,数据集使用如下数据集
from sklearn import datasets
data=datasets.load_diabetes()
'''

整体源代码,如有帮助,欢迎star:

https://github.com/suixintech/ML_Coding/edit/master/LinearRegression.py

本代码主要通过五种常见的方法实现多元线性回归,包含常见的最小二乘法、梯度下降、随机梯度下降、pso粒子群优化算法以及牛顿法实现,具体推导这里不做过多讲解,以实现代码为主;

一、所引用的库

from contextlib import contextmanagerfrom time import strftimeimport timeimport numpy as npfrom sklearn import datasetsimport warnings
warnings.filterwarnings('ignore')@contextmanagerdef timeSchedule(message: str):""" Time Schedule
"""print('[INFO {}][{}] Start ...'.format(strftime('%Y-%m-%d %H:%M:%S'), message))
start_time = time.time()yieldprint('[INFO {}][{}] End ...'.format(strftime('%Y-%m-%d %H:%M:%S'), message))print('[INFO {}][{}] Cost {:.2f} s'.format(strftime('%Y-%m-%d %H:%M:%S'), message, time.time() - start_time))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值