【问题标题】:Gradient Descent Classification with 5 labels and 9 features具有 5 个标签和 9 个特征的梯度下降分类
【发布时间】:2017-07-27 07:17:02
【问题描述】:

我有一组数据,每个条目有 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...)

如何选择将这些特征映射到五个可能标签之一的可能性的评分函数?

看起来像:

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) = loss
    [weights] = loss*stepsize
end for

这感觉很不对,但我是梯度下降的新手。关于如何进行多标签分类的任何想法?

【问题讨论】:

    标签: python machine-learning classification gradient-descent


    【解决方案1】:

    你的问题不清楚!为什么?

    首先,如果你有两个标签的训练数据,那么如何设计一个五类分类问题的模型?在训练过程中,您的模型不知道其他三个类是什么,那么在测试过程中它如何预测一个实例属于这三个未知的类?

    您可以考虑一些无监督分类技术,例如不需要为训练实例提供真实标签的聚类。但我不确定你的要求是什么!

    第二,梯度下降(一种优化算法)不是一种分类问题解决技术,而是可以用来解决最小化问题。假设您设计了一个模型,其中有一个目标函数(包括模型参数)。您可以使用梯度下降来最小化该目标函数以找出最佳模型参数。

    我鼓励您阅读gradient descent 上的维基文章。如果你有带有真实标签的训练数据,你可以使用任何有监督的分类模型,例如逻辑回归或 SVM 等和梯度下降技术来找出模型参数。


    更新

    您提供的算法很接近,但需要进行一些修改。简单来说,我们可以将梯度下降学习总结如下:


    我们可以将上面的算法翻译成更数学的符号如下。

    【讨论】:

    • 感谢您查看我的问题 - 我已对其进行了编辑以提供更多详细信息,并希望更好地反映我对梯度下降的理解。请注意,有五个可能的标签,并且每一行数据都被分配了真实的人类标签。
    • 我已经更新了我的答案。如果这对您有帮助,您可以投票和/或接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 2012-08-17
    • 1970-01-01
    • 2017-10-23
    • 2012-04-19
    • 2013-09-26
    相关资源
    最近更新 更多