4750|8

552

帖子

3

TA的资源

纯净的硅(初级)

楼主
 

《机器学习算法与实现》3、最小二乘法 [复制链接]

一、最小二乘法

在正式开始逻辑斯蒂回归之前,先来理解以下最小二乘法的原理和实现方法。

要理解逻辑斯蒂回归,就要了解其理论支撑和回归问题。学习线性回归的理论和方法,是深入理解逻辑斯蒂回归的基础。

线性回归分析中应用最广泛的方法是最小二乘法。

最小二乘法是一种数学优化技术,它通过最小化误差的平方和来找到一组数据的最佳拟合函数。

二、最小二乘法的数学原理

如果有N个观测数据,定义为

X = {x1, x2,... xN}

Y = {y1, y2,... yN}

其中,X是自变量,Y是因变量。我们希望找到一个模型来表示这些数据之间的关系。

如果用简单的线性模型来来拟合,就是:

y = ax + b

那么,问题就转换为了求解a和b使得观测值和拟合值的误差最小。

由此,可以构造损失函数L。

这个损失函数是一个二次函数,存在一个极小值点,因此对其关于a和b求偏倒数:

当偏倒数为0时,损失函数最小:
上式中,xi和yi是观测数据,也就三样本数据,是已知的,要求的值是a和b,调整一下各项的顺序得到如下的二元一次方程组:
所以,求解该方程组就能得到a和b的值了。
 
三、最小二乘法的算法实现

1、准备样本数据并做可视化

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
data_num = 50
X = np.random.rand(data_num, 1)*10
Y = X * 3 + 4 + 4*np.random.randn(data_num, 1)

# 画出数据分布
plt.scatter(X, Y)
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
 

1、python实现最小二乘法

# 最小二乘法的算法实现
N  = X.shape[0]

S_X2 = np.sum(X*X)
S_X = np.sum(X)
S_XY = np.sum(X*Y)
S_Y = np.sum(Y)

A = np.array([[S_X2, S_X], [S_X, N]])
print(A)
B = np.array([S_XY, S_Y])

coeff = np.linalg.inv(A).dot(B)

print('a = %f, b = %f' % (coeff[0], coeff[1]))

x_min = np.min(X)
x_max = np.max(X)
y_min = coeff[0] * x_min + coeff[1]
y_max = coeff[0] * x_max + coeff[1]

plt.scatter(X, Y, label='original data')
plt.plot([x_min, x_max], [y_min, y_max], 'r', label='model')
plt.legend()
plt.show()

 

最后的拟合结果:

以上就是最小二乘法的原理和算法实现,理解起来还是不难的。

接下来后面的内容就会上难度了。

 

 

最新回复

读了这篇文章,终于弄明白了最小二乘法原理,谢谢提供这方面的知识   详情 回复 发表于 2024-7-27 11:43
点赞 关注

回复
举报

6809

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

最小二乘法的原理和算法实现,理解起来是不难的,就是处理起来难

点评

处理是指哪方面的处理呢?平时用的少,没什么经验  详情 回复 发表于 2024-7-12 20:48
 
 

回复

4932

帖子

19

TA的资源

版主

板凳
 
吊个scipy ols 一下直接完事

点评

大佬平时经常会用到最小二乘法吗,感觉大佬挺专业的  详情 回复 发表于 2024-7-12 20:51
 
 
 

回复

552

帖子

3

TA的资源

纯净的硅(初级)

4
 
Jacktang 发表于 2024-7-12 07:37 最小二乘法的原理和算法实现,理解起来是不难的,就是处理起来难

处理是指哪方面的处理呢?平时用的少,没什么经验

 
 
 

回复

552

帖子

3

TA的资源

纯净的硅(初级)

5
 
吾妻思萌 发表于 2024-7-12 08:55 吊个scipy ols 一下直接完事

大佬平时经常会用到最小二乘法吗,感觉大佬挺专业的

点评

我是调包菜鸡啊~  详情 回复 发表于 2024-7-13 12:46
 
 
 

回复

4932

帖子

19

TA的资源

版主

6
 
吾妻思萌 发表于 2024-7-12 08:55
吊个scipy ols 一下直接完事

大佬平时经常会用到最小二乘法吗,感觉大佬挺专业的

我是调包菜鸡啊~

点评

莫谦虚啊,大佬  详情 回复 发表于 2024-7-13 14:02
 
 
 

回复

552

帖子

3

TA的资源

纯净的硅(初级)

7
 
吾妻思萌 发表于 2024-7-13 12:46 大佬平时经常会用到最小二乘法吗,感觉大佬挺专业的 [/quote] 我是调包菜鸡啊~

莫谦虚啊,大佬

 
 
 

回复

227

帖子

0

TA的资源

一粒金砂(高级)

8
 

读了这篇文章,终于弄明白了最小二乘法原理,谢谢提供这方面的知识

点评

一起学习  详情 回复 发表于 2024-7-27 14:03
 
 
 

回复

552

帖子

3

TA的资源

纯净的硅(初级)

9
 
heleijunjie72 发表于 2024-7-27 11:43 读了这篇文章,终于弄明白了最小二乘法原理,谢谢提供这方面的知识

一起学习

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表