文档介绍:-
. z.
决策树算法
一、决策树算法 z.
11
sunny
mild
normal
TRUE
yes
12
overcast
mild
high
TRUE
yes
13
overcast
hot
normal
FALSE
yes
14
rainy
high
high
TRUE
no
输出:
图3所示为本工程最终的输出结果。工程的输出结果详细的给出了在构建决策树的过程中候选属性的信息增益、测试属性的选取结果、测试属性的各个属性值所对应的分支、目标属性选取结果以及目标概念buys_puter的决策树JSON格式输出,并使用工程生成的决策树进展预测分析。
根据生成的*ml文件画出决策树如下图:
:
第一步:,方法void readARFF(File file)实现了数据的读取这项工作。
第二步:开场递归地创立决策树。首先为样例集中的每一个测试属性分配一个权值,权值越小代表属性的重要性越高。创立决策树的过程中要计算样本的总体熵,计算各个属性的信息增益,将信息增益值最大的属性定为测试属性〔根结点〕,然后开场从根节点开场递归地创立子结点。实现代码参考方法public double calEntropy(ArrayList<Integer> subset, int inde*)。
第三步:输出目标概念weather的决策树*ml格式,此项需要引入包,编译整个工程并运行生成决策树。
关键代码:
// 给定原始数据的子集(subset中存储行号),当以第inde*个属性为节点时计算它的信息熵
public double calEntropy(ArrayList<Integer> subset, int inde*)
{
int sum = ();
double entropy = ;
int[][] info = new int[(inde*).size()][];
for (int i = 0; i < ; i++)
info[i] = new int[(decatt).size()];
int[] count = new int[(inde*).size()];
-
. z.
for (int i = 0; i < sum; i++)
{