zoukankan      html  css  js  c++  java
  • 聚类算法效果评估2,计算Precison,Recall,Fvalue,RI

    #!/usr/bin/python
    import sys;
    import re;
    def getPrecision(TP,TN,FP,FN):
        result=0.0;
        result=TP/(TP+FP);
        return result;
    def getRecall(TP,TN,FP,FN):
        result=0.0;
        result=TP/(TP+FN);
        return result;
    def getFvalue(TP,TN,FP,FN):
        result=0.0;
        p=getPrecision(TP,TN,FP,FN);
        r=getRecall(TP,TN,FP,FN);
        result=2*p*r/(p+r);
        return result;
    def getRI(TP,TN,FP,FN):
        result=0.0;
        result=(TP+TN)/(TP+FP+FN+TN);
        return result;
    if(__name__=="__main__"):
        filename=str(sys.argv[1]);
        TP=0.0;
        FP=0.0;
        TN=0.0;
        FN=0.0;
        preturn=re.compile('(^\s+|\s+$)');
        doccollection=[];
        fidsrc=file(filename,'r');
        for line in fidsrc.readlines():
            line=preturn.sub('',line);
            m=line.split('\t');
            if(len(m)==3):
                doccollection.append((int(m[0]),int(m[1]),int(m[2])));
        fidsrc.close();
        for i in range(0,len(doccollection)-1):
            for j in range(i+1,len(doccollection)):
                elem1=doccollection[i];
                elem2=doccollection[j];
                if(elem1[2]==elem2[2] and elem1[1]==elem2[1]):
                    TP=TP+1;
                if(elem1[2]==elem2[2] and elem1[1]!=elem2[1]):
                    FN=FN+1;
                if(elem1[2]!=elem2[2] and elem1[1]==elem2[1]):
                    FP=FP+1;
                if(elem1[2]!=elem2[2] and elem1[1]!=elem2[1]):
                    TN=TN+1;
        p=getPrecision(TP,TN,FP,FN);
        r=getRecall(TP,TN,FP,FN);
        f=getFvalue(TP,TN,FP,FN);
        ri=getRI(TP,TN,FP,FN);
        print 'TP=%f,TN=%f,FP=%f,FN=%f'%(TP,TN,FP,FN);
        print 'precision=%f,recall=%f,fvalue=%f,RI=%f'%(p,r,f,ri);  
  • 相关阅读:
    GIT分支的一些开发心得
    java文件压缩和解压
    java发送邮件
    单例多例
    String,StringBuffer,StringBuilder区别
    GIT文件的三种状态
    javascript 常用技巧
    javascript优化工具 Doloto
    thinkphp 5内置验证规则-基本版
    php+redis配置
  • 原文地址:https://www.cnblogs.com/finallyliuyu/p/2361743.html
Copyright © 2011-2022 走看看