模型与目标
线性部分:O=XW+b,其中 X∈RN×n、W∈Rn×k、b∈R1×k。
概率:P=softmax(O),对每行做
(减去按行最大值做数值稳定)。
损失(带 L2 正则):
梯度:
数据中心的机房需要散热,一般通过水冷系统调控机房的温度。出于节能的目的,需要收集数据中心最近一段时间的业务负裁,同时结合历史信息,外界气温、湿度等因素调高或调低冷机的出水温度。
逻辑回归是比轻量的模型,其输出 0 或 1 可以分别表示调低或调高温度。
在实际使用场景中,仅判断调低或调高不能满足业务要求,需要细化到调低 1 度、调高 0.5度、维持不变、调高 0.5 度、调高 1 度等不同的"档位"。
因此,可以对逻辑回归进行改造,将其输出更改为 softmax 可满足要求。
请根据提供的观测数据,训练改造后的模型,并根据给定样本数据预测调节的档位。
优化后的模型:O=XW+b,P=softmax(O)。
X∈R(m,n) 表示 m 条样本,每个样本有 n 个特征;
W∈R(n,k) 为权重;k 是档位数(即 k 个分类);
b∈R(1,k) 为偏置。W 和 b 通过训练得到。
P∈R(m,k) 表示预测的概率,取概率最大的作为输出档位。
1.第一行是数据 schema,分别表示特征数 n ,分类数 k ,第 0 类样本数(即档位 0 ),第 1 类样本数,…,第 k−1 类样本数,待预测样本数 m ;数据均为 int 类型
2.后续的多行是 k 个分类的训练样本(按照分类 0 的多条样本、分类 1 的多条样本 、… 依次排列,一行一个样本)和 m 条待预测样本(一行个样本);数据均为 float 类型
每个待预测样本所所属的分类,一行输出一个样本的预测结果
输入
2 3 2 3 2 3
9 95
33 53
53 55
69 21
68 31
70 85
80 83
25 70
45 30
79 86
输出
0
1
2
说明
1.第一行数据 2 3 2 3 2 3 ,表示每条样本 2 个特征,共有 3 个分类;分类 0 样本 2 条,分类 1 样本 3 条,分类 2 样本 2 条;测试用例 3 条
2.第 2~3 行为分类 0 样本(标签为 0 ),4~6 行为分类 1 样本(标签 1 ),7~8 行为分类 2 样本(标签为 2 )
3.最后 3 行是待预测样本
输出:3 个待预测样本的预测结果为分类 0 、分类 1 、分类 2
输入
3 3 4 3 4 5
9 95 7
33 53 13
45 43 6
40 50 11
53 55 36
69 21 55
68 31 43
70 85 23
80 83 46
70 73 55
76 78 53
25 70 6
20 69 16
45 30 50
79 86 51
70 76 36
输出
0
0
1
2
2
说明
1、第一行数据 3 3 4 3 4 5 ,表示每条样本 3 个特征,共有 3 个分类;分类 0 样本 4 条,分类 1 样本 3 条,分类 2 样本 4 条;测试用例 5 条
2.第 2~5 行为分类 0 样本(标签为 0),6~8 行为分类 1 样本(标签 1 ),9~12 行为分类 2 样本(标签为 2 )
3.最后 5 行是待预测样本
输出:
5 个待预测样本的预测结果为分类 0 (即档位 0 )、分类 0 、分类 1 、分类 2 、分类 2
1.使用交叉熵损失函数,标签值需转为 one−hot 编码;梯度求解函数如下方公式所示,Y 为真实标签(即 one−hot 编码);P 为预测的概率(即 softmax 的输出)
2.采用批梯度下降优化参数;选择比较好的学习率(根据经验,为了加快收敛速度,初始学习率可设置较大的数值,例如 5 );适当增加迭代次数有助于获得更精确的结果;
3.原始数据值域一般在 100 以内,为避免计算 softmax 越界,需要对数据集执行归一化操作。
交叉熵函数
$-\frac{1}{m} \sum_{i=1}^{m} \sum_{j=1}^{k} Y_{i, j} \log \left(P_{i, j}\right)$
损失函数对 W 的梯度
m1XT(P−Y)
损失函数对 b 的梯度
$\frac{1}{m} \sum_{i=1}^{m}\left(P_{i,:}-Y_{i,:}\right)$