Scikit-learn:如何获得真正阳性、真正阴性、假阳性和假阴性

4 浏览
0 Comments

Scikit-learn:如何获得真正阳性、真正阴性、假阳性和假阴性

我的问题:

我有一个大的JSON文件数据集。我读取它并将其存储在trainList变量中。

接下来,我对其进行预处理 - 以便能够处理它。

一旦完成预处理,我开始进行分类:

  1. 我使用kfold交叉验证方法来获得平均准确率并训练分类器。
  2. 我进行预测并获得该折叠的准确率和混淆矩阵。
  3. 之后,我想获得True Positive(TP)True Negative(TN)False Positive(FP)False Negative(FN)值。我将使用这些参数来获得敏感度特异度

最后,我将使用这些内容放入HTML中,以便显示每个标签的TP的图表。

代码:

我目前拥有的变量:

trainList #这是一个包含数据集中所有数据的JSON形式的列表
labelList #这是一个包含数据标签的列表

主要部分的代码:

#我将数据从JSON形式转换为数值形式
X=vec.fit_transform(trainList)
#我对矩阵进行缩放(不知道为什么,但如果不缩放,会出错)
X=preprocessing.scale(X.toarray())
#我生成一个KFold以进行交叉验证
kf = KFold(len(X), n_folds=10, indices=True, shuffle=True, random_state=1)
#我开始交叉验证
for train_indices, test_indices in kf:
    X_train=[X[ii] for ii in train_indices]
    X_test=[X[ii] for ii in test_indices]
    y_train=[listaLabels[ii] for ii in train_indices]
    y_test=[listaLabels[ii] for ii in test_indices]
    #我训练分类器
    trained=qda.fit(X_train,y_train)
    #我进行预测
    predicted=qda.predict(X_test)
    #我获得此折叠的准确率
    ac=accuracy_score(predicted,y_test)
    #我获得混淆矩阵
    cm=confusion_matrix(y_test, predicted)
    #我应该计算TP、TN、FP和FN
    #我不知道该如何继续

0