glmnet多项式Lo​​gistic回归预测结果

时间:2018-08-14 14:15:39

标签: r classification regression glm multiclass-classification

我正在建立一个惩罚性的多项式逻辑回归,但是我在想出一种简单的方法来获得预测准确性方面遇到了麻烦。这是我的代码:

function fooA(){
    $var = $null
    $var = $DropDownBox.SelectedItem
    do-theRest
}

function fooB(){
    do-somethingElse
    . fooA 
}

function fooC(){
    do-something
    . fooB
}

. fooC

$Button1.add_Click({. fooA})
$Button2.add_Click({. fooB})

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

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")

据我了解,这些是类的概率。我想知道是否有一种简单的方法来计算测试数据上的模型准确性。现在,我将每一行的最大值与原始标签进行比较。谢谢

2 个答案:

答案 0 :(得分:2)

类似的东西:

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

第一行采用该模型,模型针对该类输出每行最高的概率,此后第二行构建一个混淆矩阵。

那么准确度基本上就是被归为正确观察值的比例(对角线总和)

答案 1 :(得分:-1)

有关更多详细信息,请参阅Glmnet小插图

fit.ridge.pred <- predict(fit.ridge.best, test[,-1], type = "class") # predict classes, not probability
table(fit.ridge.pred,test[,1]) # confusion matrix
mean(fit.ridge.pred==test[,1]) # accuracy