# Split training data train, test, train_lab, test_lab = train_test_split(Y, emnist.labels, stratify=emnist.labels, test_size=0.3, random_state=random_state) #D = {"T":0, "t":1, "N":2, "n":3} D = {'a': 0, 'b': 1, 'Cc': 2, 'd': 3, 'e': 4, 'A': 5, 'B': 6, 'D': 7, 'E': 8} model = bs.BayesSoftMaxClassifier(train, np.array([D[i] for i in train_lab]), numClasses=9, numSim=10000, burnIn=5000, candVar=.008, paramVar=.06) model.SamplePosterior() # Evaluation model.Predict(test) err = np.mean(model.predictions != np.array([D[i] for i in test_lab])) bal = balanced_accuracy_score(np.array([D[i] for i in test_lab]), model.predictions) print("Error in BayesSoftmax: " + str(err)) model.PlotParamTrace(-1) model.PlotParamDist(0) model.PlotPredictiveDistribution(0)