本题是一个基于 K-最近邻的元学习(Meta-Learning)问题,核心思想是“借鉴相似任务的经验来选择超参数”。
整体流程分为四步:
给定一张历史元数据表(每行包含数据集简单特征 & 其在线最优C)、以及一份当前任务的训练/测试数据,请实现一个基于 K-NN 的超参数元学习器:
数据集元特征 对每个数据集都计算三维向量:
m=[samples,features,imbalance]
其中
K最近邻检索
汇聚与选 C*
模型训练 + 预测
单行 JSON(示例片段)
{
"train_X": [[1.0,2.0], ...],
"train_y": [0, 1, ...],
"test_X": [[...], ...],
"history": [
{"meta": [50, 4, 0.10], "C": 0.1, "score": 0.80},
{"meta": [120, 2, 0.25], "C": 1.0, "score": 0.85},
...
]
}
约束:
仅一行:
{
"C_star": 1.0,
"pred": [0, 1, 0, ...]
}
pred 长度 = ∣testX∣,元素为 0/1。
不得重新搜索其它 C;只能通过步骤 2−3 得到 C*。
所有随机源固定 randomstate=42,流程纯确定性。
为了确保通过测试用例,仅允许使用 numpy、pandas、scikit−learn。
输入
{
"train_X": [[0.0,0.0],[0.2,0.4],[0.3,0.5],[0.1,0.2],[1.0,1.1],[1.2,1.3],[1.3,1.4],[1.1,1.0]],
"train_y": [0,0,0,0,1,1,1,1],
"test_X": [[0.15,0.25],[1.15,1.25]],
"history": [
{"meta":[50,2,0.10],"C":0.1,"score":0.82},
{"meta":[48,2,0.20],"C":0.3,"score":0.79},
{"meta":[60,2,0.00],"C":1.0,"score":0.85},
{"meta":[40,4,0.30],"C":3.0,"score":0.80},
{"meta":[55,3,0.18],"C":0.3,"score":0.83},
{"meta":[52,2,0.10],"C":1.0,"score":0.81},
{"meta":[58,2,0.05],"C":10.0,"score":0.78}
]
}
输出
{"C_star": 0.1,"pred": [0, 1]}
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册