对数几率回归算法伪代码

对数几率回归算法伪代码

步骤伪代码说明
初始化/* by 01022.hk - online tools website : 01022.hk/zh/dnstt.html */ w = 0(权重向量)
/* by 01022.hk - online tools website : 01022.hk/zh/dnstt.html */ b = 0(偏置项)
learning_rate = α(学习率)
max_iterations = N(最大迭代次数)
初始化模型参数和超参数
Sigmoid函数def sigmoid(z):
    return 1 / (1 + exp(-z))
将线性输出映射到概率空间(0,1)
前向传播def forward(X):
    z = X * w + b(线性组合)
    y_hat = sigmoid(z)(预测概率)
    return y_hat
计算模型预测值
损失函数计算def compute_loss(y, y_hat):
    return -sum(y * log(y_hat) + (1-y) * log(1-y_hat)) / m
    (m为样本数量)
计算交叉熵损失
梯度计算def compute_gradients(X, y, y_hat):
    dw = X.T * (y_hat - y) / m
    db = sum(y_hat - y) / m
    return dw, db
计算损失函数对参数的梯度
参数更新w = w - learning_rate * dw
b = b - learning_rate * db
使用梯度下降更新参数
训练循环for i in 0 to max_iterations:
    y_hat = forward(X_train)
    loss = compute_loss(y_train, y_hat)
    dw, db = compute_gradients(X_train, y_train, y_hat)
    w = w - learning_rate * dw
    b = b - learning_rate * db
    if loss收敛:break
迭代训练过程
预测函数def predict(X):
    y_hat = forward(X)
    return 1 if y_hat >= 0.5 else 0
二分类预测
多分类扩展# 一对多策略
for each class c:
    训练模型将c与其他类别分开
预测时选择概率最高的类别
处理多分类问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值