多元线性回归:将数组附加到特征矩阵 (Python)

Multiple linear regression: appending an array on ones to Matrix of features (Python)

我目前正在在线学习数据科学的基础知识。在使用 Python 进行多元线性回归的课程之一中,导师执行了以下步骤,将 ones 上的数组添加到特征矩阵;我不明白为什么要添加它。从在线论坛中提到,添加它是为了使模型(方程)具有恒定的偏移量。但为什么是 1 而不是任何其他值。自变量(3)个数对这个值有影响吗

X -> 特征矩阵;数据集中的行数:50;数量

X = np.append(arr = np.ones([50,1]).astype(int), values = X,axis=1)

为了更好地解释,假设您只存储了 1 个特征,假设有 3 个 训练样例。

那么,你的参数是:

你的输入变量是:

如果要实现线性分类,必须计算每个训练样例i的代价函数:

如果您需要对微积分进行矢量化(为了提高效率和代码可读性),您需要计算以下矩阵乘积:

然而,根据definition of the matricial product,矩阵X的列数应该与矩阵Theta的行数相同。因此,要计算乘积但保持结果不变,您可以在矩阵 X 的左侧添加一列 1:

那么,每个样本 i 的结果如下:


TLDR:您需要将一列 1 添加到 X 以定义矩阵乘积 X*Theta。如果您要添加任何其他系数 c 而不是 1,那么您的常量偏移量 theta_0 将乘以您的系数 c.

我认为成本函数是预测标签和我们想要最小化的实际标签之间误差的总和。上面给出的J函数就是假设函数。