你需要基于用户的三个数值特征(年龄、月收入、浏览时长)训练一个二分类模型,判断其是否会购买某商品。每条训练数据包含三个特征与一个标签(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 为对应正类概率,保留四位小数
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
考点:二分
限制 1 秒 / 256MB | 标准输入输出
参考方向:二分
把「求最优值」转化为「判定某值是否可行」,用单调性二分逼近答案。
思路框架(二分 通法 · 非本题专属)
实现要点:模板:while (lo < hi) { mid = (lo+hi)/2; if (check(mid)) hi = mid; else lo = mid+1; } 求最小可行值。
复杂度:时间 O(check 的代价 × log(答案范围)) | 空间 O(1)
该范式的通法易错点
本题在源数据中没有官方考点标签,方向由题面特征推断,仅供参考。
样例 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。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2025年秋招-华为-10月29号ai岗。