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);  
  • 相关阅读:
    【作业4】测试作业-兴趣问题清单
    【读后感3】高效程序员的45个习惯
    【作业3】关于C语言的问卷调查
    【作业2】价值观作业
    Spring的零配置
    Spring容器中bean的作用域
    Spring注入方式
    Spring整合Struts2
    my first go
    Struts2对ajax的支持
  • 原文地址:https://www.cnblogs.com/finallyliuyu/p/2361743.html
Copyright © 2011-2022 走看看