决策树1---特征选择(信息增益)
来源:互联网 发布:java小程序抽签源代码 编辑:程序博客网 时间:2024/06/05 19:34
特征的选择决定哪个特征先来划分空间。一般决策树算法特征选择通过信息增益或信息增益比来确定。ID3,C4.5的树生成通过信息增益和信息增益比概念生成。
概念及理解
信息增益:
式子1中
公式理解
其中D中含有类别k类
式子1中
信息增益:
R计算过程
##信息熵Entropy <- function(x){ n <- length(x) freq <- as.data.frame(table(x)) H <- sum(-(freq[,2]/n)*log2(freq[,2]/n)) ###向量式计算 return(H)} ##条件信息熵ConditionEntropy <- function(x){ n <- ncol(x) num <-nrow(x) ce <- matrix(0, nrow=1, ncol=n-1) for(i1 in 1:ncol(ce)){ H <- 0 var_freq <- as.data.frame(table(x[,i1])) for(i2 in 1:nrow(var_freq)){ var_freq2 <- as.data.frame(table(x[which(x[,i1]==var_freq[i2,1]), n])) VarConditionEntropy <- (var_freq[i2,2]/num)*sum(-(var_freq2[, 2]/var_freq[i2,2])*log2(var_freq2[, 2]/var_freq[i2,2])) ###向量式计算 H <- H + (VarConditionEntropy) } ce[1, i1] <- H } return(ce)}##信息增益MutualInformation <-function(x,y){ MI <- x - y return(MI)}
计算验证
###生成数据集ID <- c(1:15)Age <- c(rep("青年",5), rep("中年",5), rep("老年",5))work <- c("NO", "NO", "YES", "YES", "NO", "NO", "NO", "YES", "NO", "NO", "NO", "NO", "YES", "YES", "NO")HOUSE <- c("NO", "NO", "NO", "YES", "NO", "NO", "NO", "YES", "YES", "YES", "YES", "YES", "NO", "NO", "NO")lei <- c("NO", "NO", "YES", "YES", "NO", "NO", "NO", "YES", "YES", "YES", "YES", "YES", "YES", "YES","NO")data <- data.frame(ID, Age, work, HOUSE, lei, stringsAsFactors=F)##计算经验信息熵entropy <- Entropy(data$lei)##计算经验条件信息熵condition_entropy <- ConditionEntropy(data)##计算信息增益MutualInformation(entropy, condition_entropy) [,1] [,2] [,3] [,4][1,] 0.9709506 0.0830075 0.3236502 0.4199731
1 0
- 决策树1---特征选择(信息增益)
- 信息增益、信息增益率、gini、特征选择、决策树
- 信息增益 特征选择
- 特征选择之信息增益
- 特征选择之信息增益
- 特征选择方法-信息增益
- 特征选择之信息增益
- 特征选择--文本分类: 信息增益
- 特征选择方法之信息增益
- 特征选择方法之信息增益
- 计算信息增益,选择特征词
- 特征选择方法之信息增益
- 特征选择方法之信息增益
- 特征选择方法之信息增益
- 数据挖掘笔记-特征选择-信息增益
- 特征选择方法之信息增益
- 特征选择方法之信息增益
- 特征选择之二:信息增益
- DOM对象
- java环境配置和tomcat环境配置
- ACE的线程管理机制
- Android_06_Activity的跳转
- eclipse或myeclipse模板设置
- 决策树1---特征选择(信息增益)
- 优秀学习网站一网打尽(想起来记录一下吧)
- iOS UILabel 文字自动左上角对齐
- tomcat指定jre、jdk
- hpux 11.31添加、删除磁盘
- 惠普功能测试UFT(QTP)使用心得
- 在进行软件项目开发相关的软件总结(逐步添加中....)
- select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
- JavaScript高级程序设计之DOM之节点层次之Node类型第10.1.1讲