def plot_model(self, val):
     sf.plot_gx(self.g_x, self.RANGE, val)
     sf.plot(self.DATA[0], 'mo', "", True, self.mew[0], self.Matrix)
     sf.plot(self.DATA[1], 'yo', "", True, self.mew[1], self.Matrix)
     sf.plot(self.DATA[2], 'co', "", True, self.mew[2], self.Matrix)
     sf.plot([sf.Mean(self.DATA[0])], 'ko')
     sf.plot([sf.Mean(self.DATA[1])], 'ko')
     sf.plot([sf.Mean(self.DATA[2])], 'ko')
     plt.legend()
     plt.show()
 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]))
Exemple #3
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 __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
 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_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)