【问题标题】:Display information about isolation forest显示有关隔离林的信息
【发布时间】:2017-05-30 09:25:09
【问题描述】:

我想显示有关隔离林输出结果的信息,例如隔离指数(在图形上)和预测的准确性。

我使用sklearn的隔离森林功能。

clf = IsolationForest()
clf.fit(X_train)
yPredTest = clf.predict(X_test)
xx, yy = np.meshgrid(np.linspace(-3, 88), np.linspace(-1, 50))
Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.title("Isolation Forest")
plt.contourf(xx, yy, Z, cmap=plt.cm.Blues_r)
b = plt.scatter(X_test[:, 0], X_test[:, 1], c='black')
plt.show()

我得到的结果类似于image,但只有一个簇(和一些点分布)并且所有点的颜色相同:通过将 yPredTest 设置为颜色解决了问题。

另一个问题是我不知道如何启用两个以上的功能。 我有两个集合(训练和测试),就像 [[0,1,34,38O,24],[98,938,238,23,1],[...],[0,13,3,23,49]] 和算法让我截断我的集合,如 X_train = np.array(list)[:100,[1,2]]X_test = np.array(list)[101:,[1,2]] 否则(np.array(list)[:100,]np.array(list)[101:,])它会停止并提醒我:

ValueError: Number of features of the model must match the input. Model n_features is 8 and input n_features is 2

看来问题出在那行Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])

【问题讨论】:

    标签: python scikit-learn isolation


    【解决方案1】:

    我看到“另一个问题”,但第一个问题在哪里? 由于参数c='black' 在散射时你得到了相同的颜色。尝试将 yPredTest 分配给该参数。

    xx,yy 是计划图的网格(您可以打印它们以检查它们是什么)。如果您想使用两个以上的功能,PCA 可能会有所帮助。

    【讨论】:

    • 问题是:显示隔离指数、预测的准确性、更改颜色和添加其他功能。您希望我将 PCA 与隔离林一起使用还是在其他文件中使用它 (=iForest)?
    • @Chènevis 我认为你应该向tutorial 学习它是如何绘制的。这是关于如何使用 IsolationForest 的doc。并使用 IsolationForest.predict 获取测试集的索引。
    • @Chènevis IsolationForest 支持两个以上的功能。只需更改数据的形状。但是您必须意识到,作为人类,我们不能将它们分散到超过 3 维的空间中。因此,如果您只想直观地显示信息,我认为使用 PCA 来减少您的功能是一个好主意。如果您对绘图感兴趣,请尝试将它们分散到 3d 空间中,这超出了我的知识范围。
    • 感谢写 yPredTest 因为颜色效果很好 :) 我已经阅读了这个文档,但它对我没有帮助。事实上,我不确定这就是我的意思;我更新了我的问题以便更好地解释它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 2019-07-11
    • 1970-01-01
    • 2019-08-02
    • 2020-05-24
    • 2019-06-29
    相关资源
    最近更新 更多