weka3初体验以J48(C4.5)构造决策树以及setoptions各参赛含义
(2014-03-31 10:20:45)
标签:
决策树wekaj48c4.5it |
分类: 机器学习 |
初次使用weka3笔记
1.weka的安装使用
从官网下载完对应版本的weka之后,在eclipse中导入安装根目录下的weka.jar即可使用。
2.准备数据集
UCI中的数据比较怪异,使用c4.5格式导入也不正常。在.name中存放每一列的数据描述,在.data中存放数据,根据示例arff文件格式的我把它手动转换成了arff(等下写个程序自动转),注意arff格式没有指定类别,所以要手动设置。
UCI中的test在末尾类别上与data不同,多一个“.”
3.weka的基本使用步骤
Details:
-输入训练和测试用的instance
ArffLoader atf = newArffLoader(); //Reads a source that is in arff (attribute relation file format) format.
File inputFile = newFile("adult.arff");//读入训练文件
atf.setFile(inputFile);
Instances instancesTrain = atf.getDataSet(); // 得到格式化的训练数据
-使用Filter进行预处理(可选)
如下删除指定列
-选择某个分类器/聚类 (Classifiers/Clusterer)并训练之
-Evaluating 评价
4.分类器参数设置
-U
Use unpruned tree. 使用未修剪过的决策树
-C
Set confidence threshold for pruning. 设置剪枝的阀值
对应于if(p0-pg划分后的熵的减小不明显,设置阀值threshold
(default 0.25)
-M
Set minimum number of instances per leaf. 叶子上的最小实例数,如果某一个叶子节点小于该值,则判定其为噪声或错误数据将其剪去。
(default 2)
-R
Use reduced error pruning. Starting at the leaves, each node is replaced with its most popular class. If the prediction accuracy is not affected then the change is kept. Reduced-Error Pruning(REP,错误率降低剪枝)
1:删除以此结点为根的子树
2:使其成为叶子结点
3:赋予该结点关联的训练数据的最常见分类
4:当修剪后的树对于验证集合的性能不会比原来的树差时,才真正删除该结点
默认为c4.5剪枝即基于错误剪枝
EBP(Error-Based Pruning)
比较E1,E2,E3,如下:
-N
Set number of folds for reduced error
pruning. Determines the amount of data used for reduced-error pruning. One fold is used for pruning, the rest for growing the tree.
(default 3)
-B
Use binary splits only. 所有节点都只做二元分割,有多个值的离散属性都只用==X和!=X来分割,会增大树
-S
Don't perform subtree raising.
·
·
-L
Do not clean up after the tree has been built. Whether to save the training data for visualization.没发现这个参数有什么用(是否为了展示保存训练数据)
-A
Laplace smoothing for predicted probabilities. 是否要使用拉普拉斯平滑
-Q
Seed for random data shuffling (default 1). The seed used for randomizing the data when reduced-error pruning is used.
实例的源代码如下:http://pan.baidu.com/s/1c1ALRlY