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]))
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)