首页 > 试题广场 >

使用梯度下降的线性回归

[编程题]使用梯度下降的线性回归
  • 热度指数:272 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
编写一个使用梯度下降执行线性回归的 Python 函数。该函数应将 NumPy 数组 X(具有一列截距的特征)和 y(目标)作为输入,以及学习率 alpha 和迭代次数,并返回一个 NumPy 数组,表示线性回归模型的系数。

输入描述:
第1行输入X,第2行输入y,第3行输入alpha,第4行输入迭代次数。


输出描述:
输出线性回归模型的系数,四舍五入到小数点后四位。返回类型是List类型。
示例1

输入

[[1, 1], [1, 2], [1, 3], [1, 4]]
[2, 3, 4, 5]
0.01
1000

输出

[0.8678 1.045 ]

备注:
1.对应的输入、输出已给出,您只用实现核心功能函数即可。
2.支持numpy、scipy、pandas、scikit-learn库。
大佬们,为啥这样不行呢:
 y = y.ravel()              
estimator = SGDRegressor(fit_intercept=False, learning_rate='constant', eta0= alpha, max_iter=1,shuffle=False,warm_start=True )
    estimator.fit(X,y)
    estimator.coef_[:] = 0.0
    for _ in range(iterations - 1):
        estimator.partial_fit(X, y)
    # theta = np.append(estimator.coef_,estimator.intercept_)
    theta = np.round(estimator.coef_, 4).tolist()
    return theta
发表于 2025-05-27 15:50:58 回复(0)