如何找到属于预测 class 的 k-NN 邻居的比例?
How to find the proportion of k-NN neighbors that belong to a predicted class?
我想在 Python 中绘制 k-NN 分类器的 ROC 曲线。我有一个由 40 个样本组成的数据集,这些样本由 5 个特征描述,k-NN 的邻居数量为 K = 7。
20 个样本用于训练,20 个样本用于测试。有两种可能的预测classes:"signal present"和"signal absent"(二进制class化)。
根据这个article,为k-NN classifier制作ROC曲线,一个score可以定义为属于“signal present”的K个neighbors的比例” class,并且 class 在“信号存在”中验证测试实例所需的阈值 class 是从 1 到 K 变化的邻居数量。
我的问题是如何找到属于“信号存在”的K个邻居的比例class?我知道邻居总数(K = 7) 为了计算比例,我需要知道属于 class.
的邻居的数量
我看到有一个函数 KNeighbors(),returns 一个点的索引和到邻居的距离,但是我怎么知道哪个邻居属于“信号存在”class?
感谢任何帮助!
更新
我试过以下方法:
- 对于给定的测试样本,使用 kneighbors() 函数找到 K 个邻居的索引。
- 通过检查 for 循环中 y_train[indices[i,0]] 的值来计算属于 "signal present" class 的邻居数量(y_train 来自 train_test_split() 函数)。
- 将邻居数与阈值进行比较。
有人可以确认我的操作是否正确吗?
继续!! ✌️Google可以解决你的问题,大佬不要求助。如果这解决了您的问题,那么 .
我想在 Python 中绘制 k-NN 分类器的 ROC 曲线。我有一个由 40 个样本组成的数据集,这些样本由 5 个特征描述,k-NN 的邻居数量为 K = 7。
20 个样本用于训练,20 个样本用于测试。有两种可能的预测classes:"signal present"和"signal absent"(二进制class化)。
根据这个article,为k-NN classifier制作ROC曲线,一个score可以定义为属于“signal present”的K个neighbors的比例” class,并且 class 在“信号存在”中验证测试实例所需的阈值 class 是从 1 到 K 变化的邻居数量。
我的问题是如何找到属于“信号存在”的K个邻居的比例class?我知道邻居总数(K = 7) 为了计算比例,我需要知道属于 class.
的邻居的数量我看到有一个函数 KNeighbors(),returns 一个点的索引和到邻居的距离,但是我怎么知道哪个邻居属于“信号存在”class?
感谢任何帮助!
更新
我试过以下方法:
- 对于给定的测试样本,使用 kneighbors() 函数找到 K 个邻居的索引。
- 通过检查 for 循环中 y_train[indices[i,0]] 的值来计算属于 "signal present" class 的邻居数量(y_train 来自 train_test_split() 函数)。
- 将邻居数与阈值进行比较。
有人可以确认我的操作是否正确吗?
继续!! ✌️Google可以解决你的问题,大佬不要求助。如果这解决了您的问题,那么 .