代码之家  ›  专栏  ›  技术社区  ›  ajax2000

GLMNET多项逻辑回归预测结果

  •  0
  • ajax2000  · 技术社区  · 6 年前

    我正在建立一个惩罚的多项式逻辑回归,但是我很难找到一个简单的方法来获得预测的准确性。这是我的代码:

    fit.ridge.cv <- cv.glmnet(train[,-1], train[,1], type.measure="mse", alpha=0,
                          family="multinomial")
    
    fit.ridge.best <- glmnet(train[,-1], train[,1], family = "multinomial", alpha = 0,
                         lambda = fit.ridge.cv$lambda.min)
    
    fit.ridge.pred <- predict(fit.ridge.best, test[,-1], type = "response")
    

    我的测试数据的第一列是响应变量,它有4个类别。如果我看结果(fit.ridge.pred),它是这样的:

    1,2,3,4
    0.8743061353, 0.0122328811, 0.004798154, 0.1086628297
    

    根据我的理解,这些是类概率。我想知道是否有一个简单的方法来计算测试数据的模型精度。现在我取每行的最大值,并与原始标签进行比较。谢谢

    1 回复  |  直到 6 年前
        1
  •  2
  •   Robert    6 年前

    比如:

    predicted <- colnames(fit.ridge.pred)[apply(fit.ridge.pred,1,which.max)]
    table(predicted, test[, 1]
    

    第一行接受模型每行输出最高概率的类,然后第二行构造一个混淆矩阵。

    准确度基本上是分类正确的观测值的比例(对角线/总数之和)