classify_class_knnT_classify_class_knnClassifyClassKnnClassifyClassKnnclassify_class_knn分类类K-最近邻(算子)
名称
classify_class_knnT_classify_class_knnClassifyClassKnnClassifyClassKnnclassify_class_knn — 为给定特征向量搜索最近邻。
签名
def classify_class_knn(knnhandle: HHandle, features: Sequence[float]) -> Tuple[Sequence[int], Sequence[float]]
描述
classify_class_knnclassify_class_knnClassifyClassKnnClassifyClassKnnClassifyClassKnnclassify_class_knn 用于寻找特征向量 FeaturesFeaturesFeaturesFeaturesfeaturesfeatures 中给定特征的 'k'"k""k""k""k""k" 个最近邻。确定最近邻的距离度量是通过计算给定向量与训练样本向量之间的 L2-范数来实现的。
'k'"k""k""k""k""k" 的值可通过 set_params_class_knnset_params_class_knnSetParamsClassKnnSetParamsClassKnnSetParamsClassKnnset_params_class_knn 进行设置。结果可为特征向量的确定类别,或最近邻的索引。结果行为的选择可通过 set_params_class_knnset_params_class_knnSetParamsClassKnnSetParamsClassKnnSetParamsClassKnnset_params_class_knn 中的通用参数
'method'"method""method""method""method""method" 和 'max_num_classes'"max_num_classes""max_num_classes""max_num_classes""max_num_classes""max_num_classes" 实现:
- 'classes_distance'"classes_distance""classes_distance""classes_distance""classes_distance""classes_distance":
返回每个类别中距离最近的样本,最多支持 'max_num_classes'"max_num_classes""max_num_classes""max_num_classes""max_num_classes""max_num_classes" 个不同类别,前提是这些类别在最近的 'k'"k""k""k""k""k" 个邻居中都有代表。结果数组 ResultResultResultResultresultresult 中的类别按其在 RatingRatingRatingRatingratingrating 中最小距离排序。在 k-NN 树中,没有高效方法能精确确定 'max_num_classes'"max_num_classes""max_num_classes""max_num_classes""max_num_classes""max_num_classes" 个类别的最近邻居。
- 'classes_frequency'"classes_frequency""classes_frequency""classes_frequency""classes_frequency""classes_frequency":
统计最近的 'k'"k""k""k""k""k" 个邻居中某些类别的出现次数,并将出现类别按其相对频率排序后返回至 ResultResultResultResultresultresult,该排序结果存储于 RatingRatingRatingRatingratingrating 中。同样,最多返回 'max_num_classes'"max_num_classes""max_num_classes""max_num_classes""max_num_classes""max_num_classes" 个值。
- 'classes_weighted_frequencies'"classes_weighted_frequencies""classes_weighted_frequencies""classes_weighted_frequencies""classes_weighted_frequencies""classes_weighted_frequencies":
统计最近的 'k'"k""k""k""k""k" 个邻居中某些类别的出现次数,并将出现类别按其相对频率排序后返回至
in ResultResultResultResultresultresult,该频率以平均距离为权重进行加权,平均距离结果存储于 RatingRatingRatingRatingratingrating 中。同样,最多返回 'max_num_classes'"max_num_classes""max_num_classes""max_num_classes""max_num_classes""max_num_classes" 个值。
- 'neighbors_distance'"neighbors_distance""neighbors_distance""neighbors_distance""neighbors_distance""neighbors_distance":
返回 ResultResultResultResultresultresult 中最近的
'k'"k""k""k""k""k" 个邻居的索引,以及 RatingRatingRatingRatingratingrating 中的距离。
默认行为是 'classes_distance'"classes_distance""classes_distance""classes_distance""classes_distance""classes_distance",返回类和距离。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 在内部数据级别上自动并行化。
参数
KNNHandleKNNHandleKNNHandleKNNHandleKNNHandleknnhandle (输入控制) class_knn → HClassKnn, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
k-NN 分类器的句柄。
FeaturesFeaturesFeaturesFeaturesfeaturesfeatures (输入控制) number-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
应归类的特征。
ResultResultResultResultresultresult (输出控制) number-array → HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)
分类结果,包括类别 IDs 或样本索引。
RatingRatingRatingRatingratingrating (输出控制) number-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
结果的评分。该值包含距离、频率或加权频率。
结果
如果参数有效,算子 classify_class_knnclassify_class_knnClassifyClassKnnClassifyClassKnnClassifyClassKnnclassify_class_knn 返回值 2 (H_MSG_TRUE)。如有必要,则抛出异常。
可能的前趋
train_class_knntrain_class_knnTrainClassKnnTrainClassKnnTrainClassKnntrain_class_knn,
read_class_knnread_class_knnReadClassKnnReadClassKnnReadClassKnnread_class_knn,
set_params_class_knnset_params_class_knnSetParamsClassKnnSetParamsClassKnnSetParamsClassKnnset_params_class_knn
可能的后继
clear_class_knnclear_class_knnClearClassKnnClearClassKnnClearClassKnnclear_class_knn
另见
create_class_knncreate_class_knnCreateClassKnnCreateClassKnnCreateClassKnncreate_class_knn,
read_class_knnread_class_knnReadClassKnnReadClassKnnReadClassKnnread_class_knn
参考文献
Marius Muja, David G. Lowe: “Fast Approximate Nearest Neighbors with
Automatic Algorithm Configuration”;
International Conference on Computer Vision Theory
and Applications (VISAPP 09); 2009.
模块
基础