Example #1
0
    def test_similarity(self):
        cm = pd.DataFrame.from_dict(
            {
                "c1": [5, -1, 1, 2, 0],
                "c2": [5, 4, 0, 2, 1],
                "c3": [4, 4, 3, 1, 1],
                "c4": [-1, 4, 0, 1, -1],
            },
            orient="index",
            columns=["a", "b", "c", "d", "e"],
        )

        self.assertEqual(
            dissimilarity_functions.hamming_similarity_without_missing(
                list(cm.loc["c1", :]), list(cm.loc["c3", :]), -1),
            0,
        )
        self.assertEqual(
            dissimilarity_functions.hamming_similarity_without_missing(
                list(cm.loc["c2", :]), list(cm.loc["c3", :]), -1),
            2,
        )
        self.assertEqual(
            dissimilarity_functions.hamming_similarity_without_missing(
                list(cm.loc["c3", :]), list(cm.loc["c4", :]), -1),
            2,
        )
Example #2
0
    def test_hamming_similarity_without_missing_priors(self):
        similarity = dissimilarity_functions.hamming_similarity_without_missing(
            self.s1, self.s2, -1, weights=self.nlweights)

        expected_similarity = np.sum(
            [-np.log(self.priors[1][1]), -np.log(self.priors[4][1])])

        self.assertEqual(similarity, expected_similarity)
Example #3
0
    def test_similarity_weighted(self):
        cm = pd.DataFrame.from_dict(
            {
                "c1": [5, -1, 1, 2, 0],
                "c2": [5, 4, 0, 2, 1],
                "c3": [4, 4, 3, 1, 1],
                "c4": [-1, 4, 0, 1, -1],
            },
            orient="index",
            columns=["a", "b", "c", "d", "e"],
        )

        weights = {
            0: {
                5: 2
            },
            1: {
                4: 2
            },
            2: {
                1: 1,
                3: 1
            },
            3: {
                1: 1,
                2: 1
            },
            4: {
                1: 3
            },
        }

        self.assertEqual(
            dissimilarity_functions.hamming_similarity_without_missing(
                list(cm.loc["c1", :]), list(cm.loc["c3", :]), -1, weights),
            0,
        )
        self.assertEqual(
            dissimilarity_functions.hamming_similarity_without_missing(
                list(cm.loc["c2", :]), list(cm.loc["c3", :]), -1, weights),
            5,
        )
Example #4
0
    def test_hamming_similarity_without_missing_all_missing(self):

        similarity = dissimilarity_functions.hamming_similarity_without_missing(
            self.s1, self.all_missing, -1, weights=self.nlweights)

        self.assertEqual(similarity, 0)
Example #5
0
    def test_hamming_similarity_without_missing_no_priors(self):

        similarity = dissimilarity_functions.hamming_similarity_without_missing(
            self.s1, self.s2, -1)

        self.assertEqual(similarity, 2)
Example #6
0
    def test_hamming_similarity_without_missing_identical(self):

        similarity = dissimilarity_functions.hamming_similarity_without_missing(
            self.s1, self.s1, -1)

        self.assertEqual(similarity, 3)