我在项目中使用了一个二元(好/坏)分类器,试图为其绘制ROC曲线。这个分类器使用遗传算法进行预测。
例如,如果给定的测试染色体[1.0,0.5,0.4,0.7]与另一个染色体[0.8,0.5,0.3,0.6]匹配,则认为它是好的。匹配的意思是与另一个染色体的欧几里得距离值低于某个特定值。
我已经完成了600个实例的分类,并且得到了最终的混淆矩阵(这个矩阵指的是一个四值表,我们可以通过它计算最终的TPR和FPR),每个实例的正确分类标签,以及每个实例的所有预测结果。
我已经阅读了关于ROC曲线的文档,接收者操作特征和机器学习性能评估工具:Python中的ROC曲线。我该如何继续获取ROC曲线?
通过我的最终四值表,我认为我只能在曲线上绘制一个点。上面附件的链接不断提到我需要一个得分(即概率得分),但我不知道如何为遗传算法分类器获取这个得分。但是,我如何利用每个实例预测的知识来创建一种连续的ROC曲线呢?
免责声明:我是ROC绘图的新手,我用Python编写代码——因此,我附上了与Python相关的ROC文档。
回答:
无论你是如何创建你的分类器的。最终,你的模型只是在||x - x_i|| < T
时给出正标签,其中T
是某个预定义的阈值。ROC曲线正是用这种类型的参数化——标量值,你可以改变它,使分类更偏向于正类或负类。因此,简单地通过多个T值,计算每个值的指标,这将创建你的ROC曲线。就是这样!