机器学习在微生物组宿主表型预测中的应用

机器学习方法往往需要结合统计学、概率论、线性代数和算法复杂性理论等数学知识,对于生物医学研究者是一个巨大的挑战。本文综述了机器学习方法在基于微生物组数据预测宿主表型方面的应用,简要介绍了微生物组研究中常用的机器学习方法、数据处理步骤以及性能评价指标,并提供了一个基于唾液微生物组数据预测口腔异味的研究案例。

虽然在大数据时代获得数据往往比较容易,但由于获取带标签数据的成本与难度较大,因此大规模数据中往往仅有部分带有标签,而大多数样本是无标签数据,例如大型人群队列检测样本中只有小部分是经诊断的癌症患者样本。此时就需要通过一部分有标签数据对其余数据进行预测。半监督(semi-supervised)学习就是可应用在有标签数据与无标签数据混合的训练数据中的机器学习算法。常见的半监督学习有简单自训练(self-training)、标签传播算法和半监督深度学习等。

与监督学习相反,当标签信息不可用或在建模过程中不使用的情况下称为无监督学习,无监督学习模型可以推断出数据的一些内在结构,主要用于聚类(clustering)与降维(dimensionreduction)两个方面。

下面介绍基于微生物组数据的机器学习流程中的一些关键要点。

数据预处理主要包括:缺失值处理,即对数据集的错误及缺失数据进行修改或填补;特征提取,即在原始数据中提取更有用的特征或生成新特征;数据降维,用于降低数据的维度,进而降低数据集的复杂度;特征变换,主要包括对数据特征的归一化或标准化等。

其中,TP:truepositive;FN:falsenegative;TN:truenegative;FP:falsenegative。F1值(F1-score)是精确率和召回率的加权调和平均值(最大值是1,最小值是0)。它有两种计算方式分别为F1-micro与F1-macro,在二分类问题中两者计算方式完全一致,但在多分类问题中有差异。

运行Windows、Linux或macOS操作系统的64位计算机;计算机的处理器与内存需求依赖分析数据的大小与分析模型。

通过以下命令安装本案例需要的R包:install.packages(c(“randomForest”,“pROC”,“ggplot2”))。

在R中设置本机工作目录在“D:\microbioML”,并载入所需要的数据集:S1_table.csv(样本中OTU丰度数据集)。

setwd(“D:\microbioML”)#按数据实际路径修改

data<-read.csv(“S1_table.csv”,header=TRUE,row.names=1,sep=“,”)

data$Malodour<-as.factor(data$Malodour)

head(data)#显示部分数据

进行交叉检验首先要对数据分组,数据分组要符合随机且平均的原则。K-折交叉验证(K-foldcross-validation)是交叉验证方法里一种,数据分折(k-fold)函数如下:

CVgroup<-function(k,datasize,seed){

cvlist<-data.frame()

set.seed(seed)

n<-rep(1:k,ceiling(datasize/k))[1:datasize]#将数据分成k份,并生成的完整数据集n

temp<-sample(n,datasize)#随机化

x<-1:k

dataseq<-1:datasize

cvlist<-lapply(x,function(x)dataseq[temp==x])#随机生成k个随机有序数据列

return(cvlist)

}#定义分折函数

k<-10#k-fold设为10

datasize<-90#样本数为90

cvlist<-CVgroup(k=k,datasize=datasize,seed=123)#代入参数

随机森林预测模型使用R包randomForest构建,变量pred显示实际值与预测初步结果概率的数据框,方便绘制ROC曲线。

library(randomForest)#载入模型库

pred<-data.frame()#存储预测结果

for(iin1:10){

train<-data[-cvlist[[i]],]#训练集

test<-data[cvlist[[i]],]#测试集

#建立randomforest模型,ntree指定树数

rf.model<-randomForest(Malodour~.,data=train,ntree=100)

summary(rf.model)

rf.pred<-predict(rf.model,test,type="prob")[,2]#预测

kcross<-rep(i,length(rf.pred))#i为第几次循环交叉,共K次

temp<-cbind(Malodour=test$Malodour,rfPredict=as.data.frame(rf.pred),kcross)

pred<-rbind(pred,temp)

}#循环计算K次模型

head(pred)

通过pROC包里的roc函数和ggplot2里的ggroc函数绘制ROC曲线。

library(pROC)

library(ggplot2)

rf.roc<-roc(pred$Malodour,as.numeric(pred$rf.pred))

rf.roc$auc

ggroc(rf.roc,alpha=0.5,colour=“red”,linetype=1,size=2,legacy.axes=TRUE)+

annotate(“text”,x=.75,y=.15,label=paste(“AUCofRandomForest=”,round(rf.roc$auc,3)))

THE END
1.小白必看!大学数学建模常用工具在数学建模中,选择合适的软件工具对于提高工作效率和质量至关重要。今天,小编给小伙伴们整理了在大学学习数学建模时会经常用到的一些工具,也是准备数模比赛时必备的一些软件,学会这几个软件后,可以大大提升效率! 编程类软件 1.MATLAB: 数学建模领域必需的软件之一,它将数值https://mp.weixin.qq.com/s?__biz=MzA3NzIxNDQ3MQ==&mid=2650327550&idx=3&sn=d192ca44327ae5c7ea311bd51457cdb9&chksm=8610ac41302d8abcb3e0c3b188b82eae3ddc4468caac51fbe82017852a9b9ee21d720928f094&scene=27
2.AI研报:关于人工智能算法在软件开发中的应用调研报告自动化代码生成是人工智能在软件开发中的一个重要应用领域。传统上,开发人员需要手动编写大量的代码,而人工智能可以通过学习现有代码库,自动生成新的代码片段。这不仅可以大大提高开发效率,还能降低代码错误率。例如,许多集成开发环境(IDE)已经集成了代码补全功能,它们基于机器学习算法分析上下文,为开发人员提供代码建议,极大https://www.hxsd.com/information/10168/
3.在没有机器学习算法之前,围棋游戏软件的人机对弈是什么原理?在没有现代机器学习算法之前,围棋游戏软件中的人机对弈主要依赖于经典的算法和技术手段。这些算法并不像今天的深度学习模型那样可以从大量数据中自我学习,而是根据棋局规则和预定的计算逻辑来决定下一步动作。围棋作为一种拥有极高复杂度的棋盘游戏,棋盘上的状态空间极其庞大。因此,早期的围棋游戏软件需要依赖特定的算法来https://www.jianshu.com/p/be08bf475592
4.MVP机器视觉算法平台软件以AI赋能智能制造试用软件平台需要填写下方表单信息,信息提交后我们会在3个工作日之内与您联系。试用有效期:3个月;试用权限:算法平台&深度学习训练平台 姓名 公司 电话 E-mail 省份 请选择省份 城市 请选择城市 区/县 请选择区/县 备注 我已阅读并同意隐私政策 提交https://www.irayple.com/cn/productPage/Arith
5.还在为入门鸿蒙效率慢而困惑?不妨试试开发学习神器不妨试试开发学习神器 - AI辅助编程 鸿蒙应用开发从入门到入行 鸿蒙开发神器 - AI辅助编程 CodeGenie介绍 目前有好几款AI插件可以装到DevEco上,出名的例如Copilot、通义灵码等。但是经过猫林老师截至到目前的测试。都没有特别适合鸿蒙开发,特别是Copilot还按月收费,对于大量希望转入鸿蒙开发的新入行者真是太不https://zhuanlan.zhihu.com/p/11517482681
6.算法工程师和软件开发工程师有什么区别算法工程师来自阿里 更新于 2024-11-20 查看更多岗位职责 岗位要求1.全日制本科,专科,电子信息工程,电气,自动化,计算机等相关专业优先;2.应届毕业生和具有相关工作经验者优先,有电子类产品开发,软件编写等经验;3、 具有一定相关项目经验和较好的学习能力;4.熟练掌握专业技术如Unix/Linux平台技术、Java EE核心技术等https://www.jobui.com/gangwei/pk/suanfagongchengshi-ruanjiankaifagongchengshi/
7.下载LeetCode算法学习安卓最新版v2.3.3.1下载LeetCode算法学习是上海市优浅花网络科技有限责任公司明确提出的一款自觉学习和技能提升服务平台。有着丰富多彩有用的干货,多种多样学习的方法为大伙儿共享。协助大伙儿轻轻松松拿下知名企业招聘面试。软件介绍 LeetCode算法学习介绍我们至爱的高品质技术性服务平台,要想学习培训和提高专业技能从心出发,充裕技术性干货等着https://www.duote.com/android/358231.html
8.机器学习算法在时间序列分析中的应用此外,机器学习算法在医学中的应用也日益普及,可以用于疾病预测和药物研发等领域。 机器学习算法可以有效地缩短时间序列数据处理的时间,而且可以提高预测的准确性。随着机器学习算法的发展,越来越多的人开始应用机器学习算法来做时间序列分析,目前已经出现了一些成熟的机器学习算法软件和平台。 此外,机器学习算法还可以结合https://wenku.baidu.com/view/0160496bdd80d4d8d15abe23482fb4daa58d1dcb.html
9.训练集越多机器学习算法效果越好训练集数量训练集越多机器学习算法效果越好 训练集数量 作者为Google 软件工程师,美国西北大学电子信息工程博士,擅长大规模分布式系统,编译器和数据库。 从谷歌的机器学习代码中得知,目前需要一万亿个训练样本 训练数据的特性和数量是决定一个模型性能好坏的最主要因素。一旦你对一个模型输入比较全面的训练数据,通常针对这些训练https://blog.51cto.com/u_16099273/9301910
10.朱大铭每年招收硕士生1-2名,从事基因组组装与分析算法与软件研究。 研究方向 擅长计算生物学/生物信息学问题的算法设计,生物信息学软件设计,算法、近似算法设计与计算复杂性证明。长期从事算法与计算复杂性研究,主要针对生物信息学,计算机网络及经典计算机科学问题开展算法研究。1990-1996年曾从事神经网络学习算法研究。 https://www.cs.sdu.edu.cn/info/1070/2797.htm
11.基于遗传算法解决物流运输中的VRP问题(源码+项目说明+文档)(C++项目不仅适合初学者学习和入门,也适合有一定基础的技术人员进行深入研究和实践。它既可以作为毕业设计、课程设计、大型作业或工程实训的一部分,也可以作为小型项目的启动点。总之,这是一个极具学习和实战价值的资源,能够帮助学习者提升算法设计和软件开发能力。 展开 https://download.csdn.net/download/2401_87429224/90102638
12.算法学习app免费下载算法详解app是一款手机学习算法的app,为用户详解各种算法原理,图文并茂,让你可以更好的理解和学习算法模型,对于对编程感兴趣的朋友来说非常不错。需要的用户赶快来下载吧。 功能介绍 算法详解app这款应用解释了一些算法的细节并且还有更加详细的演示功能,帮助使用者更好的理解特定的算法。 https://www.fxxz.com/azsoft/288531.html
13.编程竞赛宝典C++语言和算法入门为什么要学习算法 经常有人说:“我不学算法也照样可以编程开发软件。”那么,为什么还要学习算法呢? 首先,算法(Algorithm)一词源于算术(Algorism),具体地说,算法是一个由已知推求未知的运算过程。后来,人们把它推广到一般过程,即把进行某一工作的方法和步骤称为算法。一个程序要完成一个任务,其背后大多会涉及算法的https://www.epubit.com/bookDetails?id=UB77a9ce8133887
14.趣学算法(陈小玉著)带目录完整pdf[95MB]电子书下载趣学算法下载 投诉报错 书籍大小:95.7MB 书籍语言:简体中文 书籍类型:国产软件 书籍授权:免费软件 书籍类别:编程其它 应用平台:PDF 更新时间:2018-09-06 购买链接:京东异步社区 网友评分: 360通过腾讯通过金山通过 95.7MB 详情介绍 本书内容按照算法策略分为7章。 https://www.jb51.net/books/635507.html
15.年薪50万!北航合肥创新研究院招募研究员!澎湃号·政务3、研究面向特定领域应用的人工智能算法,包括大数据分析与管理、多媒体应用技术、视觉内容理解、自然语言理解、光学信息处理、机器学习、人工智能学习平台等方向(注:开展一个或多个应用方向研究); 4、负责带领团队成员进行核心算法设计和实现,并进行系统软件的开发与维护; https://www.thepaper.cn/newsDetail_forward_4985535
16.中国首个运筹学算法平台正式发布打破国外高价商业求解器垄断其中的重头戏,包括了由杉数科技牵头的机器学习算法求解器LEMO。LEMO采用了一系列国际最前沿的大规模凸优化与非凸优化技巧,目前对多个机器学习经典模型在单机上的求解速度已位居世界领先行列。LEMO结合了传统优化软件和深度学习软件的不同优点,支持机器学习的同时,可直接服务于运筹优化、数学规划、数值计算等更为广泛、https://www.guancha.cn/scroll-news/2017_10_18_431273.shtml
17.[深度学习工具]·极简安装Dlib人脸识别库腾讯云开发者社区Dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具。它广泛应用于工业界和学术界,包括机器人,嵌入式设备,移动电话和大型高性能计算环境。Dlib的开源许可证 允许您在任何应用程序中免费使用它。Dlib有很长的时间,包含很多模块,近几年作者主要关注在机器学习、深度学https://cloud.tencent.com/developer/article/1451393
18.BoostKit大数据业界趋势鲲鹏大数据组件增强特性和典型配置聚焦大数据查询效率低、性能优化难等挑战,提供大数据组件的开源使能和调优、IO智能预取等基础加速软件包、Spark算法加速库等应用加速软件包,开源openLooKeng查询引擎,提升大数据分析效率。 了解详细:https://www.hikunpeng.com/developer/boostkit/big-data 2、BoostKit分布式存储 https://developer.huawei.com/consumer/cn/blog/topic/03898238728230088
19.中国开发者真实现状:不爱跳槽月薪集中在8K本次报告中,我们发现,AI 领域开发者中软件工程师占比最高,为 38.3%,可见软件工程师在 AI 领域也占重要地位。其次,机器学习/深度学习算法工程师、计算机视觉/图像识别/图像处理工程师都是较为热门的岗位,分别占 19.9% 和 15.5%。 不过,此次调研中,在机器学习/深度学习/神经网络成为开发者最感兴趣的方向同时,有https://www.36kr.com/p/1164571992032388.html