【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))
相关推荐
海鸥811 分钟前
AIOps(智能运维)理解
运维·人工智能
weixin_468466855 分钟前
从“建模城市”到“按需查询”:D4RT如何用200+FPS重新定义动态3D世界
人工智能·3d·具身智能·d4rt·4d重建
广州硅基技术官方7 分钟前
AIGK外贸工厂社媒引流实战教程:海外自媒体短视频AI矩阵获客玩法解析
人工智能·音视频·媒体
额鹅恶饿呃12 分钟前
算力计算核心前提:分清GPU两套独立计算硬件
人工智能
Dream-Y.ocean13 分钟前
基于具身交互智能数字人,我用Flask搭了一个AI教学平台:课代表AI全流程实战
人工智能·flask·交互
s_w.h14 分钟前
【 刷题 】双指针
算法
啥都想学点的研究生17 分钟前
一篇文章讲清楚:K-Means聚类算法
算法·kmeans·聚类
白狐_79828 分钟前
408 数据结构|KMP做题方法:next、nextval和高频易错点
数据结构·算法
Canace30 分钟前
最新版 Codex 工作流的问题
前端·人工智能·agent
月华路31 分钟前
《模型不玄学》第20章 两种评估视角
人工智能·算法·机器学习