200分跪求数据挖掘ID3算法在VB数据库中实现 ID3算法是个递归求熵算法,我总是无法在VB数据表中实现 如:输入天气、温度、湿度、风和类别属性“适合出行(是/否)”这样一个数据表。如何生成决策树。求各位大虾救命呀!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ding 什么是 ID3算法? 我把算法写出来,请各位老大帮我实现(用VB窗体实现,可视化演示,VB显示一个表,就能生成一个决策树))是一个递归算法Function ID3(R:一个非类别的属性集合,C:类别属性,S:一个训练集)Begin If S为空, 返回一个值为FAILURE的单个节点;If S是由其值均为相同类别属性值的记录组成,返回一个带有该值的单个节点;If R为空,则返回一个单节点,其值为在S记录中找出的频率最高的类别属性值;将R中属性之间具有最大gain(D,S)值的属性赋值给D;将属性D的值赋值给{dj |j =1,2,3 …m};将分别由对应于D的值为dj的记录组成的S的子集赋给{sj|j=1,2,3 …,m};返回一颗树,其根标记为D,树枝标记为d1, d2,…,dm ;在分别递归构造以下树:ID3(R-{D},C,S 1) , ID3(R-{D},C,S2) …, ID3(R-{D},C,Sm) ;End ID3;如图:属性 天气 气温 湿度 风 适合打高尔夫1 多云 热 高 无风 不适合2 晴 热 高 无风 适合3 多云 热 高 大风 不适合4 晴 热 高 中风 适合5 雨 适中 高 无风 不适合6 多云 热 高 中风 不适合7 雨 热 正常 无风 适合8 雨 适中 高 中风 不适合9 雨 冷 正常 中风 不适合10 晴 冷 正常 大风 适合11 雨 热 正常 大风 不适合12 晴 冷 正常 中风 适合13 多云 适中 高 中风 不适合14 多云 冷 正常 无风 适合15 多云 适中 高 无风 不适合16 雨 适中 正常 无风 不适合17 多云 冷 正常 中风 适合18 雨 适中 正常 中风 不适合19 多云 适中 正常 中风 适合20 多云 适中 正常 大风 适合21 晴 适中 高 大风 适合22 晴 适中 高 中风 适合23 晴 热 正常 无风 适合24 雨 适中 高 大风 不适合GAIN天气熵=7/24(-7/7LOG2(7/7)-0)+9/24(4/9LOG2(4/9)+5/9LOG2(5/9))+8/24(1/8LOG2(1/8)+7/8LOG2(7/8)=0.5529同理:GAIN 气温熵=0.9173 湿度熵=0.9184 风熵=1 所以选最小的天气建树最后递归生成树: 天气晴 多云 雨适合) 湿度 气温 高 正常 ( 适合) (不适合) 热 冷 适中 (不适合)(不适合) 风 大风 无风 (适合) ( 不适合) 确实够复杂的,呵呵,那位有工夫帮他看看,不过我觉得既然是个分类问题为什么不用SVM啊,只是个建议,你用现在的24种情况进行“学习”,然后分类啊 Timer控件疑问 vb 帮我看看,多文件传送的程序为什么不稳定 内存泄漏问题,如何检测内存泄漏 请教有关MSFLEXGrid的显示的问题 mathworks_strip 怎样可以使程序界面随显示器分辨率大小变化? 关于远程连接数据库的问题,请高手给予帮忙 为什么打不开数据库呢 怎样使一个程序在拨号连接的时候自动打开呢? vb gps连接问题求助! 急!急!关于解压缩的问题。 100分跪求,VB中将远端数据库中一个表的部分列复制到本地 菜鸟求教:关于listview的多行tooltips
是一个递归算法
Function ID3(R:一个非类别的属性集合,C:类别属性,S:一个训练集)
Begin
If S为空, 返回一个值为FAILURE的单个节点;
If S是由其值均为相同类别属性值的记录组成,
返回一个带有该值的单个节点;
If R为空,则返回一个单节点,其值为在S记录中找出的频率最高的类别属性值;
将R中属性之间具有最大gain(D,S)值的属性赋值给D;
将属性D的值赋值给{dj |j =1,2,3 …m};
将分别由对应于D的值为dj的记录组成的S的子集赋给{sj|j=1,2,3 …,m};
返回一颗树,其根标记为D,树枝标记为d1, d2,…,dm ;
在分别递归构造以下树:ID3(R-{D},C,S 1) , ID3(R-{D},C,S2) …, ID3(R-{D},C,Sm) ;
End ID3;
如图:
属性 天气 气温 湿度 风 适合打高尔夫
1 多云 热 高 无风 不适合
2 晴 热 高 无风 适合
3 多云 热 高 大风 不适合
4 晴 热 高 中风 适合
5 雨 适中 高 无风 不适合
6 多云 热 高 中风 不适合
7 雨 热 正常 无风 适合
8 雨 适中 高 中风 不适合
9 雨 冷 正常 中风 不适合
10 晴 冷 正常 大风 适合
11 雨 热 正常 大风 不适合
12 晴 冷 正常 中风 适合
13 多云 适中 高 中风 不适合
14 多云 冷 正常 无风 适合
15 多云 适中 高 无风 不适合
16 雨 适中 正常 无风 不适合
17 多云 冷 正常 中风 适合
18 雨 适中 正常 中风 不适合
19 多云 适中 正常 中风 适合
20 多云 适中 正常 大风 适合
21 晴 适中 高 大风 适合
22 晴 适中 高 中风 适合
23 晴 热 正常 无风 适合
24 雨 适中 高 大风 不适合
GAIN天气熵=7/24(-7/7LOG2(7/7)-0)+9/24(4/9LOG2(4/9)+5/9LOG2(5/9))+8/24(1/8LOG2(1/8)+7/8LOG2(7/8)=0.5529
同理:GAIN 气温熵=0.9173 湿度熵=0.9184 风熵=1 所以选最小的天气建树最后递归生成树:
天气晴 多云 雨适合) 湿度 气温
高 正常
( 适合) (不适合) 热 冷 适中
(不适合)(不适合)
风
大风 无风
(适合) ( 不适合)
不过我觉得既然是个分类问题为什么不用SVM啊,
只是个建议,你用现在的24种情况进行“学习”,然后分类啊