Пример #1
0
        public void test_binarisation_in_instances_builder()
        {
            TestingRow[] rows = new[] {
                new TestingRow {
                    CLASS = 1, ATT_1 = 111, ATT_2 = 222, ATT_3 = 333, ATT_4 = 444, ATT_5 = 555, ATT_6 = 666, ATT_7 = 777, ATT_8 = 888
                },
                new TestingRow {
                    CLASS = 0, ATT_1 = 1112, ATT_2 = 2222, ATT_3 = 3332, ATT_4 = 4442, ATT_5 = 5552, ATT_6 = 6662, ATT_7 = 7772, ATT_8 = 8882
                }
            };
            weka.core.Instances instances = new InstancesBuilder <TestingRow>(rows, 0).Build();

            Assert.AreEqual(25, instances.numAttributes());

            weka.core.Instance i1 = instances.instance(0);
            weka.core.Instance i2 = instances.instance(1);

            // These are the standard properties
            Assert.AreEqual(1.0, i1.value(0)); Assert.AreEqual(1.0, i1.classValue());
            Assert.AreEqual(0.0, i2.value(0)); Assert.AreEqual(0.0, i2.classValue());
            Assert.AreEqual(0.0, i1.value(1)); Assert.AreEqual("111", i1.stringValue(1));
            Assert.AreEqual(1.0, i2.value(1)); Assert.AreEqual("1112", i2.stringValue(1));
            Assert.AreEqual(0.0, i1.value(2)); Assert.AreEqual("222", i1.stringValue(2));
            Assert.AreEqual(1.0, i2.value(2)); Assert.AreEqual("2222", i2.stringValue(2));
            Assert.AreEqual(0.0, i1.value(3)); Assert.AreEqual("333", i1.stringValue(3));
            Assert.AreEqual(1.0, i2.value(3)); Assert.AreEqual("3332", i2.stringValue(3));
            Assert.AreEqual(0.0, i1.value(4)); Assert.AreEqual("444", i1.stringValue(4));
            Assert.AreEqual(1.0, i2.value(4)); Assert.AreEqual("4442", i2.stringValue(4));
            Assert.AreEqual(0.0, i1.value(5)); Assert.AreEqual("555", i1.stringValue(5));
            Assert.AreEqual(1.0, i2.value(5)); Assert.AreEqual("5552", i2.stringValue(5));
            Assert.AreEqual(0.0, i1.value(6)); Assert.AreEqual("666", i1.stringValue(6));
            Assert.AreEqual(1.0, i2.value(6)); Assert.AreEqual("6662", i2.stringValue(6));
            Assert.AreEqual(0.0, i1.value(7)); Assert.AreEqual("777", i1.stringValue(7));
            Assert.AreEqual(1.0, i2.value(7)); Assert.AreEqual("7772", i2.stringValue(7));
            Assert.AreEqual(0.0, i1.value(8)); Assert.AreEqual("888", i1.stringValue(8));
            Assert.AreEqual(1.0, i2.value(8)); Assert.AreEqual("8882", i2.stringValue(8));

            // These are the new binarized
            for (int i = 9; i < 25; i += 2)
            {
                Assert.AreEqual(1.0, i1.value(i)); Assert.AreEqual(0.0, i2.value(i));
                Assert.AreEqual(0.0, i1.value(i + 1)); Assert.AreEqual(1.0, i2.value(i + 1));
            }
        }