numpy.linalg.lstsq()详解以及用法示例

这篇具有很好参考价值的文章主要介绍了numpy.linalg.lstsq()详解以及用法示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

详解

将最小二乘解返回到线性矩阵方程。

计算近似求解方程的向量x。
该方程可能未确定、良好或过度确定(即,线性独立行数可以小于、等于或大于其线性独立列数)。
如果a是平方且为全秩,则x(但对于舍入误差)是等式的"精确"解。否则,x最小化欧几里得 2 范数 。
如果有多个最小化解,则返回具有最小 2 范数的解。
numpy.linalg.lstsq()详解以及用法示例
参数
a:(M, N) array_like
"系数"矩阵。

b:{(M,), (M, K)} array_like
纵坐标或"因变量"值。如果b是二维的,则为b的每个K列计算最小二乘解。

rcond:float, 可选
小奇异值的截止比。出于秩确定的目的,如果奇异值小于rcond乘以的最大奇异值,则将其视为零。

在1.14.0版中更改:如果未设置,则给出未来警告。以前的默认值将使用机器精度作为rcond参数,新的默认值将使用机器精度时间max(M, N)。要使警告静音并使用新的默认值,请使用 ,若要继续使用旧行为,请使用 。
-1rcond=Nonercond=-1

返回
x:{(N,), (N, K)} ndarray
最小二乘解。如果b是二维的,则解位于x的K列中。

残差:{(1,), (K,), (0,)} ndarray
残差平方和:中每列的欧几里得 2 范数平方。如果a的秩< N 或 M <= N,则这是一个空数组。如果b是一维的,则这是一个 (1,) 形状数组。否则,形状为 (K,)。b - a @ x

秩:int
矩阵的秩a.

s:(min(M, N),) ndarray
的奇异值。

用法示例

首先定义x,y

x = np.array([0, 1, 2, 3])
y = np.array([-1, 0.2, 0.9, 2.1])

我们可以理解为4个点的x,y坐标已经给出,目标就是找到一条能最拟合这4个点的线
那么可以首先假设这条线是

y = kx + b

x有 x1, x2, x3, x4
同样的,y也有 y1, y2, y3, y4
那么我就可以看作是矩阵的相乘,也就是
numpy.linalg.lstsq()详解以及用法示例
可以看到左边第二列增加了一列1,是为了矩阵相乘正确表示y = kx + b
所以有以下代码

A = np.vstack([x,np.ones(len(x))]).T

np.vstack() 表示vertical stack,即上下堆叠,也即是把[x1, x2, x3, x4] 与 [1, 1, 1, 1]上下堆叠在一起形成系数矩阵A。
打印A
numpy.linalg.lstsq()详解以及用法示例
将A,y代入到np.linalg.lstsq()并打印

s=np.linalg.lstsq(A, y, rcond=None)
s

结果如下:
numpy.linalg.lstsq()详解以及用法示例
接下来分析输出,lstsq的输出包括四部分:回归系数、残差平方和、自变量X的秩、X的奇异值。
只需要回归系数即k和b
所以只需要取输出结果的第一个元素s[0]

k,b = np.linalg.lstsq(A, y, rcond=None)[0]
k,b

结果如下:
numpy.linalg.lstsq()详解以及用法示例
总结
形如np.linalg.lstsq(a, b, rcond=‘warn’)

lstsq的输入包括三个参数,a为自变量X,b为因变量Y,rcond用来处理回归中的异常值,一般不用。

lstsq的输出包括四部分:回归系数、残差平方和、自变量X的秩、X的奇异值。一般只需要回归系数就可以了。

参考
numpy.linalg.lstsq
numpy.linalg.lstsq这个是什么意思
np.linalg.lstsq(a, b, rcond=‘warn’)文章来源地址https://www.toymoban.com/news/detail-407534.html

到了这里,关于numpy.linalg.lstsq()详解以及用法示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • numpy抽样函数 np.random.choice用法详解

    顾名思义,抽样函数,定义如下: 参数说明: a :待抽样的样本(一维数组或整数) size: 输出大小,默认返回单个元素 replace : 抽样后的元素是否可重复,默认是 p: 每个样本点被抽样的概率,默认均匀抽样 举例如下: 从[1,2,3,4,5]中随机抽三个元素,可重复,概率分别为[0.1,

    2024年02月15日
    浏览(12)
  • 奇异值分解(SVD)和np.linalg.svd()函数用法

    奇异值分解(SVD)和np.linalg.svd()函数用法

            奇异值分解是一种十分重要但又难以理解的矩阵处理技术,在机器学习中是最重要的分解没有之一的存在。那么,奇异值分解到底是在干什么呢?         矩阵 A 表示的是高维数据,通常情况下高维数据分布并不是雨露均沾的,而往往是厚此薄彼,集中分布

    2023年04月08日
    浏览(10)
  • Spark SQL示例用法所有函数示例权威详解一【建议收藏】

    Spark中所有功能的入口点是 SparkSession 类。要创建一个基本的 SparkSession ,只需使用 SparkSession.builder() : 完整示例代码可在Spark存储库的“examples/src/main/scala/org/apache/spark/examples/sql/SparkSQLExample.scala”中找到。 在Spark 2.0中, SparkSession 提供了 对Hive功能的内置支持 ,包括 使用Hi

    2024年02月05日
    浏览(10)
  • mysql的JOIN用法详解-附带查询示例

    在 SQL 中,JOIN 是用于将多个表中的数据连接在一起的操作。它通过指定连接条件将两个或多个表中符合条件的行组合起来,产生一个新的结果集。 SQL 中常见的 JOIN 类型包括 INNER JOIN 、 LEFT JOIN 、 RIGHT JOIN 和 FULL OUTER JOIN 。 下面详细介绍这些 JOIN 类型的用法: 在连接条件中,

    2024年04月23日
    浏览(9)
  • python中的 collections 模块(用法、详解、底层原理,示例等)

    1.1 defaultdict 功能 可以设置一个默认值作为字典中新key的默认值。该默认值可以是任何对象, 包括函数、列表、元组、集合等。默认值不需要像dict那样事先定义,因为它在需要的时候会自动创建 使用defaultdict,可以简化代码并提高代码的可读性,而且可以防止KeyError异常的出

    2024年04月29日
    浏览(11)
  • np.linalg.inv方法详解

    经过手动计算,额,技巧,得到的结果也是如此。 若是换成不可逆的矩阵呢? 看代码! 好像不行,那就换一个 所以,这个函数是一个求方阵的逆矩阵的函数,要求方阵本身可逆,所以挺鸡肋的,对于很多不可逆的方阵是没办法的!

    2024年02月12日
    浏览(7)
  • 【docker常用命令系列】Docker Build语法用法示例详解

    Docker Build是Docker提供的一个命令,用于根据Dockerfile构建自定义的镜像。通过Docker Build,可以将应用程序、环境和依赖项打包到一个可移植的容器中,使得应用在不同环境下都能以相同的方式运行。 docker build [OPTIONS] PATH | URL | - 是 docker build 命令的语法说明。下面解释每个部分

    2024年04月14日
    浏览(10)
  • 【Spark原理系列】Accumulator累加器原理用法示例源码详解

    源自专栏《SparkML:Spark ML系列专栏目录》 Accumulator是Spark中的一种分布式变量,用于在并行计算中进行累加操作。它是由MapReduce模型中的“全局计数器”概念演化而来的。 Accumulator提供了一个可写的分布式变量,可以在并行计算中进行累加操作。在Spark中,当一个任务对Accum

    2024年03月14日
    浏览(9)
  • 【100天精通Python】Day74:python机器学习的生态圈(numpy,scipy,scikit-learn等),库安装环境搭建(conda virtualenv), 以及入门代码示例

    【100天精通Python】Day74:python机器学习的生态圈(numpy,scipy,scikit-learn等),库安装环境搭建(conda virtualenv), 以及入门代码示例

    目录  1 python 机器学习的生态圈        1.1 NumPy 和 SciPy: 1.2 Pandas: 1.3 Matplotlib 和 Seaborn: 1.4 Scikit-Learn: 1.5 TensorFlow 和 PyTorch: 1.6 Jupyter Notebooks: 1.7 NLTK(Natural Language Toolkit): 1.8 Statsmodels: 1.9 Virtualenv 和 Conda: (1)virtualenv  安装和使用 (2)conda安装和使用 1.10 Flask

    2024年02月03日
    浏览(12)
  • 范数详解-torch.linalg.norm计算实例

    范数详解-torch.linalg.norm计算实例

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 范数 是一种数学概念,可以将向量或矩阵映射到非负实数上,通常被用来衡量向量或矩阵的大小或距离。在机器学习和数值分析领域中,范数是一种重要的工具,

    2024年02月03日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包