我正在尝试将isolation forest algorithm与Python scikit learn一起使用。
我不明白为什么要生成集合X_test
和X_outliers
,因为当我得到数据时,我不知道其中是否有异常值。但也许这只是一个例子,我不必为每个案例生成和填充集合。我认为隔离林不必接收干净的X_train
(没有异常值)。
我误解了算法了吗?我是否必须使用其他算法(我考虑过一个类SVM,但它的X_train
必须尽可能干净)?
隔离林算法是无监督算法还是有监督算法(如随机林算法)?
Tags:
问题:
我不明白为什么要生成集合
X_test
和X_outliers
,因为当我得到数据时,我不知道其中是否有异常值。回答:
您不必生成
X_outliers
。这只是一个示例,向您展示隔离林可以检测异常值。这个数据集是随机的。与原始数据无关。你需要做的只是将你的
IsolationForest
与你的训练数据相匹配。然后,如果需要,签入一个测试集-作为预处理步骤-如果有一些异常值。“隔离林算法是无监督算法还是有监督算法(如随机林算法)
隔离树是一种无监督的算法,因此它不需要标签来识别异常值。它遵循以下步骤:
一旦数据的递归分区完成,就到达树的末尾。预计到达异常值所需的距离远小于正常数据所需的距离(见图)。
对路径距离进行平均和归一化,以计算异常得分。异常得分为1被视为异常值,接近0的值被视为正常值。
异常值的判断是根据得分进行的。不需要标签列。因此它是一种无监督算法。
相关问题 更多 >
编程相关推荐