R语言isotree包isolation.forest函数中contamination参数解析
关于isotree包isolation.forest函数中"contamination"参数的说明
首先要明确:你贴出的isolation.forest函数参数列表里没有contamination参数——这是isotree实现的孤立森林和其他常见孤立森林工具(比如Python的sklearn)的一个差异点。
常规孤立森林中contamination的定义与作用
- 定义:取值范围在0到0.5之间的数值,用于预估当前数据集中异常样本的占比。
- 作用:作为自动判定异常值的依据——模型会根据这个比例,从所有样本的异常得分里计算出一个阈值,得分超过该阈值的样本会被标记为异常。
isotree包的替代处理方式
由于isolation.forest本身不支持contamination参数,若你需要基于异常比例筛选异常值,可在模型训练完成后手动操作:
- 调用
predict函数并设置type="score",获取所有样本的异常得分 - 根据你预估的异常比例(即类似
contamination的数值),用quantile函数计算得分对应的分位数作为阈值 - 依据阈值标记异常样本
或者也可以在调用predict时,直接通过threshold参数传入计算好的阈值,直接输出异常标记结果。
内容的提问来源于stack exchange,提问作者Julien
相关产品推荐
相关产品推荐

