示例#1
0
 def test_pearson_score(self):
     self.assertEqual(pearson_score([42], [42]), 1.0)
     self.assertEqual(pearson_score([0, 1, 2], [0, 1, 2]), 1.0)
     self.assertEqual(pearson_score([0, 1, 3], [0, 1, 2]),
                      0.9819805060619656)
     self.assertEqual(pearson_score([0, 1, 2], [0, 1, 3]),
                      0.9819805060619656)
 def test_pearson_score(self):
     self.assertEqual(pearson_score([42], [42]), 1.0)
     self.assertEqual(pearson_score([0, 1, 2], [0, 1, 2]), 1.0)
     self.assertEqual(pearson_score([0, 1, 3], [0, 1, 2]),
                      0.9819805060619656)
     self.assertEqual(pearson_score([0, 1, 2], [0, 1, 3]),
                      0.9819805060619656)
示例#3
0
 def test_pearson_score(self):
     self.assertEquals(pearson_score([42], [42]), 0.0)
     self.assertEquals(pearson_score([0, 1, 2], [0, 1, 2]), 0.0)
     self.assertEquals(pearson_score([0, 1, 3], [0, 1, 2]),
                       0.051316701949486232)
     self.assertEquals(pearson_score([0, 1, 2], [0, 1, 3]),
                       0.051316701949486232)
 def test_pearson_score(self):
     self.assertRaises(ZeroDivisionError, pearson_score, [42], [42])
     self.assertRaises(ZeroDivisionError, pearson_score, [2, 2, 2], [1, 1, 1])
     self.assertEqual(pearson_score([0, 1, 2], [0, 1, 2]), 1.0)
     self.assertEqual(pearson_score([0, 1, 3], [0, 1, 2]), 0.9819805060619656)
     self.assertEqual(pearson_score([0, 1, 2], [0, 1, 3]), 0.9819805060619656)
     self.assertEqual(pearson_score([2, 0, 0, 0], [0, 1, 1, 1]), -1)
示例#5
0
 def test_pearson_score(self):
     self.assertRaises(ZeroDivisionError, pearson_score, [42], [42])
     self.assertRaises(ZeroDivisionError, pearson_score, [2, 2, 2],
                       [1, 1, 1])
     self.assertEqual(pearson_score([0, 1, 2], [0, 1, 2]), 1.0)
     self.assertEqual(pearson_score([0, 1, 3], [0, 1, 2]),
                      0.9819805060619656)
     self.assertEqual(pearson_score([0, 1, 2], [0, 1, 3]),
                      0.9819805060619656)
     self.assertEqual(pearson_score([2, 0, 0, 0], [0, 1, 1, 1]), -1)
    def test_pearson_score(self):
        self.assertEqual(pearson_score([42], [42]), 0.0)
        self.assertEqual(pearson_score([0, 1, 2], [0, 1, 2]), 0.0)
        #The pearson algorithm was incorrect. My results have been verified
        #with a wolfram calculator here:
        #http://www.wolframalpha.com/widgets/view.jsp?
        #id=3038cb5ccf72f21a13801d9c78f70937

        #One thing that I don't understand is why the pearson
        #calculator is returning 1-r . I've left it as is.
        self.assertEqual(pearson_score([0, 1, 3], [0, 1, 2]),
                         0.01801949393803437)
        self.assertEqual(pearson_score([0, 1, 2], [0, 1, 3]),
                         0.01801949393803437)
示例#7
0
    def test_pearson_score(self):
        self.assertEqual(pearson_score([42], [42]), 0.0)
        self.assertEqual(pearson_score([0, 1, 2], [0, 1, 2]), 0.0)
        #The pearson algorithm was incorrect. My results have been verified
        #with a wolfram calculator here:
        #http://www.wolframalpha.com/widgets/view.jsp?
        #id=3038cb5ccf72f21a13801d9c78f70937

        #One thing that I don't understand is why the pearson
        #calculator is returning 1-r . I've left it as is.
        self.assertEqual(pearson_score([0, 1, 3], [0, 1, 2]),
                         0.01801949393803437)
        self.assertEqual(pearson_score([0, 1, 2], [0, 1, 3]),
                         0.01801949393803437)
    def compute_related(object_id, dataset):
        object_vector = None
        for entry, e_vector in dataset.items():
            if entry.pk == object_id:
                object_vector = e_vector

        if not object_vector:
            return []

        entry_related = {}
        for entry, e_vector in dataset.items():
            if entry.pk != object_id:
                score = pearson_score(object_vector, e_vector)
                if score:
                    entry_related[entry] = score

        related = sorted(entry_related.items(), key=lambda(k,v):(v,k))
        return [i for i, s in related]
示例#9
0
    def compute_related(object_id, dataset):
        """Compute related entries to an entry with a dataset"""
        object_vector = None
        for entry, e_vector in dataset.items():
            if entry.pk == object_id:
                object_vector = e_vector

        if not object_vector:
            return []

        entry_related = {}
        for entry, e_vector in dataset.items():
            if entry.pk != object_id:
                score = pearson_score(object_vector, e_vector)
                if score:
                    entry_related[entry] = score

        related = sorted(entry_related.items(), key=lambda(k, v): (v, k))
        return [rel[0] for rel in related]
示例#10
0
    def compute_related(object_id, dataset):
        """Compute related entries to an entry with a dataset"""
        object_vector = None
        for entry, e_vector in dataset.items():
            if entry.pk == object_id:
                object_vector = e_vector

        if not object_vector:
            return []

        entry_related = {}
        for entry, e_vector in dataset.items():
            if entry.pk != object_id:
                score = pearson_score(object_vector, e_vector)
                if score:
                    entry_related[entry] = score

        related = sorted(entry_related.items(), key=lambda (k, v): (v, k))
        return [rel[0] for rel in related]