本题要求用二分类逻辑回归(Logistic Regression)对“是否购买”进行预测。模型形式为 y^=σ(z)=σ(w⊤x+b),其中 σ(t)=1+e−t1 为 Sigmoid。
优化目标(带 L2 正则的交叉熵): 对 n 个样本,特征维度为 d=3(年龄、月收入、浏览时长),标签 y∈{0,1}。 损失函数取平均交叉熵并加入 L2 正则(采用更常见的平方范数形式):
实现一个二分类逻辑回归模型,用于预测用户是否会购买某商品(1 表示购买,0 表示不购买)。已知用户特征包括年龄(岁)、月收入(千元)和浏览时长(分钟),需通过这些特征建立预测模型。
我们构建一个逻辑回归模型来预测购买:ypred=sigmoid(wx+b),
w 和 b 分别为特征权重和偏置。
要求:
L=n1∑i=1nCrossEntropy(yipred,yilabel),使用 L2 正则约束权重 L2(w)=∣∣w∣∣2,激活函数为 Sigmoid 。
训练终止条件:迭代次数达到最大次数(max_iter)或损失函数变化量小于阈值(tol)。
对测试数据进行预测,输出预测结果(概率 ≥0.5 预测为 1,否则为 0),和对应的概率值,四舍五入保留四位小数。
第一行:5 个数字,分别为训练样本数 n 、最大迭代次数 max_iter、学习率 α(浮点型)、正则化系数 λ(浮点型)、损失阈值 tol(浮点型)。
接下来 n 行:每行 4 个数值,前 3 个为特征(年龄、月收入、浏览时长),第 4 个为标签(0 或 1)。
第 n+2 行:整数 m(测试样本数)。
接下来 m 行:每行 3 个数值,为测试特征。
m 行,每行 1 个整数( 0 或 1),表示预测结果;接着是一个空格;紧接着输出对应的商品购买小数概率值(保留四位小数)
输入
10 1000 0.01 0.1 0.0001
25 8 5 0
30 15 15 1
35 20 10 0
40 25 20 1
45 30 25 1
50 35 18 1
55 40 12 0
60 45 8 0
65 50 5 0
70 55 30 1
3
32 18 12
48 33 22
62 48 10
输出
1 0.7539
1 0.9966
0 0.0004
说明
对于第一个样例,年龄(32 岁)、月收入(18 千元)和浏览时长(12 分钟),输出结果 1 表示该用户会购买该商品,0.7539 表示用户购买该商品的概率是 75.39%。
输入
10 1000 0.01 0.1 0.0001
25 8 5 0
30 15 15 1
35 20 10 0
40 25 20 1
45 30 25 1
50 35 18 1
55 40 12 0
60 45 8 0
65 50 5 0
70 55 30 1
1
48 30 10
输出
0 0.0081
说明
对于第一个样例,年龄(48 岁)、月收入(30 千元)和浏览时长(10 分钟),输出结果 0 表示该用户不会购买该商品,0.0081 表示该用户购买该商品的概率是 0.81%。