标签:ssi sof div log ati 解决 smart prope 问题:
一个重要的闭环:
机器学习-数据挖掘的流程(CRISP-DM):围绕数据进行如下6个活动进行闭环式地探索活动
一个重要的概念:
特征工程:最大限度地从原始数据中提取特征以供算法和模型使用,包括如下几个主要部分:
两个重要的算法:
决策树:
其中包含的主要概念:
信息熵:信息论理的概念,香农提出;描述混乱程度的度量;取值范围:0~1(值越大,越混乱)。计算公式如下:
信息增益:信息是确定性的增加;从一个状态到另一个状态信息的变化;信息增益越大,对确定性贡献越大。
集成学习:针对同一数据集,训练多种学习器,来解决同一问题。
Boosting: 重复使用一类学习器来修改训练集;每次训练后根据结果调整样本的权重;每个学习器加权后的线性组合即为最终结果。
AdaBoost:
Stacking: 由两级组成,第一级为初级学习器,第二级为高级学习器;第一级学习器的输出作为第二级学习器的输入。
随机森林:
由许多决策树组成,树生成时采用了随机的方法;Smart Bagging;生成步骤:1.随机采样,生成多个样本集;2.对每个样本集构建决策树。
其优点包括:可以处理多分类;不会过拟合;容易实现并行;对数据集容错能力强。
参考 - 1. R语言运用随机森林的例子:
################################################### ### Gene (Feature) Selection 基因特征选择: 1.过滤方法;2.封装方法 ################################################### if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install(version = "3.11") BiocManager::install(c("Biobase", "genefilter")) BiocManager::install(c("ALL")) library(Biobase) library(ALL) data(ALL) ALLb <- ALL[,tgt.cases] rowIQRs <- function(em) rowQ(em,ceiling(0.75*ncol(em))) - rowQ(em,floor(0.25*ncol(em))) plot(rowMedians(es),rowIQRs(es), xlab=‘Median expression level‘, ylab=‘IQR expression level‘, main=‘Main Characteristics of Genes Expression Levels‘) library(genefilter) ALLb <- nsFilter(ALLb, var.func=IQR, var.cutoff=IQR(as.vector(es))/5, feature.exclude="^AFFX") ALLb <- ALLb$eset es <- exprs(ALLb) dim(es) #ANOVA过滤 f <- Anova(ALLb$mol.bio,p=0.01) ff <- filterfun(f) selGenes <- genefilter(exprs(ALLb),ff) sum(selGenes) ALLb <- ALLb[selGenes,] ALLb es <- exprs(ALLb) plot(rowMedians(es),rowIQRs(es), xlab=‘Median expression level‘, ylab=‘IQR expression level‘, main=‘Distribution Properties of the Selected Genes‘) # 用随机森林(适合用于处理包含大量特征的问题)进行过滤:随机森林由一组决策树构成,取决于分析的问题采用回归树还是分类树 - 每棵树都是通过自助法抽样(从原始数据集中用有放回抽样法随机抽取N个个案)进行训练 # 对于回归问题,采用每棵树的预测值得平均值作为这些组合的预测值。对于分类问题,则采用投票机制 featureNames(ALLb) <- make.names(featureNames(ALLb)) es <- exprs(ALLb) library(randomForest) dt <- data.frame(t(es),Mut=ALLb$mol.bio) rf <- randomForest(Mut ~ .,dt,importance=T) imp <- importance(rf) imp <- imp[,ncol(imp)-1] rf.genes <- names(imp)[order(imp,decreasing=T)[1:30]] sapply(rf.genes,function(g) tapply(dt[,g],dt$Mut,median)) library(lattice) ordMut <- order(dt$Mut) levelplot(as.matrix(dt[ordMut,rf.genes]), aspect=‘fill‘, xlab=‘‘, ylab=‘‘, scales=list( x=list( labels=c(‘+‘,‘-‘,‘*‘,‘|‘)[as.integer(dt$Mut[ordMut])], cex=0.7, tck=0) ), main=paste(paste(c(‘"+"‘,‘"-"‘,‘"*"‘,‘"|"‘), levels(dt$Mut) ), collapse=‘; ‘), col.regions=colorRampPalette(c(‘white‘,‘orange‘,‘blue‘)) ) #用特征聚类的组合进行过滤 library(Hmisc) vc <- varclus(t(es)) clus30 <- cutree(vc$hclust,30) table(clus30) getVarsSet <- function(cluster,nvars=30,seed=NULL,verb=F) { if (!is.null(seed)) set.seed(seed) cls <- cutree(cluster,nvars) tots <- table(cls) vars <- c() vars <- sapply(1:nvars,function(clID) { if (!length(tots[clID])) stop(‘Empty cluster! (‘,clID,‘)‘) x <- sample(1:tots[clID],1) names(cls[cls==clID])[x] }) if (verb) structure(vars,clusMemb=cls,clusTots=tots) else vars } getVarsSet(vc$hclust)
2. R语言数据科学包列表 : https://www.cnblogs.com/yxmings/p/14213573.html
标签:ssi sof div log ati 解决 smart prope 问题:
原文地址:https://www.cnblogs.com/yxmings/p/14224216.html