我试图计算真实阳性率等。并将结果输出到csv文件。在
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import csv
from sklearn.metrics import confusion_matrix
AllBinary = pd.read_csv('BinaryData.csv')
y_test = AllBinary['Binary_ac']
y_pred = AllBinary['Binary_pred']
cm = confusion_matrix(y_test, y_pred)
stats = pd.DataFrame()
TP = cm[0][0]
FP = cm[0][1]
FN = cm[1][0]
TN = cm[1][1]
stats['TruePositive'] = TP
stats['TrueNegative'] = TN
stats['FalsePositive'] = FP
stats['FalseNegative'] = FN
print(TP)
print(TN)
print(FP)
print(FN)
stats.to_csv('C:/out/' + 'BinaryStats' + '.csv', header = True)
打印结果显示,基本混淆矩阵统计信息计算如下:
^{pr2}$csv输出创建标题,但结果为空。我做错什么了?在
更新:
^{3}$
这里的问题是,不能通过简单地将标量值赋给新列来附加到df:
您需要用ctor中所需的值构造df:
^{pr2}$或者添加一个虚拟行,然后您的代码就可以工作了:
然后可以删除调用
drop
的伪列:所以你的尝试失败是因为你的初始df是空的,你用一个标量值分配一个新列,标量值将把新列的所有行设置为这个值。由于您的df没有行,这将失败,这就是为什么您有一个空的df。在
另一种方法是用一行创建df(这里我放
NaN
):相关问题 更多 >
编程相关推荐