R语言解线性方程组和求极值

Python014

R语言解线性方程组和求极值,第1张

1、R语言矩阵函数

t(x) 转置diag(x) 对角阵x %*% y 矩阵运算solve(a,b) 运算a%*%x=b得到xsolve(a) 矩阵的逆rowsum(x)行加和colsum(x)列加和rowMeans(x) 行平均colMeans(x) 列平均

2、求解线性方程组

分析:使用函数solve(a,b),运算a%*%x=b得到x。a<-matrix(c(1,1,1,-1),2,2)b<-c(3,1)solve(a,b)运行结果>a<-matrix(c(1,1,1,-1),2,2)b<-c(3,1)solve(a,b)[1] 2 1a<-matrix(c(1,1,1,-1),2,2)

b<-c(3,1)

solve(a,b)

运行结果

>a<-matrix(c(1,1,1,-1),2,2)b<-c(3,1)solve(a,b)

[1] 2 1

注:这里矩阵a从数组读数是按照列读数

cal_metrics <- function(label, pred){

  roc.p=pROC::roc(label, pred,ci =T)

  if (roc.p$auc>0.5){

    cutoff=roc.p$thresholds[which.max(roc.p$sensitivities+roc.p$specificities)]

    sensitivity=roc.p$sensitivities[which.max(roc.p$sensitivities+roc.p$specificities)]

    specificity=roc.p$specificities[which.max(roc.p$sensitivities+roc.p$specificities)]

    ci = roc.p$ci

    df=data.frame(type='positive classification',

                  auc=round(roc.p$auc,3),cutoff=cutoff,

                  sensitivity=sensitivity,specificity=specificity,ci_lower = ci[1],ci_upper=ci[3])

    return(df)

  }

  else{

    cutoff=roc.p$thresholds[which.min(roc.p$sensitivities+roc.p$specificities)]

    sensitivity=roc.p$sensitivities[which.min(roc.p$sensitivities+roc.p$specificities)]

    specificity=roc.p$specificities[which.min(roc.p$sensitivities+roc.p$specificities)]

    ci = roc.p$ci

    df=data.frame(type='negative classification',

                  auc=1-round(roc.p$auc,3),cutoff=cutoff,

                  sensitivity=1-sensitivity,specificity=1-specificity,ci_lower = ci[1],ci_upper=ci[3])

    return(df)

  }

}