【问题标题】:Build logistic regression models for each PAIR of 10 classes为每对 10 个类建立逻辑回归模型
【发布时间】:2015-08-26 18:52:10
【问题描述】:

我正在研究 MNIST digit recognizer 数据集

在这里,我有 10 个类标签,我希望构建和比较所有类对,即运行 10c2 逻辑回归模型并比较它们。我知道我可以使用 combn(unique(mnist$label), 2, function(x) , simplify = TRUE) 在一个循环中并在函数中编写模型。但是,我卡在这里了。

loglist <- list()
for(i in unique(mnist$label)){ 
        tmp <- try(append(loglist, glm(label~.,family=binomial(link=logit),
                   data = mnist[mnist$label == i, ])))
        if (class(tmp) != "try-error") loglist <- append(loglist, tmp)
} 

任何帮助或建议都会有很大帮助,谢谢。

【问题讨论】:

  • 那么...有什么问题?
  • 代码不起作用,我无法调试或找到更短的方法来执行此操作。
  • 你能提供一个reproducible example吗?

标签: r machine-learning regression subset logistic-regression


【解决方案1】:

有 3 种方法可以将逻辑回归模型用于多个(在您的情况下为 10 个)类。

  1. 一对一休息
  2. 一对一

这两种方法对wiki 有很好的解释,对Andrew NG 有很好的video lecture

另一种方法是使用 Softmax 回归,可以在给定的链接中找到 good tutorial。该模型将逻辑回归推广到分类问题,其中类标签 y 可以取两个以上的可能值。

那么,什么时候使用哪个模型:

这将取决于四个类是否互斥。 例如,如果您的四门课程是古典、乡村、摇滚和 jazz,然后假设您的每个训练示例都标有 正是这四个类标签之一,你应该建立一个softmax 分类器。

如果您的类别是 has_vocals、dance、soundtrack、pop、 那么这些类不是互斥的;例如,可以有 一段流行音乐,来自原声带,此外还有 人声。在这种情况下,构建 4 个二进制文件会更合适 逻辑回归分类器。这样,对于每首新的音乐作品, 您的算法可以单独决定它是否属于每个 四个类别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-21
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多