在一个更大的框架下学习,就像是提升了一个维度,好比你之前在二维世界中,只有前后左右,你不断的探索,不断的画平面圈,有充分的经验去描述脸大脸小,还是无法理解高鼻梁是什么意思!
《三体》小说中,三体人制造了水滴
这个高科技武器,打败了人类的舰队,但是人类打败水滴
,是因为进入了一段四维空间,四维空间可以看到水滴
的内部,可以进入操作水滴
的内部,就把水滴破坏了。
所以,学习一个大的框架,直接决定了视野的宽广与否。如果一直沉浸于方差分析和回归分析中不可自拔,有一种仰之弥高,钻之弥坚
的绝望,不妨换一个框架去理解和学习。你会发现,方差分析和回归分析都属于监督学习中的回归
问题,而感病与否属于监督学习中的分类
问题,PCA分析和聚类分析属于非监督学习。这样,理解和学习起来就会方便很多。
记得本科学《生物统计》,方差分析部分令人百思不得其解,拿着计算器用着各种简化的公式,来回算来算去,然后去查表,觉得生物统计完全是体力活。后来工作中,系统学习了生物统计,看了很多统计类的教科书,无非就是:描述性统计、概率分布、参数估计、假设检验、T检验、方差分析、回归分析、多元分析。
这些东西,除了方差分析和回归分析以及多元分析能用一点,其它都觉得无法实际应用,毕竟现实的数据没有那么完美,想要提高也是一头雾水。
随着分析项目的增加,觉得一般线性模型+混合线性模型+广义线性模型+多元分析,这个框架很好很给力。
如果再加上纵向数据分析(重复测量、时间序列)、生存分析、Mega分析,就已经是我认知的全部了。
最开始,我以为方差分析和回归分析完全是两回事,因为方差分析是对因子处理的,而回归分析是对数值处理的。
但是在GWAS中,两者都称为协变量,一种是数字协变量,一种是因子协变量。plink软件汇总,协变量都要变为数字协变量,如果有因子协变量需要用--dummy-coding
去转化。而GCTA中有--qcovar
支持数字协变量,有--covar
支持因子协变量。
其实在分析时,软件都会将其变为数字协变量,之前的因子协变量会变为dummy变量(哑变量),哑变量就是数字协变量了。比如:
构建一个数据:
set.seed(123)
dat = data.frame(Treat = rep(c("A","B","C"),each=10), y = c(rnorm(10), rnorm(10)+5, rnorm(10)+10))
str(dat)
dat$Treat = as.factor(dat$Treat)
str(dat)
使用因子的Treat,进行回归分析:
mod1 = lm(y ~ Treat, data=dat)
summary(mod1)
将其变为哑变量:
dd = model.matrix(~ Treat, data=dat) %>% as.data.frame()
dd1 = cbind(dd,y = dat$y)
dd1
对其进行回归分析,这里不考虑截距了,因为哑变量里面已经有截距了。
mod2 = lm(y ~ .-1, data=dd1)
summary(mod2)
可以看到,在R语言进行回归分析时,会将因子变量变为哑变量的数字变量,然后进行回归分析。
所以方差分析只是回归分析的一种特例,在回归分析眼中,方差分析都是回归分析,万物皆可回归。
大的框架:
整理数据集
如果对于一个人ID1,搜集了他的很多性状,比如身高、体重、性别、血压、血糖、患病与否,还有50万个SNP的分型。这些性状都是描述ID1的性状,也称为条目或者标签,也称为属性或者特征,也称为性状或者观测值。如果用机器学习的术语,就叫做标签或者特征。
因为因子协变量,都可以变为数字哑变量,所以,除了ID列,其它因子和性状,都可以变为数字的类型,都可以变为属性。
监督学习
所谓监督的学习,就是你的数据集中,包括我们需要预测的属性(比如患病与否),包括我们使用建模的属性(比如血压、50万SNP的分型)。
它又可以两种:
分类问题
。回归问题
。非监督学习
非监督学习,也叫无监督学习,它包括很多x变量的集合,但是没有明确的目标变量(y变量),这类问题的目的是挖掘数据中的相似样本的分组(比如聚类分析),或者是确定输入样本空间中的数据分布(比如密度估计),还可以将数据从高维空间投射到二维或者三维空间。我们经常使用的PCA分析,聚类分析等等。
数据读取或者导入,需要将数据数字化,将SNP分型变为0-1-2的编码,将性别变为1-2的编码,将固定因子变为哑变量的编码,最后的数据格式都是数字列。
我们建模时,需要参考群和验证群,用于评价模型的好坏,可以对数据进行分割。
有时候,我们面对的是很多属性(变量)的数据,为了降低模型学习的难度,提升训练效率,会对变量进行特征工程操作,一般分为:特征选择和特征抽取,两者都是降维的方法。
常用的特征选择的方法有:
这里,就可以选择模型了,是用广义线性模型(线性回归、逻辑回归、岭回归等),还是用支持向量机(SVM),决策树,随机森林等。
然后是调参。
交叉验证,选择最优模型
选择最优模型之后,就可以写成pipeline了。
本文发布于:2024-02-01 18:57:33,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170678505338755.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |