我不认为您可以根据单个数据集上的不同距离度量来准确地完成您想要的 KNN模型集,但是您可以尝试根据不同的距离评估建模方法的相对性能指标。但是,您必须进行两项调整。
下面的大部分内容都来自本页的讨论。
首先,您应该使用适当的评分规则(例如Brier 评分)而不是准确度、特异性、敏感性和 F1 评分来评估性能。众所周知,这些是用于比较模型的较差度量,它们对不同类型的分类错误之间的成本权衡做出了隐含的假设。* Brier 分数实际上是预测的类成员概率与实际成员概率之间的均方误差。您将不得不查看您的 KNN 软件如何提供对类概率的访问,但这通常可以在此sklearn
函数中实现。
其次,不是简单地将模型一次拟合到您的数据中,您需要了解建模过程在重复应用到您的数据集时的效果如何。一种方法是使用多个引导样本,比如几百到一千个数据。对于作为训练集的每个 bootstrap 样本,使用每个距离指标构建 KNN 模型,然后在作为测试集的整个原始数据集上评估它们的性能。然后,每种类型的模型在几百到一千个引导程序中的 Brier 分数分布可以表明,在基于不同距离度量的模型之间,就适当的评分规则而言,存在显着差异。
然而,即使这种方法也有其局限性。请参阅cbeleities的此答案以进行进一步讨论。
*使用准确性(正确分配案例的比例)作为模型性能的衡量标准,隐含假设假阴性和假阳性具有相同的重要性。请参阅此页面以进行进一步讨论。在实际应用中,这种假设可能没有帮助。一个例子是前列腺癌的过度诊断和过度治疗;常规诊断测试中的假阳性导致许多不太可能死于这种癌症的男性,但仍在接受改变生活的疗法,但往往会产生不良副作用。
F1 分数没有考虑真正的负例/比率,这在某些应用程序中可能很关键。灵敏度和特异性值取决于它们之间的特定权衡选择。有时,这种权衡是由软件默默进行的,例如将逻辑回归中的分类截止设置为预测值p>0.5. 所有这些措施背后的明确或隐藏的假设意味着它们可能会受到假设的微小变化的巨大影响。
最普遍有用的方法是生成一个良好的类成员概率模型,然后使用权衡成本的判断来告知预测类的最终分配(如果需要)。Brier 评分和其他适当的评分规则提供了概率模型质量的连续测量,当模型是真实模型时,这些测量得到优化。