我正在使用C4.5算法(可以找到here)
我的名字在这里:
Play, Don't Play.
Sky: Sunny, Cloudy, Rainy.
AirTemp: Warm, Cold.
Humidity: Normal, High.
Wind: Strong, Weak.
Water: Warm, Cool.
Forecast: Same, Change.
我的数据在这里
Sunny, Warm, Normal, Strong, Warm, Same, Play
Sunny, Warm, High, Strong, Warm, Same, Play
Sunny, Warm, High, Strong, Cool, Change, Play
Rainy, Cold, High, Strong, Warm, Change, Don't Play
我从使用命令
运行的算法得到的输出c4.5.exe -f v2 -v 1 > v2.r3
是
C4.5 [release 8] decision tree generator Tue Jan 18 16:41:25 2011
----------------------------------------
Options:
File stem <v2>
Verbosity level 1
Read 4 cases (6 attributes) from v2.data
4 items, total weight 4.0
best attribute Forecast inf 1.000 gain 0.311 val 0.311
Collapse tree for 4 items to leaf Play
Decision Tree:
Play (4.0/1.0)
Play (4.00:1.00/2.19)
Tree saved
Evaluation on training data (4 items):
Before Pruning After Pruning
---------------- ---------------------------
Size Errors Size Errors Estimate
1 1(25.0%) 1 1(25.0%) (54.7%) <<
我的问题是树是基于将功能预测更改为单个节点的。我自己跟踪算法的伪代码,我总是得到一个使用Sky功能决定是否播放的树。我做错了什么?
我认为我的问题是因为我无法设置修剪置信度。我已经尝试过但它不会接受我的输入,例如
c4.5.exe -f v2 -v 1 -c 0.5 > v2.r3
或
c4.5.exe -f v2 -v 1 -c 50% > v2.r3
不起作用。
答案 0 :(得分:0)
您可能只想尝试-c 50而不是-c 50%。我不确定为什么它不会选择Airtemp,因为它应该具有最高的信息增益。
我也猜测你正在使用Tom Mitchell的机器学习书。他的书应该有一些例子,尝试一下,看看他们如何比较。
编辑:你是否在你所链接的网站上运行了这些例子?如果有的话,他们是否匹配了?