我有一组数据,每个条目有9个"功能"(正数从1e-3到9e3),我需要使用每个条目的功能为条目选择5个可能的标签之一.
我知道我需要定义一个评分函数,它接收特征,对它们进行加权,并返回一个数字,反映每个标签被赋予这些特征和权重的可能性.损失函数将在输入上凸出:它将返回评分函数的输出与人工提供的标签之间的差异.评分函数的权重矩阵将通过梯度下降来优化,使得损失最小化.
具体来说,我有一些看起来像这样的东西:
entry 1> (ground-truth label), [0.9, 0.2, 1e-2, 6.853, 0.882 ... 1]
*prediction: label 3* *actually: label 4* *loss = some number, update weights*
entry 2> (ground-truth label), [features 1...9]
*prediction: label 1* *actually: label 1* *loss = 0, don't update weights*
...
entry 80,000> (etc...)
Run Code Online (Sandbox Code Playgroud)
如何选择将这些特征映射到五个可能标签之一的可能性的评分函数?
看起来像是这样的:
for (loop through all data)
[features] <dot product> [weights] = prediction
if(prediction near (number))
assign label 1
else if (prediction near (number 2)
assign label 2
else (etc...)
hinge_loss_function(prediction) = …Run Code Online (Sandbox Code Playgroud)