2021大三机器学习:(自我总结)求解简单线性回归的OLS方法+educoder手打线性回归例题说明

本文介绍了普通最小二乘法(OLS)的基本概念,它是回归分析中常用的一种参数估计方法。通过求解残差平方和最小,找到最佳拟合直线。文章详细阐述了RSS的计算,以及如何通过求导求得斜率β和截距α。同时,提供了使用numpy实现简单线性回归的Python代码示例,包括计算平均数、方差、协方差和斜率的步骤。
摘要由CSDN通过智能技术生成

hello,大家好这里是X,不说了不说了,赶博客赶博客!!!冲压!!对了,现在秋天来了,大家要注意添衣噢🍂🍁🍁🍁

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

介绍OLS

OLS即为:普通最小二乘法(ordinary least squares ),它是使得全部观察值的残差平方和最小的一种参数估计方法,在回归分析中应用最为广泛。
现在回想简单线性回归是由方程:y= α \alpha α+ β \beta βx
α \alpha α β \beta β

这里X说一句X看到的话:我们想知道两个变量之间的关系,我们可以用直线的斜率来表示X和Y,那么由图中的点确定线的这样的一个过程就是回归

如果说,现在再来一个参数u,来表示误差,那么:

y= α \alpha α+ β \beta βx+u

RSS求法

最优拟合直线应该使得各点到直线的距离的和最小,也可以表述为距离的平方和最小
根据这个原则,我们可以得到另一个表达式:
在这里插入图片描述

那么,使得残差的平方和最小,这个时候就得到了RSS(residual sum of squares,简称RSS):
在这里插入图片描述
我们暂且将这个公式叫做公式一

α \alpha α β \beta β的求法

先求解 β \beta β,方法就是对公式一的所有参数对 β \beta β求导、求偏导,并令其结果为0,即可得到: β \beta β,那么 α \alpha α直接套原公式即可求到:

在这里插入图片描述

例题模板

一套我自认为比较标准的“解题过程”
在这里插入图片描述

例题(手打简单线性回归)

在这里插入图片描述
好啦,例题来啦

第一关

定义一个函数fit(X, Y),其中X和Y都是numpy.ndarray类型的数组,X和Y的形状都是m行1列。函数返回X的平均数 x_bar 和Y的平均数 y_bar
例如:X=[[5], [6]],Y=[[7], [9]],则函数应该返回5.5和8。

def fit(X, Y):
    import numpy as np
    x = np.mean(X)
    y = np.mean(Y)
    return x,y

第二关——方差

在这里插入图片描述

def fit(X, Y):
    import numpy as np
    x_bar = np.mean(X)
    VAR = np.mean((X-x_bar)**2)
    return VAR

第三关——协方差

在这里插入图片描述

def fit(X, Y):
    import numpy as np
    x_bar = np.mean(X)
    y_bar = np.mean(Y)
    COVAR = np.mean((X-x_bar)*(Y-y_bar).reshape(-1,1))
    return COVAR

第四关——斜率 β \beta β

在这里插入图片描述

# @coding: utf-8

def fit(X, Y):
    import numpy as np
    x_bar = np.mean(X)
    y_bar = np.mean(Y)
    COVAR = np.mean((X-x_bar)*(Y-y_bar).reshape(-1,1))
    VAR = np.mean((X-x_bar)**2)
    beta = COVAR/VAR
    return beta

求解 α \alpha α

在这里插入图片描述

# @coding: utf-8

def fit(X, Y):

    #先求解贝塔值,然后根据公式直接求出阿尔法
    import numpy as np
    x_bar = np.mean(X)
    y_bar = np.mean(Y)
    COVAR = np.mean((X-x_bar)*(Y-y_bar).reshape(-1,1))
    VAR = np.mean((X-x_bar)**2)
    beta = COVAR/VAR
    k = y_bar - beta*x_bar
    return k
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是X大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值