from matplotlib import cm import numpy as np from MachineLearn.Classes import Experiment, DataSet, Data from T3.Perceptron import Layered_perceptron import matplotlib.pyplot as plt COLOR = cm.rainbow(np.linspace(0, 1, 5)) learning_rate = 0.01 epochs = 5000 oExp = Experiment() oDataSet = DataSet() base = np.loadtxt("Datasets/column_3C.dat", usecols=range(6), delimiter=" ") classes = np.loadtxt("Datasets/column_3C.dat", dtype=object, usecols=-1, delimiter=" ") for x, y in enumerate(base): oDataSet.add_sample_of_attribute(np.array(list(np.float32(y)) + [classes[x]])) oDataSet.attributes = oDataSet.attributes.astype(float) # oDataSet.normalize_data_set() for j in range(20): print(j) oData = Data(len(oDataSet.labelsNames), 31, samples=50) oData.random_training_test_by_percent([60, 150, 100], 0.8) perc = Layered_perceptron(learning_rate, len(oDataSet.labelsNames)) perc.train(oDataSet.attributes[oData.Training_indexes], oDataSet.labels[oData.Training_indexes], epochs) oData.model = perc oData.confusion_matrix = np.zeros((len(oDataSet.labelsNames), len(oDataSet.labelsNames))) for i in oData.Testing_indexes: data = np.matrix(np.hstack(([-1], oDataSet.attributes[i]))).T
from sklearn.preprocessing import LabelBinarizer import matplotlib.pyplot as plt from T6_2.kmeans_initializer import InitCentersKMeans COLOR = cm.rainbow(np.linspace(0, 1, 5)) LEARNING_RATE = 0.1 epochs = 300 K_FOLD = 3 GRID_NEURON = [20, 15, 10, 5] GRID_B = [.25, .5, .75, 1] _OPTIMIZER = RMSprop(learning_rate=LEARNING_RATE) oExp = Experiment() oDataSet = DataSet() base = np.loadtxt("Datasets/artifitial1.data", usecols=range(1), delimiter=",") classes = np.loadtxt("Datasets/artifitial1.data", usecols=-1, delimiter=",") for x, y in enumerate(base): oDataSet.add_sample_of_attribute( np.array(list([np.float32(y)]) + [classes[x]])) oDataSet.attributes = oDataSet.attributes.astype(float) oDataSet.normalize_data_set() oDataSet.labels = np.array([classes]).T for j in range(10): slices = KFold(n_splits=K_FOLD, shuffle=True) oData = Data(1, 31, samples=50) indices = np.arange(oDataSet.attributes.shape[0]) np.random.shuffle(indices)