[置顶] 决策树之数据划分
2013-07-01 21:29
288 查看
这篇文章利用了信息熵计算的东西,先写一个数据划分的东西,先写一个简单的逻辑划分:
这是最简单的一个逻辑划分,首先建立一个新的数据集,将划分后的数据添入该数据集,
下面介绍选择最最好的数据集划分方式:
1.建立该列的变化标签
2.计算每种划分的信息熵
对上面步骤进行循环。
下面贴出该步骤的代码:
下面给个运行结果截图:
def splitDataSet(dataSet, axis, value): retDataSet = [] for featVec in dataSet: if featVec[axis] == value: reducedFeatVec = featVec[:axis] reducedFeatVec.extend(featVec[axis+1:]) retDataSet.append(reducedFeatVec)
这是最简单的一个逻辑划分,首先建立一个新的数据集,将划分后的数据添入该数据集,
下面介绍选择最最好的数据集划分方式:
1.建立该列的变化标签
2.计算每种划分的信息熵
对上面步骤进行循环。
下面贴出该步骤的代码:
def chooseBestFeatureToSplit(dataSet): numberFeatures = len(dataSet[0])-1 baseEntropy = calcShannonEnt(dataSet) bestInfoGain = 0.0; bestFeature = -1; for i in range(numberFeatures): featList = [example[i] for example in dataSet] print(featList) uniqueVals = set(featList) print(uniqueVals) newEntropy =0.0 for value in uniqueVals: subDataSet = splitDataSet(dataSet, i, value) prob = len(subDataSet)/float(len(dataSet)) newEntropy += prob * calcShannonEnt(subDataSet) infoGain = baseEntropy - newEntropy if(infoGain > bestInfoGain): bestInfoGain = infoGain bestFeature = i return bestFeature
下面给个运行结果截图:
相关文章推荐
- 【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集
- 【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集
- [置顶] 从Elasticsearch集群及数据层架构,看分布式系统设计
- 使用Orange进行数据挖掘之分类(3)------决策树
- [置顶] 信息学奥赛一本通(C++版) 第三部分 数据结构 第四章 图论算法
- 数据挖掘-决策树ID3分类算法的C++实现
- 数据挖掘—决策树ID3分类算法的C++实现
- [置顶] 动态grid java 后台封装json数据返回到前台解析并展示
- java 列表数据上下移动或置顶
- [置顶] 【python 数据可视化】pyecharts的使用
- 数据科学之机器学习8: 决策树之ID3
- [置顶] 数据的还原操作mixed和row的操作
- [置顶] hive 动态加载数据到指定分区,以及其他hive使用的技巧
- [置顶] 制作VOC2007 数据 (matlab版) + 抠图工具
- 场次降雨数据划分
- [置顶] 采用opencv读取xtion pro live的数据
- [置顶] 数据挖掘常用算法理解与R语言实现(系列待完成)
- 【大数据部落】spss modeler用决策树神经网络预测ST的股票
- Extjs6 grid动态数据插入数据并置顶
- [置顶] DataGridView控件---绑定数据方法