程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Lasso 模型中的 Matthews 相关系数,使用 R 进行逻辑回归大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Lasso 模型中的 Matthews 相关系数,使用 R 进行逻辑回归?

开发过程中遇到Lasso 模型中的 Matthews 相关系数,使用 R 进行逻辑回归的问题如何解决?下面主要结合日常开发的经验,给出你关于Lasso 模型中的 Matthews 相关系数,使用 R 进行逻辑回归的解决方法建议,希望对你解决Lasso 模型中的 Matthews 相关系数,使用 R 进行逻辑回归有所启发或帮助;

我正在使用库 (MASS) 中的数据 (birthwt),我想在套索模型中使用 R 计算马修斯相关系数 (MCC)。我真的很困惑。预先

birthwt=birthwt[,-10]
boot=sample(nrow(birthwt),40)
Train.data=birthwt[-boot,]
test.data=birthwt[boot,]
x =model.matrix(low~.,Train.data)[,-1]
y =Train.data$low

套索模型:

library(glmnet)
set.seed(123)
cv.lasso = cv.glmnet(x,y,Alpha = 1,family = "binomial")
model.lasso=glmnet(x,Alpha=1,family="binomial",lambda= cv.lasso$lambda.min)
coef(model.lasso)
 x.test = model.matrix(low ~.,test.data)[,-1]
proba.lasso = preDict(model.lasso,newx = x.test)
class.lasso = ifelse(proba.lasso > 0.5,1,0)
class.obs = test.data$low

解决方法

如果您对 glmnet 对象进行预测,则默认响应是 logit 链接,但在您的情况下,您需要执行以下操作:

class.lasso = preDict(model.lasso,newx = x.test,type="class")
class.lasso = as.numeric(class.lasso)
class.obs = test.data$low

你也可以这样使用概率:

class.lasso = ifelse(preDict(model.lasso,type="response") > 0.5,1,0)

要计算 mcc,您可以:

library(mltools)
mcc(pred = class.lasso,actual = class.obs)
[1] 0.2581989

或者使用计算皮尔逊 phi 的东西:

library(psych)
phi(table(class.lasso,class.obs),digits=7)

[1] 0.2581989

或者,如果您使用 the formula from wiki 从头开始​​派生:

cm = table(class.lasso,class.obs)
TP = cm[2,2]
FP = cm[2,1]
TN = cm[1,1]
FN = cm[1,2]

(TP * TN - FP*FN)/sqrt((TP+Fp)*(TP+FN)*(TN+Fp)*(TN+FN))
[1] 0.2581989

大佬总结

以上是大佬教程为你收集整理的Lasso 模型中的 Matthews 相关系数,使用 R 进行逻辑回归全部内容,希望文章能够帮你解决Lasso 模型中的 Matthews 相关系数,使用 R 进行逻辑回归所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。