機器學習 - 相關概念與實現流程

 

一個重要的閉環:html

機器學習-數據挖掘的流程(CRISP-DM:圍繞數據進行以下6個活動進行閉環式地探索活動算法

  1. 商業理解
  2. 數據理解
  3. 數據準備
  4. 創建模型
  5. 模型評估
  6. 方案實施

 

一個重要的概念:express

特徵工程:最大限度地從原始數據中提取特徵以供算法和模型使用,包括以下幾個主要部分:app

  • 數據預處理:標準化、縮放、缺失、變換、編碼等
  • 特徵產生:結合業務數據、派生新的特徵
  • 特徵選擇:經過各類統計量、模型評分等,篩選合適的特徵
  • 降維:PCALDA等減小特徵個數

 

兩個重要的算法: dom

決策樹:機器學習

  • 構建決策樹

 

 

 

  • 如何選擇當前最佳特徵」:

其中包含的主要概念:學習

信息熵:信息論理的概念,香農提出;描述混亂程度的度量;取值範圍:0~1(值越大,越混亂)。計算公式以下:ui

   

信息增益:信息是肯定性的增長;從一個狀態到另外一個狀態信息的變化;信息增益越大,對肯定性貢獻越大。編碼

 

 

  • 決策樹算法的主要分類
  1. ID3系列Iterative Dichotomiser 3, 迭代樹三代):核心是信息熵,根據信息增益決策樹的節點;存在一些問題:信息度量不合理-傾向於選擇取值多的字段;輸入類型單一 - 離散型;不作剪枝,容易過擬合。
  2. C4.5:和ID3相比的改進:用信息增益率代替信息增益;能對連續屬性進行離散化,對不完整數據進行處理;進行剪枝。
  3. C50C4.5相比的改進:使用了boosting; 前修剪、後修剪
  4. CARTClassification and Regression Tree: 核心是基尼係數Gini); 分類是二叉樹;支持連續值和離散值;後剪枝進行修剪;支持迴歸,能夠預測連續值

 

  • 決策樹的具體施行
  • 集成學習:針對同一數據集,訓練多種學習器,來解決同一問題。
    spa

  • Bagging: 有放回抽樣構建多個子集;訓練多個分類器;最終結果由各分類器結果投票得出;(實現很是簡單)。

  • 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  

相關文章
相關標籤/搜索