使用 sklearn 模块提取 3 个最佳匹配

Extracting 3 best matches using sklearn module

我正在研究 sample code,它使用 face_recognition python 库:

一切都很好,除了我想获取 3 个最佳候选而不是

结果中的最佳候选
clf.predict([test_image_enc])

我希望输出 [4411, 4455, 5566] 而不是 4411

使用 decision_function 方法获取每个 class 的似然度量。 这将计算与分离超平面的距离(该值越高,数据点越有可能属于相应的 class)。然后你可以随意选择top_n个class个。

top_n = 3
sort_inds =  clf.decision_function([test_image_enc]).argsort()
clf.classes_[sort_inds[0][-top_n:][::-1]]