コード例 #1
0
    def test99(self):
        """Make sure that direct calls to update
           do not clear previous contents"""

        D = SDT(dict([(HI, 10), (CR, 9)]))
        D.__init__(MI=1)
        self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')
コード例 #2
0
    def test0(self):
        D = SDT(dict([(HI, 10), (MI, 1), (CR, 9)]))

        with self.assertRaises(NotImplementedError) as cm:
            M = D.setdefault('AB', 3)

        self.assertEqual(str(cm.exception), 'SDT.setdefault() is undefined.')
コード例 #3
0
    def test0(self):
        L = SDT(HI=10, MI=1, CR=9)
        M = SDT(HI=11, FA=5)

        self.assertTrue(isinstance(L, SDT))
        self.assertEqual(L & M, SDT(HI=10, MI=0, CR=0, FA=0))
        self.assertEqual(L, SDT(HI=10, MI=1, CR=9))
        self.assertEqual(M, SDT(HI=11, FA=5))
コード例 #4
0
 def test0(self):
     D = SDT()
     D(HI)
     D(HI)
     D(HI)
     D(FA)
     D(FA)
     self.assertEqual(D, SDT(HI=3, FA=2))
コード例 #5
0
    def test0(self):
        D = SDT(dict([(HI, 10), (MI, 1), (CR, 9)]))

        with self.assertRaises(NotImplementedError) as cm:
            M = D.fromkeys([HI, HI])

        self.assertEqual(
            str(cm.exception),
            'SDT.fromkeys() is undefined.  Use SDT(iterable) instead.')
コード例 #6
0
    def test1(self):
        """list args"""
        R = [
            SDT(HI=12, MI=3, CR=4, FA=34).aprime(),
            SDT(HI=12, MI=3, CR=4, FA=4).aprime()
        ]

        D = aprime.prob([12 / 15., 12 / 15.], [34 / 38., 4 / 8.])

        for r, d in zip(R, D):
            self.assertAlmostEqual(r, d, 7)
コード例 #7
0
    def test1(self):
        """list args"""
        R = [
            SDT(HI=12, MI=3, CR=4, FA=34).aprime(),
            SDT(HI=12, MI=3, CR=4, FA=4).aprime()
        ]

        D = aprime.direct([12, 12], [3, 3], [4, 4], [34, 4])

        for r, d in zip(R, D):
            self.assertAlmostEqual(r, d, 7)
コード例 #8
0
    def test1(self):
        D = SDT()

        with self.assertRaises(KeyError) as cm:
            D('AB')

        self.assertEqual(str(cm.exception), "'AB'")
コード例 #9
0
 def test2(self):
     sdt_obj = SDT(HI=116, MI=30, CR=323, FA=80)
     sdt_probs = (.97, .22)
     sdt_counts = (76, 67, 80, 65)
     sdt_metrics.plotting.mult_roc_plot(
         ((.91, .40), 'A'), ((.76, .56), 'B'), ((.84, .67), 'C'),
         metric='amzs',
         isopleths='bppd',
         fname='mult_roc_example02.png')
コード例 #10
0
 def test1(self):
     sdt_obj = SDT(HI=116, MI=30, CR=323, FA=80)
     sdt_probs = (.97, .22)
     sdt_counts = (76, 67, 80, 65)
     sdt_metrics.plotting.mult_roc_plot((sdt_obj, 'from SDT object'),
                                        (sdt_probs, 'from probs'),
                                        (sdt_counts, 'from counts'),
                                        fname='mult_roc_example.png',
                                        metric='dprime',
                                        isopleths='c')
コード例 #11
0
 def test23(self):
     """SDT(**kwargs)"""
     D = SDT(HI=10, MI=1, CR=9)
     self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')
コード例 #12
0
 def test4(self):
     """given SDT object"""
     sdt_metrics.plotting.roc_plot(SDT(HI=251, MI=245, CR=264, FA=240),
                                   fname='roc_example03.png')
コード例 #13
0
 def test0(self):
     D = SDT(HI=20, MI=180, FA=10, CR=1820)
     self.assertEqual(round(D.npv(), 3), 0.995)
コード例 #14
0
 def test0(self):
     D = SDT(dict([(HI, 10), (MI, 1), (CR, 9)]))
     del D[HI]
     self.assertEqual(repr(D), 'SDT(HI=0, MI=1, CR=9, FA=0)')
コード例 #15
0
 def test2(self):
     D = SDT(HI=78, MI=12, FA=00, CR=10)
     self.assertEqual(D.mutual_info(), 0.17350094092658325)
コード例 #16
0
    def test0(self):
        """float args"""

        self.assertEqual(aprime.prob(12 / 15., 34 / 38.),
                         SDT(HI=12, MI=3, CR=4, FA=34).aprime())
コード例 #17
0
 def test0(self):
     """float args"""
     self.assertEqual(aprime.direct(12, 3, 4, 34),
                      SDT(HI=12, MI=3, CR=4, FA=34).aprime())
コード例 #18
0
 def test20(self):
     """SDT()"""
     self.assertEqual(repr(SDT()), "SDT()")
コード例 #19
0
 def test0(self):
     D = SDT(HI=20, MI=180, FA=10, CR=1820)
     self.assertEqual(round(D.sensitivity(), 2), 0.67)
コード例 #20
0
 def test0(self):
     D = SDT(HI=20, MI=180, FA=10, CR=1820)
     self.assertEqual(round(D.specificity(), 2), 0.91)
コード例 #21
0
 def test24(self):
     """SDT(iterable)"""
     D = SDT([HI, HI, HI, FA, FA])
     self.assertEqual(repr(D), 'SDT(HI=3, MI=0, CR=0, FA=2)')
コード例 #22
0
 def test1(self):
     D = SDT(HI=80, MI=10, FA=00, CR=10)
     self.assertEqual(D.mutual_info(), 0.18645353727945904)
コード例 #23
0
 def test25(self):
     """SDT(iterable, **kwargs), with overlapping key/values"""
     D = SDT(dict([(HI, 10), (CR, 9)]), MI=1)
     self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')
コード例 #24
0
 def test1(self):
     """given an SDT object"""
     sdt = SDT(HI=116, MI=30, CR=323, FA=80)
     sdt_metrics.plotting.roc_plot(sdt)
コード例 #25
0
 def test0(self):
     D = SDT(dict([(HI, 10), (CR, 9)]))
     D.clear()
     self.assertEqual(repr(D), 'SDT()')
コード例 #26
0
 def test22(self):
     """SDT(iterable)"""
     D = SDT([(HI, 10), (CR, 9), (MI, 1)])
     self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')
コード例 #27
0
 def test0(self):
     D = SDT(dict([(HI, 10), (MI, 1), (CR, 9)]))
     D2 = D.copy()
     D2(HI)
     self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')
コード例 #28
0
 def test0(self):
     D = SDT(HI=20, MI=180, FA=10, CR=1820)
     self.assertEqual(D.ppv(), 0.1)
コード例 #29
0
def run_comparison(a, b, N,  pcolor):
    a_label = a.__name__
    b_label = b.__name__
##    N=10

    H,F,A,B = [],[],[],[]
    for f in xrange(N+2):
        H.append([])
        F.append([])
        A.append([])
        B.append([])

        for h in xrange(N+2):
            counts = {'HI':h, 'MI':N-h, 'FA':f, 'CR':N-f}
            
            H[-1].append(h)
            F[-1].append(f)
            A[-1].append(a(SDT(counts)))
            B[-1].append(b(SDT(counts)))

    H=np.array(H)
    F=np.array(F)
    A=np.array(A)
    B=np.array(B)

    A_vs_B  = np.array(B)
##    A_vs_B -= np.min(A_vs_B)
##    A_vs_B /= np.max(A_vs_B)
    A_vs_B -= A
            
##    with open('%s-vs-%s,N=%i.csv'
##              %(a_label,b_label,N), 'wb') as f:
##        csv.writer(f).writerows(
##            zip(*[H.flatten(),F.flatten(), A.flatten(),B.flatten()]))

    pylab.figure(figsize=(6,6))
    pylab.subplots_adjust(bottom=.15, top=.9, left=.15, right=.9)
    pylab.scatter(B,A, alpha=.5)
    pylab.ylabel(a_label)
    pylab.xlabel(b_label)
    pylab.savefig('%s-vs-%s,N=%i.png'%(a_label,b_label,N))
    pylab.close()

    if pcolor:
        pylab.figure(figsize=(4,8))
        pylab.subplots_adjust(bottom=.1, top=.95, hspace=.3)
        pylab.subplot(311, aspect='equal')
        pylab.title(a_label)
        pylab.pcolor(F,H,A)
        pylab.xlim([0,N+1])
        pylab.ylim([0,N+1])
        pylab.colorbar()

        pylab.subplot(312, aspect='equal')
        pylab.title(b_label)
        pylab.pcolor(F,H,B)
        pylab.xlim([0,N+1])
        pylab.ylim([0,N+1])
        pylab.colorbar()

        pylab.subplot(313, aspect='equal')
        pylab.title("%s - %s"%(b_label,a_label))
        pylab.pcolor(F,H,A_vs_B)
        pylab.xlim([0,N+1])
        pylab.ylim([0,N+1])
        pylab.colorbar()
        pylab.savefig('%s-vs-%s_pcolor,N=%i.png'
                      %(a_label,b_label,N),dpi=300)
        pylab.close()
コード例 #30
0
 def test21(self):
     """SDT(mapping)"""
     D = SDT(dict([(HI, 10), (CR, 9), (MI, 1)]))
     self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')