【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))
相关推荐
纪伊路上盛名在1 分钟前
Omni-Mol:用多模态大语言模型构建通用多任务分子模型
人工智能·语言模型·自然语言处理·蛋白质·通用模型·生物大分子·混合专家moe
硅谷秋水4 分钟前
超越模仿:通过离线策略Q-规划实现机器人策略的自我改进
人工智能·深度学习·机器学习·机器人
Fairy要carry7 分钟前
制造业实习02-控制下载速度的几个问题
人工智能
Csvn11 分钟前
第 21 章 排错与调试实战
人工智能·aigc·agent
Wang's Blog14 分钟前
Java框架快速入门: Spring Security+OAuth2之字段验证与自定义验证注解实战
java·算法·spring
科技林总16 分钟前
氛围编程场景下AI提示词使用核心原则
人工智能
面朝大海,春不暖,花不开16 分钟前
翻译自 英语
人工智能·机器学习
xwz小王子19 分钟前
GPT‑6 Astra 机器人实测:简单任务碾压,精细任务撞墙——大模型离“会摸”还有多远?
人工智能
带多刺的玫瑰20 分钟前
Leecode#29刷题之两数相除
java·python·算法
smj2302_7968265221 分钟前
解决leetcode第4017题数组中的峰值II
python·算法·leetcode