我想找到一种方法来更快地计算成对准确性,即将比较同一数组中的元素(在这种情况下,这是一个熊猫df列),计算它们之间的差异,然后比较所获得的两个结果。我想有一个数据帧DF有3列(ID文件的,Jugment代表人类的评估,它是一个int对象,PR_score表示该文件的网页级别,这是一个浮动对象),我要检查,如果他们同意对一个文档进行更好/最差的分类。
例如:
id:id1,id2,id3
判断:1,0,0
PR_分数:0.18,0.5,0.12
在这种情况下,两个分数在对id1的分类上优于对id3的分类,对id1和id2的分类不同,并且在id2和id3之间存在人为的判断力,因此我的成对准确性是:
协议 = 1
分歧 = 1
成对准确性 =同意/(同意+反对)= 1/2 = 0.5
这是我第一个解决方案的代码,其中我将df的列用作数组(这有助于减少计算时间):
def pairwise(agree, disagree):
return(agree/(agree+disagree))
def pairwise_computing_array(df):
humanScores = np.array(df['Judgement'])
pagerankScores = np.array(df['PR_Score'])
total = 0
agree = 0
disagree = 0
for i in range(len(df)-1):
for j in range(i+1, len(df)):
total += 1
human = humanScores[i] - humanScores[j] #difference human judg
if human != 0:
pr = pagerankScores[i] - …Run Code Online (Sandbox Code Playgroud)