gpt4 book ai didi

machine-learning - 计算 K-NN 分类器的 ROC 曲线

转载 作者:行者123 更新时间:2023-11-30 09:01:05 25 4
gpt4 key购买 nike

正如您可能知道的,在 K-NN 中,决策通常是根据“多数票”做出的,而不是根据某个阈值 - 即没有参数作为 ROC 曲线的基础.

请注意,在我的 K-NN 分类器的实现中,投票的权重并不相等。 IE。每个“邻居”的权重为 e^(-d),其中 d 是测试样本和邻居。该措施为 K 个邻居中较近的邻居的投票赋予更高的权重。

<小时/>

我当前的决策规则是,如果正邻居的分数总和高于负样本的分数总和,那么我的分类器会说,否则,它会显示

但是 - 没有阈值

<小时/><小时/>

然后,我想到了以下想法:

决定具有较高票数的样本类别,可以更一般地描述为使用阈值 0,计算得分为: <强>(POS_NEIGHBORS_SUMMED_SCORES - NEG_NEIGHBORS_SUMMED_SCORES)

<小时/>

所以我想改变我的决策规则,在该度量上使用阈值,并根据值的阈值绘制 ROC 曲线

(POS_NEIGHBORS_SUMMED_SCORES - NEG_NEIGHBORS_SUMMED_SCORES)

这听起来是完成这项任务的好方法吗?

最佳答案

是的,这或多或少是通常使用的。如果你看一下 scikit-learn,它的权重是 knn,而且它们还有 predit_proba,它为你提供了一个明确的决策阈值。然而,通常您不想以差异为条件,而是以比率为条件

votes positive / (votes negative + votes positive) < T

这样,您就知道只需将阈值从 0“移动”到 1,而不是任意值。它现在也有一个明确的解释 - 作为您认为“果然”的内部概率估计。默认情况下 T = 0.5,如果概率高于 50%,您将分类为阳性,但如前所述 - 您可以用它做任何事情。

关于machine-learning - 计算 K-NN 分类器的 ROC 曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36984210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com