コード例 #1
0
ファイル: test_dissim.py プロジェクト: anisatul1/180441100006
    def test_ng_dissim(self):
        X = np.array([[0, 1, 2, 0, 1, 2], [0, 1, 2, 0, 1, 1]])
        centroids = X
        membship = np.array([[1, 0], [0, 1]])

        assert_array_equal(np.array([0., 1.]),
                           ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([1., 0.]),
                           ng_dissim(centroids, X[1], X=X, membship=membship))

        # Unit test for initialization (i.e., same as matching_dissim)
        membship = np.array([[0, 0], [0, 0]])
        mdiss_00 = matching_dissim(np.array([X[0]]), np.array([X[0]]))[0]
        mdiss_01 = matching_dissim(np.array([X[0]]), np.array([X[1]]))[0]
        mdiss_11 = matching_dissim(np.array([X[1]]), np.array([X[1]]))[0]

        assert_array_equal(np.array([mdiss_00, mdiss_01]),
                           ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([mdiss_01, mdiss_11]),
                           ng_dissim(centroids, X[1], X=X, membship=membship))

        # Unit test for NaN
        X = np.array([[np.NaN, 1, 2, 0, 1, 2], [0, 1, 2, 0, 1, 1]])
        centroids = X
        membship = np.array([[1, 0], [0, 1]])

        assert_array_equal(np.array([1., 2.]),
                           ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([2., 0.]),
                           ng_dissim(centroids, X[1], X=X, membship=membship))

        # Unit test for initialization with NaN(i.e., same as matching_dissim)
        membship = np.array([[0, 0], [0, 0]])
        mdiss_00 = matching_dissim(np.array([X[0]]), np.array([X[0]]))[0]
        mdiss_01 = matching_dissim(np.array([X[0]]), np.array([X[1]]))[0]
        mdiss_11 = matching_dissim(np.array([X[1]]), np.array([X[1]]))[0]

        assert_array_equal(np.array([mdiss_00, mdiss_01]),
                           ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([mdiss_01, mdiss_11]),
                           ng_dissim(centroids, X[1], X=X, membship=membship))

        X = np.array([['a', 'b', 'c', 'd'], ['a', 'b', 'e', 'd'],
                      ['d', 'c', 'b', 'a']])
        centroids = np.array([['a', 'b', 'c', 'd'], ['d', 'c', 'b', 'a']])
        membship = np.array([[1, 1, 0], [0, 0, 1]])

        assert_array_equal(np.array([0.5, 4.]),
                           ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([1., 4.]),
                           ng_dissim(centroids, X[1], X=X, membship=membship))
        assert_array_equal(np.array([4., 0.]),
                           ng_dissim(centroids, X[2], X=X, membship=membship))

        # Unit test for initialization (i.e., same as matching_dissim)
        membship = np.array([[0, 0, 0], [0, 0, 0]])
        mdiss_00 = matching_dissim(np.array([X[0]]), np.array([X[0]]))[0]
        mdiss_01 = matching_dissim(np.array([X[0]]), np.array([X[1]]))[0]
        mdiss_11 = matching_dissim(np.array([X[1]]), np.array([X[1]]))[0]
        mdiss_02 = matching_dissim(np.array([X[0]]), np.array([X[2]]))[0]
        mdiss_12 = matching_dissim(np.array([X[0]]), np.array([X[2]]))[0]
        mdiss_22 = matching_dissim(np.array([X[2]]), np.array([X[2]]))[0]

        assert_array_equal(np.array([mdiss_00, mdiss_02]),
                           ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([mdiss_01, mdiss_12]),
                           ng_dissim(centroids, X[1], X=X, membship=membship))
        assert_array_equal(np.array([mdiss_12, mdiss_22]),
                           ng_dissim(centroids, X[2], X=X, membship=membship))
コード例 #2
0
ファイル: test_dissim.py プロジェクト: ashishyadavppe/kmodes
    def test_ng_dissim(self):
        X = np.array([[0, 1, 2, 0, 1, 2], [0, 1, 2, 0, 1, 1]])
        centroids = X
        membship = np.array([[1, 0], [0, 1]])

        assert_array_equal(np.array([0., 1.]), ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([1., 0.]), ng_dissim(centroids, X[1], X=X, membship=membship))

        # Unit test for initialization (i.e., same as matching_dissim)
        membship = np.array([[0, 0], [0, 0]])
        mdiss_00 = matching_dissim(np.array([X[0]]), np.array([X[0]]))[0]
        mdiss_01 = matching_dissim(np.array([X[0]]), np.array([X[1]]))[0]
        mdiss_11 = matching_dissim(np.array([X[1]]), np.array([X[1]]))[0]

        assert_array_equal(np.array([mdiss_00, mdiss_01]), ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([mdiss_01, mdiss_11]), ng_dissim(centroids, X[1], X=X, membship=membship))

        # Unit test for NaN
        X = np.array([[np.NaN, 1, 2, 0, 1, 2], [0, 1, 2, 0, 1, 1]])
        centroids = X
        membship = np.array([[1, 0], [0, 1]])

        assert_array_equal(np.array([1., 2.]), ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([2., 0.]), ng_dissim(centroids, X[1], X=X, membship=membship))

        # Unit test for initialization with NaN(i.e., same as matching_dissim)
        membship = np.array([[0, 0], [0, 0]])
        mdiss_00 = matching_dissim(np.array([X[0]]), np.array([X[0]]))[0]
        mdiss_01 = matching_dissim(np.array([X[0]]), np.array([X[1]]))[0]
        mdiss_11 = matching_dissim(np.array([X[1]]), np.array([X[1]]))[0]

        assert_array_equal(np.array([mdiss_00, mdiss_01]), ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([mdiss_01, mdiss_11]), ng_dissim(centroids, X[1], X=X, membship=membship))

        X = np.array([['a', 'b', 'c', 'd'], ['a', 'b', 'e', 'd'], ['d', 'c', 'b', 'a']])
        centroids =  np.array([['a', 'b', 'c', 'd'], ['d', 'c', 'b', 'a']])
        membship = np.array([[1, 1, 0], [0, 0, 1]])

        assert_array_equal(np.array([0.5, 4.]), ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([1., 4.]), ng_dissim(centroids, X[1], X=X, membship=membship))
        assert_array_equal(np.array([4., 0.]), ng_dissim(centroids, X[2], X=X, membship=membship))

        # Unit test for initialization (i.e., same as matching_dissim)
        membship = np.array([[0, 0, 0], [0, 0, 0]])
        mdiss_00 = matching_dissim(np.array([X[0]]), np.array([X[0]]))[0]
        mdiss_01 = matching_dissim(np.array([X[0]]), np.array([X[1]]))[0]
        mdiss_11 = matching_dissim(np.array([X[1]]), np.array([X[1]]))[0]
        mdiss_02 = matching_dissim(np.array([X[0]]), np.array([X[2]]))[0]
        mdiss_12 = matching_dissim(np.array([X[0]]), np.array([X[2]]))[0]
        mdiss_22 = matching_dissim(np.array([X[2]]), np.array([X[2]]))[0]

        assert_array_equal(np.array([mdiss_00, mdiss_02]), ng_dissim(centroids, X[0], X=X, membship=membship))
        assert_array_equal(np.array([mdiss_01, mdiss_12]), ng_dissim(centroids, X[1], X=X, membship=membship))
        assert_array_equal(np.array([mdiss_12, mdiss_22]), ng_dissim(centroids, X[2], X=X, membship=membship))