def __init__(self, DATASET):
     self.DATA = DATASET
     self.Class1_train_Matrix = sf.get_Matrix(DATASET[0])
     self.Class2_train_Matrix = sf.get_Matrix(DATASET[1])
     self.Class3_train_Matrix = sf.get_Matrix(DATASET[2])
     for i in range(len(DATASET)):
         self.mew.append(sf.Mean(DATASET[i]))
 def plot_model(self):
     self.Class1_train_Matrix = sf.get_Matrix(self.DATA[0])
     self.Class2_train_Matrix = sf.get_Matrix(self.DATA[1])
     self.Class3_train_Matrix = sf.get_Matrix(self.DATA[2])
     sf.plot_fourth(self.class1, self.class2, self.class3, self.DATA,
                    self.Class1_train_Matrix, self.Class2_train_Matrix,
                    self.Class3_train_Matrix, self.mew)
 def __init__(self, DATASET, RANGE):
     self.DATA = DATASET
     self.RANGE = RANGE
     Class1_train_Matrix = sf.get_Matrix(DATASET[0])
     Class2_train_Matrix = sf.get_Matrix(DATASET[1])
     Class3_train_Matrix = sf.get_Matrix(DATASET[2])
     for i in range(len(DATASET)):
         self.mew.append(sf.Mean(DATASET[i]))
     for i in range(2):
         for j in range(2):
             self.Matrix[i][j] = Class1_train_Matrix[i][
                 j] + Class2_train_Matrix[i][j] + Class3_train_Matrix[i][j]
     for i in range(2):
         for j in range(2):
             self.Matrix[i][j] = self.Matrix[i][j] / 3
Example #4
0
	def __init__(self, DATASET,RANGE):
		self.DATA=DATASET
		self.RANGE=RANGE
		Class1_train_Matrix=sf.get_Matrix(DATASET[0])
		print(Class1_train_Matrix)
		Class2_train_Matrix=sf.get_Matrix(DATASET[1])
		Class3_train_Matrix=sf.get_Matrix(DATASET[2])
		self.mew.append(sf.Mean(DATASET[0]))
		self.mew.append(sf.Mean(DATASET[1]))
		self.mew.append(sf.Mean(DATASET[2]))
		for i in range(2):
			for j in range(2):
				self.Matrix[i][j]=Class1_train_Matrix[i][j]+Class2_train_Matrix[i][j]+Class3_train_Matrix[i][j]
		for i in range(2):
			for j in range(2):
				self.Matrix[i][j]=self.Matrix[i][j]/3
		temp=(self.Matrix[0][0]+self.Matrix[1][1])/2
		self.Matrix[0][0]=temp
		self.var=temp
		self.Matrix[1][1]=temp
		self.Matrix[0][1]=0
		self.Matrix[1][0]=0
 def get_ConfMatrix(self, TESTSET):
     CONF = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
     self.Class1_test_Matrix = sf.get_Matrix(TESTSET[0])
     self.Class2_test_Matrix = sf.get_Matrix(TESTSET[1])
     self.Class3_test_Matrix = sf.get_Matrix(TESTSET[2])
     self.mew = []
     for i in range(len(TESTSET)):
         self.mew.append(sf.Mean(TESTSET[i]))
     # print (self.Class1_test_Matrix,self.Class2_test_Matrix)
     inv_class1 = sf.get_Inverse(self.Class1_test_Matrix)
     inv_class2 = sf.get_Inverse(self.Class2_test_Matrix)
     inv_class3 = sf.get_Inverse(self.Class3_test_Matrix)
     temp1 = sf.get_Matrix(TESTSET[0])
     temp2 = sf.get_Matrix(TESTSET[1])
     temp3 = sf.get_Matrix(TESTSET[2])
     # print (temp1,temp2)
     for i in range(len(TESTSET)):
         for j in range(len(TESTSET[i])):
             temp = [0, 0, 0]
             val1 = self.getGx(TESTSET[i][j][0], TESTSET[i][j][1],
                               inv_class1, self.mew[0], temp1,
                               len(TESTSET[0]))
             val2 = self.getGx(TESTSET[i][j][0], TESTSET[i][j][1],
                               inv_class2, self.mew[1], temp2,
                               len(TESTSET[1]))
             val3 = self.getGx(TESTSET[i][j][0], TESTSET[i][j][1],
                               inv_class3, self.mew[2], temp3,
                               len(TESTSET[2]))
             if (max(val1, val2, val3) == val1): CONF[i][0] = CONF[i][0] + 1
             elif (max(val1, val2, val3) == val2):
                 CONF[i][1] = CONF[i][1] + 1
             else:
                 CONF[i][2] = CONF[i][2] + 1
     for i in range(3):
         for j in range(3):
             print(CONF[i][j], end=" ")
         print("")
     sf.get_Score(CONF)
    def get_pair(self, data_id, DATASET):
        step = 1
        left_margin, right_margin, top_margin, bottom_margin = 0, 0, 0, 0
        if (data_id == 1):
            step = 0.2
            left_margin, right_margin, top_margin, bottom_margin = -10, 25, -15, 20
        elif (data_id == 2):
            step = 0.05
            left_margin, right_margin, top_margin, bottom_margin = -3, 3, -3, 3
        elif (data_id == 3):
            step = 20
            left_margin, right_margin, top_margin, bottom_margin = -500, 2100, 0, 3000

        self.Class1_train_Matrix = sf.get_Matrix(DATASET[0])
        self.Class2_train_Matrix = sf.get_Matrix(DATASET[1])
        self.Class3_train_Matrix = sf.get_Matrix(DATASET[2])

        inv_class1 = sf.get_Inverse(self.Class1_train_Matrix)
        inv_class2 = sf.get_Inverse(self.Class2_train_Matrix)
        inv_class3 = sf.get_Inverse(self.Class3_train_Matrix)

        temp1 = sf.get_Matrix(DATASET[0])
        temp2 = sf.get_Matrix(DATASET[1])
        temp3 = sf.get_Matrix(DATASET[2])

        classA, classB = [], []
        i = left_margin
        while (i < right_margin + 1):
            j = top_margin
            while (j < bottom_margin + 1):
                val1 = self.getGx(i, j, inv_class1, self.mew[0],
                                  self.Class1_train_Matrix, len(self.DATA[0]))
                val2 = self.getGx(i, j, inv_class2, self.mew[1],
                                  self.Class2_train_Matrix, len(self.DATA[1]))
                if (val1 > val2): classA.append([i, j])
                else: classB.append([i, j])
                j += step
            i += step
        # sf.plot_fourth_pair(classA, classB,1,2,self.DATA,self.Class1_train_Matrix,self.Class2_train_Matrix,self.mew)
        sf.plot_fourth_pair(classA, classB, 1, 2, self.DATA, temp1, temp2,
                            self.mew)

        classB, classC = [], []
        i = left_margin
        while (i < right_margin + 1):
            j = top_margin
            while (j < bottom_margin + 1):
                val2 = self.getGx(i, j, inv_class2, self.mew[1],
                                  self.Class2_train_Matrix, len(self.DATA[1]))
                val3 = self.getGx(i, j, inv_class3, self.mew[2],
                                  self.Class3_train_Matrix, len(self.DATA[2]))
                if (val3 > val2): classC.append([i, j])
                else: classB.append([i, j])

                j += step
            i += step
        sf.plot_fourth_pair(classB, classC, 2, 3, self.DATA, temp2, temp3,
                            self.mew)

        classA, classC = [], []
        i = left_margin
        while (i < right_margin + 1):
            j = top_margin
            while (j < bottom_margin + 1):
                val1 = self.getGx(i, j, inv_class1, self.mew[0],
                                  self.Class1_train_Matrix, len(self.DATA[0]))
                val3 = self.getGx(i, j, inv_class3, self.mew[2],
                                  self.Class3_train_Matrix, len(self.DATA[2]))
                if (val3 > val1): classC.append([i, j])
                else: classA.append([i, j])

                j += step
            i += step
        sf.plot_fourth_pair(classA, classC, 1, 3, self.DATA, temp1, temp3,
                            self.mew)
        return
    def get_ConfMatrix_pair(self, TESTSET):
        CONF = [[0, 0], [0, 0]]
        temp1 = sf.get_Matrix(TESTSET[0])
        temp2 = sf.get_Matrix(TESTSET[1])
        temp3 = sf.get_Matrix(TESTSET[2])
        self.mew = []
        for i in range(len(TESTSET)):
            self.mew.append(sf.Mean(TESTSET[i]))
        inv_class1 = sf.get_Inverse(temp1)
        inv_class2 = sf.get_Inverse(temp2)
        inv_class3 = sf.get_Inverse(temp3)
        self.Class1_test_Matrix = sf.get_Matrix(TESTSET[0])
        self.Class2_test_Matrix = sf.get_Matrix(TESTSET[1])
        self.Class3_test_Matrix = sf.get_Matrix(TESTSET[2])
        # for i in range(len(TESTSET)):
        case = [0, 1]
        for i in case:
            for j in range(len(TESTSET[i])):
                temp = [0, 0, 0]
                val1 = self.getGx(TESTSET[i][j][0], TESTSET[i][j][1],
                                  inv_class1, self.mew[0],
                                  self.Class1_test_Matrix, len(TESTSET[0]))
                val2 = self.getGx(TESTSET[i][j][0], TESTSET[i][j][1],
                                  inv_class2, self.mew[1],
                                  self.Class2_test_Matrix, len(TESTSET[1]))
                if (val1 > val2): CONF[i][0] = CONF[i][0] + 1
                else: CONF[i][1] = CONF[i][1] + 1
        print("Confusion Matrix for class 1 & 2")
        for i in range(2):
            for j in range(2):
                print(CONF[i][j], end=" ")
            print("")
        sf.get_Score(CONF)

        CONF = [[0, 0], [0, 0]]

        case = [1, 2]
        for i in case:
            for j in range(len(TESTSET[i])):
                temp = [0, 0, 0]
                val2 = self.getGx(TESTSET[i][j][0], TESTSET[i][j][1],
                                  inv_class2, self.mew[1],
                                  self.Class2_test_Matrix, len(TESTSET[1]))
                val3 = self.getGx(TESTSET[i][j][0], TESTSET[i][j][1],
                                  inv_class3, self.mew[2],
                                  self.Class3_test_Matrix, len(TESTSET[2]))
                if (val2 > val3): CONF[i - 1][0] = CONF[i - 1][0] + 1
                else: CONF[i - 1][1] = CONF[i - 1][1] + 1
        print("Confusion Matrix for class 2 & 3")
        for i in range(2):
            for j in range(2):
                print(CONF[i][j], end=" ")
            print("")
        sf.get_Score(CONF)

        CONF = [[0, 0], [0, 0]]

        case = [0, 2]
        for i in case:
            for j in range(len(TESTSET[i])):
                temp = [0, 0, 0]
                val1 = self.getGx(TESTSET[i][j][0], TESTSET[i][j][1],
                                  inv_class1, self.mew[0],
                                  self.Class1_test_Matrix, len(TESTSET[0]))
                val3 = self.getGx(TESTSET[i][j][0], TESTSET[i][j][1],
                                  inv_class3, self.mew[2],
                                  self.Class3_test_Matrix, len(TESTSET[2]))
                k = 0
                if (i == 2): k = 1
                if (val1 > val3): CONF[k][0] = CONF[k][0] + 1
                else: CONF[k][1] = CONF[k][1] + 1
        print("Confusion Matrix for class 2 & 3")
        for i in range(2):
            for j in range(2):
                print(CONF[i][j], end=" ")
            print("")
        sf.get_Score(CONF)