开发者社区> 问答> 正文

我们如何求解LASSO 回归?

已解决

我们如何求解LASSO 回归?

展开
收起
gxx1 2022-04-01 20:38:11 411 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    因此对于 LASSO 回归我们可以用以下代码来求解:

    importnumpy asnp

    defLasso(X, y, Lambda):

    n = X.shape[ 1]

    w = np.random.randn(n) # 随机初始化 w

    fori inrange( 10): #迭代10次

    fork inrange(n):

    y_res = y - np.dot(X, w) + X[:,k] * w[k]

    inner = np.dot(X[:,k], y_res)

    ifinner > Lambda:

    w[k] = (inner - Lambda)/(np.linalg.norm(X[:,k])** 2)

    elifinner < -Lambda:

    w[k] = (inner + Lambda)/(np.linalg.norm(X[:,k])** 2)

    else:

    w[k] = 0

    print( '第'+str(i+ 1)+ '步损失函数的值:'+ str(np.linalg.norm(y-np.dot(X,w))** 2+Lambda*np.linalg.norm(w,ord= 1))) # 输出损失函数大小

    returnw

    X = np.random.randn( 10, 20)

    y = np.random.randn( 10)

    Lasso(X,y, 0.2)

    上述代码就是对lasso回归的使用,我么可以将其作为参考进行应用。

    2022-04-01 20:44:12
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
理解过拟合 立即下载
概率图模型 立即下载