本题按题面给定的批量梯度下降训练逻辑回归,并用训练好的模型预测测试集,接口为 Solution.logisticRegression(...)。
实现逻辑回归二分类算法。
给定训练数据(3 维特征 + 标签)和测试数据,使用梯度下降训练模型,输出测试样本的预测类别和概率。
算法步骤:
第一行包含四个数:训练样本数 n、最大迭代次数 max_iter、学习率 α、损失阈值 tol。
(1≤n≤500,1≤max_iter≤10000,0<α≤1,0<tol<1)
接下来 n 行,每行 4 个数:前 3 个为特征(年收入、负债比率、信用历史),第 4 个为标签(0 或 1)。
下一行为测试样本数 m(1≤m≤100)。
接下来 m 行,每行 3 个数为测试特征。
输出 m 行,每行一个整数(预测类别 0 或 1)和一个浮点数(预测概率,保留 4 位小数),用空格分隔。
输入
6 1000 0.1 0.0001
50 0.2 5 0
30 0.6 2 1
80 0.1 10 0
25 0.8 1 1
60 0.3 8 0
35 0.7 3 1
2
45 0.75 6
28 0.75 2
输出
0 0.0000
0 0.0000
说明
按题目「算法步骤」严格执行:权重 W 和偏置 b 都初始化为 0,学习率 α=0.1,最大迭代 1000 次,损失阈值 tol=0.0001。
训练完成后对两个测试样本计算 z=XW+b,再通过 sigmoid 得到预测概率,两个概率都小于 0.5,因此都预测为「正常(0)」。
注意:如果你的实现得到 0.2531/0.8934 之类的非极端概率,通常是因为你额外做了特征归一化(标准化或最小-最大缩放)。本题严格按题目算法步骤执行(不含归一化),按标准实现的实际输出就是 0 0.0000 / 0 0.0000。
输入
4 500 0.05 0.001
20 0.1 1 1
100 0.1 15 0
70 0.2 8 0
25 0.85 2 1
1
50 0.5 5
输出
1 0.5347
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册