我的目标是识别数据集中的异常。我有一个经过训练的随机森林模型,该模型将数据记录分类为“ A”或“ B”。任何不属于这些类别的事物都应标记为异常。
为了将数据记录标记为“异常”,我决定使用RandomForestClassifier.predict_proba(test_data)
中的sklearn.ensemble
函数,该函数返回每个测试记录属于特定类的百分比,如下所示:
test_rec1:[0.23 0.77]
test_rec2:[0.98 0.02]
test_rec3:[0.35 0.65]
如您所见,森林中77%的树木将test_rec1归为“ B”,而98%的树木将test_rec2归为“ A”。但是,从值中可以看出,对于test_rec3的结果并不乐观。
我的问题:我可以引入一个阈值(例如0.7或70%),以便如果RandomForestClassifier.predict_proba(test_data)
给出的值小于该阈值(例如在test_rec3的情况下),我可以将其分类为异常?
如果没有, Python3 中是否有更好的方法?
我还阅读了有关Z分数和dbscan的信息,但我觉得在我的情况下,缺点超过了优点。