首页 > 试题广场 >

二分类逻辑回归

[编程题]二分类逻辑回归
  • 热度指数:20 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
你需要基于用户的三个数值特征(年龄、月收入、浏览时长)训练一个二分类模型,判断其是否会购买某商品。每条训练数据包含三个特征与一个标签(0/1)。模型使用逻辑回归:以 Sigmoid 作为激活函数,损失为平均交叉熵,并加入 L2 正则。优化方式为批量梯度下降;达到最大迭代次数或相邻两次损失变化小于阈值即停止。随后对给定的测试样本输出预测标签与对应概率(四舍五入保留四位小数)。预测时,概率≥0.5 视为正类,否则为负类。

输入描述:
  • 第1行:n max_iter alpha lam tol
    • n:训练样本条数
    • max_iter:最大迭代次数
    • alpha:学习率(浮点数)
    • lam:L2 正则系数(浮点数)
    • tol:损失收敛阈值(浮点数)
  • 接下来 n 行:每行 a inc dur label
    • a 为年龄(数值),inc 为月收入(数值),dur 为浏览时长(数值),label 为 0 或 1
  • 第 n+2 行:m(测试样本数)
  • 接下来 m 行:每行 a inc dur(仅特征,无标签)


输出描述:
  • 共 m 行。每行输出:pred prob
    • pred 为预测标签(0 或 1)
    • prob 为对应正类概率,保留四位小数
示例1

输入

3 0 0.10 0.00 0.0001
20 3 2 0
30 10 8 1
40 15 12 1
2
25 5 4
35 12 9

输出

1 0.5000
1 0.5000

说明

max_iter=0,训练不进行,参数保持 w=b=0。
预测概率均为 0.5,阈值规则下均判为 1。

这道题你会答吗?花几分钟告诉大家答案吧!