python - 使用 python 和 numpy 计算正则化损失函数的梯度

标签 python numpy machine-learning linear-regression

我有以下公式:

RLF

我试图在一个函数中使用它来计算正则化损失函数的梯度。我有 dataSet,它是 [(x(1), t(1)), ..., (x(n), t(n))],以及训练数据 n = 15

这是我目前所知道的,损失函数是 vector here.

def gradDescent(alpha, t, w, Z):
    returned = 2 * alpha * w
    y = []
    i = 0
    while i < len(dataSet):
        y.append(dataSet[i][0] * w[i])
        i+= 1
    return(returned - (2 * np.sum(np.subtract(t, y)) * Z))

问题是,w 总是等于 (M + 1) - 而在 dataSet 中,t 等于 15。这导致越界乘法。我计算的公式错了吗?有帮助吗?

最佳答案

我相信您弄乱了数据集数组的索引。还要确保您的数组实际上定义为数组而不是列表。我相信像 list[i][j] 这样的列表索引和像 array[i,j] 这样的数组索引。

所以我会通过以下方式运行您的数据对象:

import numpy as np
dataSet=np.asarray(dataSet)

然后用这个 while 循环替换你的 while 循环:

while i < len(dataSet):
        y.append(dataSet[i,0] * w[i])
        i+= 1

关于python - 使用 python 和 numpy 计算正则化损失函数的梯度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46635977/

相关文章:

python - 将字典中的值转换为键

Numpy:带负轴的 np.sum

python - 使用 python for 循环创建时间列表

python - 一次将多个掩码应用于 Numpy 数组

r - 尝试在 R 中运行 kNN 时,我收到由 coercionNAs 引入的错误 NAs?

python - 从应用程序代码中读取静态内容

python - 安装xbpch后Jupyter内核错误

python - 根据另一个参数的值添加参数

machine-learning - 如何评估 Weka 中的可更新分类器

machine-learning - 生成完美模拟训练集的决策树?