“寻找阈值”的基本算法是什么?
johnny5550822
成员职位:3.贡献我
我理解“寻找阈值”操作符使用ROC来确定最佳阈值。但是,它使用什么样的算法来选择阈值呢?例如,(1)优化准确率和召回率,或(2)这样的内容:http://stats.stackexchange.com/questions/29719/how-to-determine-best-cutoff-point-and-its-confidence-interval-using-roc-curve-i(三)其他
谢谢!
标记:
0
最佳答案
-
JEdward RapidMiner认证分析师,RapidMiner认证专家,成员职位:578独角兽0
答案
太好了,谢谢。让我看看!
我试图理解“公共ROCData createROCData”方法中的代码,但我不太理解它用来确定最佳阈值的方法。有什么论文作为依据吗?
代码在:
"https://github.com/rapidminer/rapidminer-studio/blob/85d3bee36c026a70580075092ed85ac517369e8e/src/main/java/com/rapidminer/tools/math/ROCDataGenerator.java"
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文
<过程扩展= " true " >
< /操作符>
<过程扩展= " true " >
<列出关键= " beta_constraints " / >
<列出关键= " expert_parameters " / >
< /操作符>
<列出关键= " expert_parameters " / >
< /操作符>
<枚举关键= " hidden_layer_sizes " >
< /枚举>
<枚举关键= " hidden_dropout_ratios " / >
<列出关键= " expert_parameters " / >
<列出关键= " expert_parameters_ " / >
< /操作符>
<列出关键= " application_parameters " / >
< /操作符>
< /操作符>
> < /过程
<过程扩展= " true " >
<列出关键= " application_parameters " / >
< /操作符>
<枚举关键= " class_order_definition " / >
< /操作符>
< /操作符>
> < /过程
< /操作符>
> < /过程
< /操作符>
> < /过程
我无法重现你在《泰坦尼克号》数据集上观察到的东西。
您能否分享您的数据,具体说明:
——你观察到的。
-你所期望的。
谢谢你,
问候,
莱昂内尔
不要用工具箱的那个:知道了。我计划添加一个带有子流程的版本,您可以在其中交付自定义性能度量。但是——时间和往常一样……
BR,
马丁
德国多特蒙德
> <上下文
<输入/ >
<输出/ >
<宏>
宏观> <
<键> cost_first关键> < /
<价值> 25 < /值>
宏观> < /
宏观> <
<键> cost_second关键> < /
<值> 10 > < /价值
宏观> < /
< /宏>
> < /上下文
<过程扩展= " true " >
< /操作符>
<列出关键= " beta_constraints " / >
<列出关键= " expert_parameters " / >
< /操作符>
< /操作符>
<列出关键= " application_parameters " / >
< /操作符>
<列出关键= " application_parameters " / >
< /操作符>
< /操作符>
<参数key="attribute_name" value="预测(欺诈)"" / >
< /操作符>
< /操作符>
<枚举关键= " class_order_definition " / >
< /操作符>
> < /过程
< /操作符>
> < /过程
此过程不使用交叉验证,但交叉验证的结果是相同的(在这种情况下,意外行为可能是由于对未见过的数据应用模型引起的,因此我在训练集上进行测试以捕获错误)。
问题很简单,我的错误分类成本是25(没有欺诈)和10(欺诈)。实际上,对忠实客户进行错误分类的代价比对欺诈客户进行分类的代价更高。我在操作符Find Threshold中定义了这些成本,然后用Performance (cost)评估结果。
问题是,当我在Find Threshold中使用cost1 = 250而不是cost1 = 25时,我会得到更好的结果。如果你能告诉我为什么会这样,我将非常感激!
亲切的问候,
塞巴斯蒂安。