我目前正在使用Python中的IsolationForest方法识别数据集中的异常值,但不完全理解sklearn上的示例:
具体地说,这张图实际上向我们展示了什么?观察值已经被定义为正常值/异常值——所以我假设等高线图的阴影部分表明该观察值是否确实是异常值(例如,异常值较高的观察值位于阴影较暗的区域?)。在
最后,下面的代码部分是如何被实际使用的(特别是y_pred函数)?在
# fit the model
clf = IsolationForest(max_samples=100, random_state=rng)
clf.fit(X_train)
y_pred_train = clf.predict(X_train)
y_pred_test = clf.predict(X_test)
y_pred_outliers = clf.predict(X_outliers)
我猜它只是为了在有人想打印输出时提供完整性?在
提前感谢您的帮助!在
使用您的代码
在您的代码之后,只需打印y\u pred\u离群值:
因此,对于每个观测值,根据拟合模型,它可以判断是否(+1或-1)将其视为异常值。
使用虹膜数据的简单示例
^{pr2}$结果:
解释:
print(y_pred_test)
只返回1。这意味着X检验的所有样本都不是离群值。在另一方面,
print(y_pred_outliers)
只返回-1。这意味着X_异常值的所有样本(虹膜数据总共150个)都是异常值。在希望这有帮助
相关问题 更多 >
编程相关推荐