gpt4 book ai didi

python - Isolation Forest 的 ROC 曲线

转载 作者:太空狗 更新时间:2023-10-30 02:51:37 24 4
gpt4 key购买 nike

我正在尝试绘制 ROC 曲线来评估隔离森林对乳腺癌数据集的准确性。我从混淆矩阵中计算出真阳性率 (TPR) 和假阳性率 (FPR)。但是,我不明白 TPR 和 FPR 是如何以矩阵形式出现的,而不是单个整数值。而且ROC曲线似乎只对矩阵形式的FPR和TPR有效(我也试过手动写计算FPR和TPR的代码)。

TPR 和 FPR 值总是以矩阵的形式存在吗?

无论哪种方式,我的 ROC 曲线都是一条直线。为什么会这样?

混淆矩阵:

from sklearn.metrics import confusion_matrix
cnf_matrix = confusion_matrix(y, y_pred_test1)

订单:

>     [[  5  25]
> [ 21 180]]

True Positive 和 False Positive:(另外,为什么这些值直接取自混淆矩阵?)

F_P = cnf_matrix.sum(axis=0) - np.diag(cnf_matrix)  
F_N = cnf_matrix.sum(axis=1) - np.diag(cnf_matrix)
T_P = np.diag(cnf_matrix)
T_N = cnf_matrix.sum() - (FP + FN + TP)

F_P = F_P.astype(float)
F_N = F_N.astype(float)
T_P = T_P.astype(float)
T_N = T_N.astype(float)

订单:

False Positive [21. 25.] 
False Negative [25. 21.]
True Positive [ 5. 180.]
True Negative [180. 5.]

TPR 和 FPR:

tp_rate = TP/(TP+FN)
fp_rate = FP/(FP+TN)

订单:

TPR :  [0.16666667 0.89552239]
FPR [0.10447761 0.83333333]

ROC 曲线:

from sklearn import metrics
import matplotlib.pyplot as plt

plt.plot(fp_rate,tp_rate)
plt.show()

订单:

enter image description here

最佳答案

confusion_matrix() 函数只为您提供正确/错误分类的点,但不提供有关模型对数据点错误分类时的置信度的信息。

此信息用于创建 ROC 曲线(用于衡量模型根据每个数据点对特定类别的可能性对其进行排名的能力)。

相反,使用 decision_function()score_samples()函数来计算模型对每个数据点是(或不是)异常的置信度。然后,使用 roc_curve()获得绘制曲线本身所需的点。

这是乳腺癌数据集的示例。

from sklearn.datasets import load_breast_cancer
X, y = load_breast_cancer(return_X_y=True)

from sklearn.ensemble import IsolationForest

clf = IsolationForest(behaviour='new', max_samples=100,
random_state=0, contamination='auto')
clf.fit(X)
y_pred = clf.score_samples(X)

from sklearn.metrics import roc_curve
fpr, tpr, thresholds = roc_curve(y,y_pred)
import matplotlib.pyplot as plt
plt.plot(fpr, tpr, 'k-', lw=2)
plt.xlabel('FPR')
plt.ylabel('TPR')
plt.show()

ROC curve of isolation forest prediction for breast cancer dataset

关于python - Isolation Forest 的 ROC 曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55106102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com