1.一种样本查找方法,其特征在于,包括:
确定预先构建的决策树的根节点为当前节点,所述决策树的各个叶子节点各自对应唯一一个样本,所述决策树为利用样本库构建得到;
判断所述当前节点对应的样本集合中样本的个数是否为1;
若为1,则确定所述当前节点为叶子节点,并将所述叶子节点作为待查找节点;
获取所述待查找节点对应的样本;
比较待测样本与所述待查找节点对应的样本是否相同;
若相同,则确定所述决策树对应的样本集合中存在所述待查样本;
若不相同,则确定所述决策树对应的样本集合中不存在所述待查样本;
若不为1,则判断所述当前节点对应的样本集合中样本的个数是否大于1;
若大于1,则确定所述当前节点的分裂位;
若所述待查样本的超长位串属性值中对应所述分裂位的属性值为0,则将所述当前节点的左子节点作为当前节点,并返回执行判断所述当前节点对应的样本集合中样本的个数是否为1的步骤;
若所述待查样本的超长位串属性值中对应所述分裂位的属性值为1,则将所述当前节点的右子节点作为当前节点,并返回执行判断所述当前节点对应的样本集合中样本的个数是否为1的步骤。
2.根据权利要求1所述的方法,其特征在于,所述决策树的构建过程,包括:
建立树的根节点,将所述样本库作为所述根节点对应的样本集合;
将所述根节点作为当前待分裂节点;
为所述当前待分裂节点创建两个子节点,分别为左子节点和右子节点;
确定所述当前待分裂节点的分裂位;
检测所述当前待分裂节点对应的样本集合中各个样本的超长位串属性值中,与所述当前待分裂节点的分裂位对应的属性值的大小;
将所述当前待分裂节点对应的样本集合中,与所述当前待分裂节点的分裂位对应的属性值的大小为0的样本,添加到所述左子节点对应的样本集合中;
将所述左子节点作为所述当前待分裂节点,并返回执行为所述当前待分裂节点创建两个子节点,分别为左子节点和右子节点的步骤,直至所述左子节点对应的样本集合中的样本的个数为1;
将所述当前待分裂节点对应的样本集合中,与所述当前待分裂节点的分裂位对应的属性值的大小为1的样本,添加到所述右子节点对应的样本集合中;
将所述右子节点作为所述当前待分裂节点,并返回执行为所述当前待分裂节点创建两个子节点,分别为左子节点和右子节点的步骤,直至所述右子节点对应的样本集合中的样本的个数为1。
3.根据权利要求2所述的方法,其特征在于,所述确定所述当前待分裂节点的分裂位,包括:
将所述当前待分裂节点对应的样本集合中各个样本各自的第i个超长位串属性位作为待检测分裂位,所述i为不大于所述样本的超长位串属性位的位数;
若所述待检测分裂位的属性值为1,则将所述待检测分裂位对应的样本作为第一样本,并统计第一样本的个数;
若所述待检测分裂位的属性值为0,则将所述待检测分裂位对应的样本作为第二样本,并统计第二样本的个数;
计算所述第一样本的个数与所述第二样本的个数的差值的绝对值,作为所述待检测分裂位的分裂结果;
将所述i赋值为i+1,直至所述i不小于所述样本的超长位串属性位的位数;
将各个所述待检测分裂位的分裂结果中最小的分裂结果对应的待检测分裂位作为所述当前待分裂节点的分裂位。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若各个所述待检测分裂位的分裂结果中存在多个最小的分裂结果,则从多个最小的分裂结果各自对应的待检测分裂位中选取一个待检测分裂位,作为所述当前待分裂节点的分裂位。
5.根据权利要求2-4任意一项所述的方法,其特征在于,所述当前待分裂节点对应的样本集合中各个样本的超长位串属性值的确定过程,包括:
将所述当前待分裂节点对应的样本集合中各个样本各自的各个属性值转换为位串属性值;
从各个所述样本的各个所述位串属性值中确定出最大的位串属性值;
将所述最大的位串属性值对应的位串属性长度作为各个所述样本的定长位串属性长度;
按照所述定长位串属性长度,将各个所述样本的所述位串属性值转换为定长位串属性值;
将各个所述样本的各个所述定长位串属性值进行连接,得到各个所述样本的所述超长位串属性值。
6.一种样本查找装置,其特征在于,包括:
第一确定模块,用于确定预先构建的决策树的根节点为当前节点,所述决策树的各个叶子节点各自对应唯一一个样本,所述决策树为利用样本库构建得到;
第一判断模块,用于判断所述当前节点对应的样本集合中样本的个数是否为1,若为1,则执行第二确定模块,若不为1,则执行第二判断模块;
所述第二确定模块,用于确定所述当前节点为叶子节点,并将所述叶子节点作为待查找节点;
获取模块,用于获取所述待查找节点对应的样本;
比较模块,用于比较待测样本与所述待查找节点对应的样本是否相同,若相同,则执行第三确定模块,若不相同,则执行第四确定模块;
所述第三确定模块,用于确定所述决策树对应的样本集合中存在所述待查样本;
所述第四确定模块,用于确定所述决策树对应的样本集合中不存在所述待查样本;
所述第二判断模块,用于判断所述当前节点对应的样本集合中样本的个数是否大于1,若大于1,则执行第五确定模块;
所述第五确定模块,用于确定所述当前节点的分裂位;
第六确定模块,用于若所述待查样本的超长位串属性值中对应所述分裂位的属性值为0,则将所述当前节点的左子节点作为当前节点,并返回执行所述第一判断模块;
第七确定模块,用于若所述待查样本的超长位串属性值中对应所述分裂位的属性值为1,则将所述当前节点的右子节点作为当前节点,并返回执行所述第一判断模块。
7.根据权利要求6所述的装置,其特征在于,还包括:决策树构建模块,用于执行以下步骤:
建立树的根节点,将所述样本库作为所述根节点对应的样本集合;
将所述根节点作为当前待分裂节点;
为所述当前待分裂节点创建两个子节点,分别为左子节点和右子节点;
确定所述当前待分裂节点的分裂位;
检测所述当前待分裂节点对应的样本集合中各个样本的超长位串属性值中,与所述当前待分裂节点的分裂位对应的属性值的大小;
将所述当前待分裂节点对应的样本集合中,与所述当前待分裂节点的分裂位对应的属性值的大小为0的样本,添加到所述左子节点对应的样本集合中;
将所述左子节点作为所述当前待分裂节点,并返回执行为所述当前待分裂节点创建两个子节点,分别为左子节点和右子节点的步骤,直至所述左子节点对应的样本集合中的样本的个数为1;
将所述当前待分裂节点对应的样本集合中,与所述当前待分裂节点的分裂位对应的属性值的大小为1的样本,添加到所述右子节点对应的样本集合中;
将所述右子节点作为所述当前待分裂节点,并返回执行为所述当前待分裂节点创建两个子节点,分别为左子节点和右子节点的步骤,直至所述右子节点对应的样本集合中的样本的个数为1。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第八确定模块,用于执行以下步骤:
将所述当前待分裂节点对应的样本集合中各个样本各自的第i个超长位串属性位作为待检测分裂位,所述i为不大于所述样本的超长位串属性位的位数;
若所述待检测分裂位的属性值为1,则将所述待检测分裂位对应的样本作为第一样本,并统计第一样本的个数;
若所述待检测分裂位的属性值为0,则将所述待检测分裂位对应的样本作为第二样本,并统计第二样本的个数;
计算所述第一样本的个数与所述第二样本的个数的差值的绝对值,作为所述待检测分裂位的分裂结果;
将所述i赋值为i+1,直至所述i不小于所述样本的超长位串属性位的位数;
将各个所述待检测分裂位的分裂结果中最小的分裂结果对应的待检测分裂位作为所述当前待分裂节点的分裂位。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第九确定模块,用于若各个所述待检测分裂位的分裂结果中存在多个最小的分裂结果,则从多个最小的分裂结果各自对应的待检测分裂位中选取一个待检测分裂位,作为所述当前待分裂节点的分裂位。
10.根据权利要求7-9任意一项所述的装置,其特征在于,所述装置还包括:第十确定模块,用于执行以下步骤:
将所述当前待分裂节点对应的样本集合中各个样本各自的各个属性值转换为位串属性值;
从各个所述样本的各个所述位串属性值中确定出最大的位串属性值;
将所述最大的位串属性值对应的位串属性长度作为各个所述样本的定长位串属性长度;
按照所述定长位串属性长度,将各个所述样本的所述位串属性值转换为定长位串属性值;
将各个所述样本的各个所述定长位串属性值进行连接,得到各个所述样本的所述超长位串属性值。