扩展数据表1|

Disease-Partitioning算法

算法1疾病分割算法
1: 输入
2:分类学(树):疾病分类
三:最大类大小(int):类中的最大数据点
第4页: 输出
5:隔板(集合列表):将疾病划分为类别
6:
7:程序D类附庸(节点)
8:返回{节点}☑{D附庸(小孩)对于 小孩 在里面 节点.children}
9:
10:程序N个魔术师(节点)
11日:返回 总和(长度(节点.图像)对于 节点 在里面 节点)
12:
13:程序P(P)隔板D类疾病(节点)
14日:D类附庸(节点)
15:如果N个魔术师() <最大类大小 然后
16:  追加 隔板
17:其他的
18:  对于 小孩 在里面 节点.children
19   P(P)隔板D类疾病(小孩)
20:
21:隔板[ ]
22:P(P)隔板D类疾病(分类.root)
23: 返回 隔板

该算法使用分类法将疾病划分为细粒度训练类。我们发现,对这些精细类的训练可以提高粗推理类的分类精度。该算法从顶部节点开始,递归下降分类法(第19行),如果节点中包含的数据量(按照节点包含其子节点的约定)不超过指定的阈值(第15行),则将节点转换为训练类。在划分期间,递归属性保持分类结构,因此,分组到同一训练类中的不同疾病之间的临床相似性。数据限制(以及训练数据在叶节点之间分布相当均匀的事实)迫使平均类大小略小于maxClassSize。这些组件一起生成训练类,这些训练类利用分类结构中包含的细粒度信息,同时在生成过于细粒度且没有足够数据可正确学习的类与生成过于粗糙的类之间取得平衡,数据太丰富,这使得算法无法正确学习数据量较少的类。当maxClassSize=1000时,该算法产生757个训练类。