【发布时间】:2019-07-13 06:46:24
【问题描述】:
我无法理解实现多岭回归的函数的输出。我在 Python 中从头开始为该方法的封闭形式执行此操作。这个封闭的表格如下所示:
我有一个训练集X 即100 rows x 10 columns 和一个向量y 即100x1。
我的尝试如下:
def ridgeRegression(xMatrix, yVector, lambdaRange):
wList = []
for i in range(1, lambdaRange+1):
lambVal = i
# compute the inner values (X.T X + lambda I)
xTranspose = np.transpose(x)
xTx = xTranspose @ x
lamb_I = lambVal * np.eye(xTx.shape[0])
# invert inner, e.g. (inner)**(-1)
inner_matInv = np.linalg.inv(xTx + lamb_I)
# compute outer (X.T y)
outer_xTy = np.dot(xTranspose, y)
# multiply together
w = inner_matInv @ outer_xTy
wList.append(w)
print(wList)
为了测试,我使用前 5 个 lambda 值运行它。
wList 变为 5 numpy.arrays 每个长度为 10(我假设为 10 个系数)。
这是这 5 个数组中的第一个:
array([ 0.29686755, 1.48420319, 0.36388528, 0.70324668, -0.51604451,
2.39045735, 1.45295857, 2.21437745, 0.98222546, 0.86124358])
我的问题和澄清:
不应该有 11 个系数(1 个 y 截距 + 10 个斜率)吗?
我如何从这个计算中得到Minimum Square Error?
如果我想绘制这条线,接下来会发生什么?
我想我只是对我在看什么感到很困惑,因为我仍在研究我的线性代数。
谢谢!
【问题讨论】:
-
请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 On topic、how to ask 和 ... the perfect question 在此处申请。 StackOverflow 不是设计、编码、研究或教程资源。
-
@Prune 会的,谢谢!
-
永远不要使用倒数。 Numpy 有一个解决方法。
标签: python numpy machine-learning regression linear-algebra