public void TestLabelBinarizerSetLabelEncoding()
        {
            var lb = new LabelBinarizer<int>(negLabel: -2, posLabel: 2);

            // two-class case
            var inp = new[] {0, 1, 1, 0};
            var expected = new double[,] {{-2, 2, 2, -2}}.ToDenseMatrix().Transpose();
            var got = lb.Fit(inp).Transform(inp);
            Assert.AreEqual(expected, got);
            Assert.IsTrue(lb.InverseTransform(got).SequenceEqual(inp));

            // multi-class case
            inp = new[] {3, 2, 1, 2, 0};
            expected = new double[,]
                           {
                               {-2, -2, -2, +2},
                               {-2, -2, +2, -2},
                               {-2, +2, -2, -2},
                               {-2, -2, +2, -2},
                               {+2, -2, -2, -2}
                           }.ToDenseMatrix();

            got = lb.Fit(inp).Transform(inp);
            Assert.AreEqual(expected, got);
            Assert.IsTrue(lb.InverseTransform(got).SequenceEqual(inp));
        }
        public void TestLabelBinarizerSetLabelEncoding()
        {
            var lb = new LabelBinarizer <int>(negLabel: -2, posLabel: 2);

            // two-class case
            var inp = new[] { 0, 1, 1, 0 };
            var expected = new double[, ] {
                { -2, 2, 2, -2 }
            }.ToDenseMatrix().Transpose();
            var got = lb.Fit(inp).Transform(inp);

            Assert.AreEqual(expected, got);
            Assert.IsTrue(lb.InverseTransform(got).SequenceEqual(inp));

            // multi-class case
            inp      = new[] { 3, 2, 1, 2, 0 };
            expected = new double[, ]
            {
                { -2, -2, -2, +2 },
                { -2, -2, +2, -2 },
                { -2, +2, -2, -2 },
                { -2, -2, +2, -2 },
                { +2, -2, -2, -2 }
            }.ToDenseMatrix();

            got = lb.Fit(inp).Transform(inp);
            Assert.AreEqual(expected, got);
            Assert.IsTrue(lb.InverseTransform(got).SequenceEqual(inp));
        }
        public void TestLabelBinarizer()
        {
            var lb = new LabelBinarizer<string>();

            // two-class case
            var inp = new[] {"neg", "pos", "pos", "neg"};
            var expected = new double[,] {{0, 1, 1, 0}}.ToDenseMatrix().Transpose();
            var got = lb.Fit(inp).Transform(inp);
            Assert.AreEqual(expected, got);
            Assert.IsTrue(lb.InverseTransform(got).SequenceEqual(inp));

            // multi-class case
            inp = new[] {"spam", "ham", "eggs", "ham", "0"};
            expected = new double[,]
                           {
                               {0, 0, 0, 1},
                               {0, 0, 1, 0},
                               {0, 1, 0, 0},
                               {0, 0, 1, 0},
                               {1, 0, 0, 0}
                           }.ToDenseMatrix();

            got = lb.Fit(inp).Transform(inp);
            Assert.AreEqual(expected, got);
            Assert.IsTrue(lb.InverseTransform(got).SequenceEqual(inp));
        }
        public void TestLabelBinarizer()
        {
            var lb = new LabelBinarizer <string>();

            // two-class case
            var inp = new[] { "neg", "pos", "pos", "neg" };
            var expected = new double[, ] {
                { 0, 1, 1, 0 }
            }.ToDenseMatrix().Transpose();
            var got = lb.Fit(inp).Transform(inp);

            Assert.AreEqual(expected, got);
            Assert.IsTrue(lb.InverseTransform(got).SequenceEqual(inp));

            // multi-class case
            inp      = new[] { "spam", "ham", "eggs", "ham", "0" };
            expected = new double[, ]
            {
                { 0, 0, 0, 1 },
                { 0, 0, 1, 0 },
                { 0, 1, 0, 0 },
                { 0, 0, 1, 0 },
                { 1, 0, 0, 0 }
            }.ToDenseMatrix();

            got = lb.Fit(inp).Transform(inp);
            Assert.AreEqual(expected, got);
            Assert.IsTrue(lb.InverseTransform(got).SequenceEqual(inp));
        }