关于多元线性回归中的y真值和y预测值

来源:5-7 多元线性回归和正规方程解

伽蓝寺听雨_absyL0

2025-09-22

您好波哥,我在学习您的多元线性回归课程章节的时候,损失函数是【y真值-y预测值的差值平方和】,但是y真值是一个一维数组(它相当于是数据集的target列,我打印出来以后看shape是一维的),y预测值是一个列向量也就是一个二维矩阵(因为它是由Xb·θ得到的,Xb和θ都是二维的),y真值和y预测值维度是不同的,所以我的疑问是
① 损失函数用y真值-y预测值,相当于是用一个一维数组减去二维数组,我觉得很奇怪这块没想明白。

② 而且在使用多元线性回归的score函数(R方评测标准)的时候,函数内部对比这两个不同维度的数组为什么不会报错呢?

③ 多元线性回归方程的θ是对应每个特征的系数,这个系数是皮尔逊相关系数吗?另外我看您在课程里搭建的多元线性回归方程,有一些特征前的系数绝对值是较低的(比如绝对值低于0.6),所以可以推理出这种特征和预测结果之间的相关性并不强?那这种相关性不强的特征为什么不直接砍掉呢,我看您依然把这类特征保留在多元线性回归方程中。

④ 如果第三问的θ不是皮尔逊相关系数,我们在训练模型之前,不需要先对每个特征做一下皮尔逊相关系数测试,筛选出比如绝对值大于等于0.6的特征,再带着这些特征训练模型吗?

⑤ 波哥机器学习侧今年出新课吗?

感谢回答!!

写回答

1回答

liuyubobobo

2025-10-16

1.

这个问题可能确实是我在课程中没有特别讲清楚的。y 的预测值不是二维的,而是一维的。因为一个矩阵和一个向量相乘,结果是一个向量。向量就是一维的。除非你在做乘法前手动将这个一维向量转成了二维的矩阵。(n*1矩阵),结果才是二维的。因为矩阵和

矩阵相乘的结果是矩阵。

你可以在做完成发得到预测值以后手动看一下结果的 shape。如果对于某个特定代码还是觉得有问题,可以针对具体的代码我们再讨论。


2.

同 1


3.

不是。皮尔逊相关系数有严格的数学计算公式。而线性回归的结果只是一个你和结果,和统计学上的皮尔逊相关系数不同。一个最重要的区别是,皮尔逊相关系数只能得到一元自变量和 y 之间的关系,而无法像线性回归,可以使用多元线性回归。

当系数较低,确实意味着“相关性不强”(由于线性回归和统计学中的相关的概念you区别,我更喜欢说成是“影响不大”),但是,对于机器学习来说,主要任务是预测,而非探讨相关性。即使影响不大,但是只要对预测结果有影响(好的影响),就可以保留。当然了,如你所说,线性回归(或者基于线性回归的衍生方法)确实也可以因此作为一种特征提取的方式。其基本原理和你的叙述差不多。


4.

你完全可以这么做。这就是在做数据的预处理。你可以使用不同的与处理方式,得到不同的模型,比较它们结果的优劣。


5.

确实在筹划新课。基本上是这个课程的:威力增强版。一方面会加入深度学习的内容,另一方面是对于旧的内容,会根据一些新的形势(框架的变迁,一些理念的改变,包括这个课程没有介绍清楚的地方)做大幅度的变化。如果感兴趣敬请期待:)


感谢支持啦:)


0
2
liuyubobobo
回复
伽蓝寺听雨_absyL0
Xb·θ 中,如果 θ 是一维的,Xb·θ 就是一维的;如果 θ 是二维的,Xb·θ 的结果就是二维的。动手试试看? 所以,如果 y真值 是一维的: 如果 θ 是一维的,y真值可以和 Xb·θ 直接运算; 如果 θ 是二维的,你或者将 Xb·θ 的结果转成一维的;或者将 y真值 转层一维的,二者就可以直接计算; 对于向量来说,其实没有行和列的区分,向量就是向量,是一个一维的概念。所谓的行向量和列向量,都是将向量二维化以后,才有的概念(横着摆或者竖着摆)。
4天前
共2条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5980 学习 · 2456 问题

查看课程