def test_liner_training_data(self): x_range = [0, 15] y_range = [0, 15] liner_training_data = get_training_data.liner_training_data(x_range, y_range) self.assertEquals(liner_training_data[(3, 0)], 0) self.assertEquals(liner_training_data[(3, 6)], 1) self.assertEquals(liner_training_data[(6, 10)], 0) self.assertEquals(liner_training_data[(6, 15)], 1)
def simple_perceptron(): # simple perceptron sp = SimplePerceptron( input_neuron_num = 2, output_neuron_num = 1, threshold = 1.0, learning_coefficient = 0.5, output_function_type = 1) # train data x_range = [0,30] y_range = [0,30] liner_data = TrainingData.liner_training_data(x_range, y_range) train_data = TrainingData.change_format(liner_data) # 教師データのプロット fig = plt.figure() scat(fig, [key for key, value in liner_data.items() if value == 0], color='g' ) scat(fig, [key for key, value in liner_data.items() if value == 1], color='b' ) # 学習前分離線 data = get_predict_list(x_range,y_range, sp) plot(fig, data) # 学習 sample_border = len(train_data) / 3 random.shuffle(train_data) for i in range(100): sp.train(train_data[:sample_border]) # 学習後分離線 data = get_predict_list(x_range,y_range, sp) plot(fig, data) plt.show()
def test_change_format(self): x_range = [0, 1] y_range = [0, 1] liner_data = get_training_data.liner_training_data(x_range,y_range) train_data = get_training_data.change_format(liner_data) self.assertEquals(train_data, [[[0,1],[1]], [[1,0],[1]], [[0,0],[1]], [[1,1],[1]]])