Scikit-learn:如何获得真正阳性、真正阴性、假阳性和假阴性
Scikit-learn:如何获得真正阳性、真正阴性、假阳性和假阴性
我的问题:
我有一个大的JSON文件数据集。我读取它并将其存储在trainList
变量中。
接下来,我对其进行预处理 - 以便能够处理它。
一旦完成预处理,我开始进行分类:
- 我使用
kfold
交叉验证方法来获得平均准确率并训练分类器。 - 我进行预测并获得该折叠的准确率和混淆矩阵。
- 之后,我想获得
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 #我不知道该如何继续