我正在建立一个惩罚性的多项式逻辑回归,但是我在想出一种简单的方法来获得预测准确性方面遇到了麻烦。这是我的代码:
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")
据我了解,这些是类的概率。我想知道是否有一种简单的方法来计算测试数据上的模型准确性。现在,我将每一行的最大值与原始标签进行比较。谢谢
答案 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