生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

279

主题
发表于 2022-9-7 19:30:52 | 查看: 643| 回复: 0
一、案例介绍
       这是一个典型的利用当前流行的机器学习算法来进行生物数据挖掘的案例,非常具有代表性。
       同样的算法可以应用在其他不同肿瘤研究中。这是一份来自威斯康星州采集的乳腺癌数据集。这个数据集中包含699个细针抽吸活检的样本单元,其中458个(65.5%)为良性样本单元,241个(34.5%)为恶性样本单元。
       [数据链接] (http://archive.ics.uci.edu/ml/ma ... t-cancer-wisconsin/)数据集包含11个变量指标,也就是数据集有11列,分别是:
✓ ID
✓ 肿块厚度
✓ 细胞大小的均匀性
✓ 细胞性状的均匀性
✓ 边际附着力
✓ 单个上皮细胞大小
✓ 裸核
✓ 乏味染色体
✓ 正常核
✓ 有丝分裂
✓ 类别

       利用read.csv()函数读入数据,这里面第一列编号并不需要,利用附索引[-1]去掉,这样所有数据存储在df变量中了

  1. rm(list=ls())
  2. x <- read.csv("breast.csv", row.names=1)  
  3. head(x)
  4. x <- x[-1]
  5. class(x$class)
  6. x$class <- as.factor(x$class)
  7. levels(x$class)
  8. levels(x$class) <- c('benign', 'nalignant')
  9. head(x)
  10. pheatmap(x[-10],cluster_rows = F,cluster_cols = F)

  11. nrow(x)
  12. #进行抽样,df分成df.train与dr.validate  
  13. set.seed(1234)  
  14. train <- sample(nrow(x), 0.7*nrow(x))  
  15. x.train <- x[train,]  
  16. x.validate <- x[-train,]  
  17. table(x.train$class)  
  18. table(x.validate$class)  

  19. # 逻辑回归- Logistic regression with glm()  
  20. fit <- glm(class~., data=x.train, family=binomial())  
  21. summary(fit)  
  22. prob <- predict(fit, x.validate, type="response")  
  23. result <- factor(prob > .5, levels=c(FALSE, TRUE), labels=c("benign", "malignant"))  
  24. logit.perf <- table(x.validate$class, result,dnn=c("Actual", "Predicted"))  
  25. logit.perf  
复制代码
          Predicted
Actual      benign malignant
  benign       129         6
  nalignant      1        69

       我们得到这样一个混淆矩阵,就可以去算真阳性,真阴性,假阳性,假阴性,灵敏度,特异度了。可以放去下面的网址一步计算。
  1. http://vassarstats.net/clin1.html
复制代码
      
       结果截图

二、预测新数据
  1. library(dplyr)
  2. newdata <- dplyr::sample_n(x,5)
  3. newdata <- newdata[-10]
  4. prob <-predict(fit,newdata = newdata,type = 'response')
  5. result <- factor(prob > .5, levels=c(FALSE, TRUE), labels=c("benign", "malignant"))  
  6. result
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人

GMT+8, 2024-5-6 19:10 , Processed in 0.046135 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表