数据结构设计 用一个结构体(或类)存储单个节点的全部信息:
feature_index
分裂特征下标threshold
分裂阈值left
左子节点行号right
右子节点行号label
分类结果(仅在叶子节点有效)在无线通信系统中为了资源调配更加合理和及时,需要对未来一段时间网络的负载做出预判以确定资源调配的优先级。决策树是一种常用的模型,可以根据采集到的状态数据,结合时间段、天气等因素来推测合理的资源调配优先级。现在将一个训练好的分类决策树模型Tree 安装在系统中,请实现决策树的推算算法,根据输入特征返回资源调配优先级。
输入包含多行数据:
包含 3个int类数据,分别表示:
数据类型分别为:int,float,int,int,int;下标和行号均从0开始。
返回分类结果。 注:一行一个分类结果,数据类型为 int。
输入
2 5 2
0 2.5 1 2 -1
-1 -1 -1 -1 1
1 5.0 3 4 -1
-1 -1 -1 -1 2
-1 -1 -1 -1 3
1.2 3.4
5.6 6.0
输出
1
3
说明
输出:两条样本的推理结果分别为 分类 1、分类 3。
输入
3 9 2
0 6.1 1 2 -1
2 7.0 3 4 -1
1 6.5 5 6 -1
-1 -1 -1 -1 1
1 10.3 7 8 -1
-1 -1 -1 -1 5
-1 -1 -1 -1 6
-1 -1 -1 -1 3
-1 -1 -1 -1 4
3.2 9.2 6.2
6.3 3.2 12.0
输出
1
5
说明
第 1 行:特征数量为3,模型节点数为 9,待推理样本为 2条。
第2 到10 行:决策树模型,共9 个节点。首行(第 2 行输入数据)为根节点。
第11 到12行:2 个待推理样本,每个样本包含 3 个特征。
输出:两条样本的推理结果分别为 分类 1、分类 5。