美文网首页
书3.2 对线性模型进行最小二乘的程序源码

书3.2 对线性模型进行最小二乘的程序源码

作者: bbchond | 来源:发表于2022-06-14 20:51 被阅读0次

在书中Matlab源码中, 对最小二乘法的求解是使用t=p\y语句表示的,在Python中我们可以调用scipy库中的nnls方法来实现同样的功能。

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import nnls

n = 50
N = 1000
x = np.linspace(-3, 3, n).T
X = np.linspace(-3, 3, N).T
pix = np.pi * x
y = (np.sin(pix) / pix + 0.1 * x).reshape(n, -1) + np.dot(0.05, np.random.randn(n, 1))

p = np.empty([n, 31])
p[:, 1] = np.ones((n,))
P = np.empty([N, 31])
P[:, 1] = np.ones((N,))

for i in range(1, 16):
    p[:, 2 * i - 1] = np.sin(i / 2 * x)
    p[:, 2 * i] = np.cos(i / 2 * x)
    P[:, 2 * i - 1] = np.sin(i / 2 * X)
    P[:, 2 * i] = np.cos(i / 2 * X)

t = nnls(p, y.flatten())[0]
F = P.dot(t)

plt.plot(x, y, 'bo')
plt.plot(X, F, 'g-')
plt.axis([-3.05, 3.05, -0.5, 1.2])
plt.show()

相关文章

  • 书3.2 对线性模型进行最小二乘的程序源码

    在书中Matlab源码中, 对最小二乘法的求解是使用t=p\y语句表示的,在Python中我们可以调用scipy库...

  • 矩阵: QR分解 && 最小二乘问题求解

    最小二乘问题分为线性最小二乘问题和非线性最小二乘问题;非线性最小二乘问题求解方法有高斯牛顿法,Levenberg-...

  • 线性代数与数值方法

    主要分以下几个方面进行说明: 一、矩阵分解 二、线性最小二乘 三、非线性最小二乘 四、直接稀疏矩阵方法 五、迭代方...

  • 算法工程师知识树 持续更新

    机器学习算法 监督学习分类模型LRSVM决策树NB回归模型线性回归 最小二乘融合模型baggingRFboosti...

  • 机器学习算法深度总结(3)-最小二乘

    1. 最小二乘学习法 最小二乘学习法(后续简称二乘法)是对模型输出和训练集输出的残差的平方和最小时的参数进行学习:...

  • 1线性回归

    斜体部分为本人的理解 一 线性回归(LinearRegression),即模型服从最小二乘y=ax+b,机器学习就...

  • 2. 线性回归与逻辑回归

    1. 什么是线性回归? 线性回归是利用线性回归方程的最小二乘函数对一个或多个自变量和因变量之间的关系进行建模的方法...

  • ceres solver 01 入门小例子

    1. 基本介绍 Ceres Solver是用来解决非线性最小二乘问题的库。 非线性最小二乘问题用公式表达如下:其中...

  • 简单线性回归——置信区间

    简单线性回归: 在统计学中,线性回归是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模...

  • PH525x series - Linear Algebra E

    本章节将通过举例说明在进行数据分析时矩阵代数所起到的作用,以及如何利用矩阵代数方程构建线性模型、计算最小二乘估计。...

网友评论

      本文标题:书3.2 对线性模型进行最小二乘的程序源码

      本文链接:https://www.haomeiwen.com/subject/zhjzmrtx.html