这是写死规则的线性分类:补偏置、标签映成正负一、全零起步,固定十轮、学习率一,按原顺序遇错就更新。
1,标签 0/1 变成 -1/+1。0 开始。一轮里按输入顺序扫样本,用 h⊤vˉ≥0 判成 +1 否则 −1;判错就把 t⋅vˉ 加到 h 上。10 轮。测试时用同一套符号函数,再把 +1 映回 1、$-1映回0`。仓储质检组要用一条固定规则的线性判别,给待检货位打上好坏标签。值班员必须按当晚工艺单写死的学习率、轮数和更新顺序训练,再对抽检清单输出预测,不能改成别的分类器。
每条训练记录是一组货位特征 v 和一个标签 y∈{0,1},其中 0 表示不合格,1 表示合格。训练时先把标签映成 t∈{−1,+1}:
特征要补上偏置:vˉ=[1,v]。权向量 h 从全 0 开始,学习率固定为 1.0,一共训练 10 轮。每一轮按训练集原始顺序扫一遍:
测试时用同一套 sign 得到 t^,再映回标签:+1 映成 1,-1 映成 0。
标准输入是一段 JSON,含两个键 train 和 test。
train:训练列表,每个元素为 [特征列表, 标签y],标签只取 0 或 1test:测试列表,每个元素为一组特征输出一行 JSON,内容为预测标签列表,每个值是 0 或 1,顺序与 test 一致。
输入
{"train": [[[0], 0], [[1], 0], [[4], 1], [[5], 1]], "test": [[0], [1], [2], [3], [4], [5]]}
输出
[0, 0, 1, 1, 1, 1]
说明
一维货位读数较小的两条标成不合格,较大的两条标成合格。按固定规则训练 10 轮后,分界落在 1 与 2 之间,因此测试六个点的预测是前两个 0、后四个 1。
输入
{"train": [[[0, 0], 0], [[2, 0], 1]], "test": [[0, 0], [2, 0], [1, 0]]}
输出
[0, 1, 1]
说明
只有两条训练样本。权向量从零开始,遇错就加一刀,测点两个原样本保持原标签,中间点被判成合格。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.