【Deep-ML系列】Linear Regression Using Gradient Descent(手写梯度下降)

题目链接:Deep-ML

这道题主要是要考虑矩阵乘法的维度,保证维度正确,就可以获得最终的theata

python 复制代码
import numpy as np
def linear_regression_gradient_descent(X: np.ndarray, y: np.ndarray, alpha: float, iterations: int) -> np.ndarray:
    """
    Linear regression
    :param X: m * n
    :param y:
    :param alpha:
    :param iterations:
    :return:
    """
    m, n = X.shape
    theta = np.zeros((n, 1))
    y = y.reshape(m, 1)     # 保证y是列向量
    for i in range(iterations):
        prediction = np.dot(X, theta)   # m * 1
        error = prediction - y          # m * 1
        gradient = np.dot(X.T, error)   # n * 1
        theta = theta - alpha * (1 / m) * gradient
    theta = np.round(theta, decimals=4)
    return theta

if __name__ == '__main__':
    X = np.array([[1, 1], [1, 2], [1, 3]])
    y = np.array([1, 2, 3])
    alpha = 0.01
    iterations = 1000
    print(linear_regression_gradient_descent(X, y, alpha, iterations))
相关推荐
Codebee12 小时前
OODER图生代码框架:Java注解驱动的全栈实现与落地挑战
人工智能
中冕—霍格沃兹软件开发测试12 小时前
测试用例库建设与管理方案
数据库·人工智能·科技·开源·测试用例·bug
断剑zou天涯12 小时前
【算法笔记】bfprt算法
java·笔记·算法
TextIn智能文档云平台12 小时前
什么是多模态信息抽取,它和传统OCR有什么区别?
大数据·人工智能
Linux后台开发狮12 小时前
DeepSeek-R1 技术剖析
人工智能·机器学习
youngee1112 小时前
hot100-47岛屿数量
算法
拾荒的小海螺12 小时前
开源项目:AI-Writer 小说 AI 生成器
人工智能
Xiaoxiaoxiao020913 小时前
情感 AI:让机器真正理解人的下一代智能——以 GAEA 为例的情绪计算探索
人工智能
测试人社区-千羽13 小时前
边缘计算场景下的智能测试挑战
人工智能·python·安全·开源·智能合约·边缘计算·分布式账本
抽象带篮子13 小时前
Pytorch Lightning 框架运行顺序
人工智能·pytorch·python