Untitled
unknown
plain_text
8 months ago
1.1 kB
0
Indexable
Never
import numpy as np class Perceptron: def __init__(self, input_size, learning_rate=0.1): self.weights = np.zeros(input_size + 1) self.learning_rate = learning_rate def predict(self, inputs): summation = np.dot(inputs, self.weights[1:]) + self.weights[0] return 1 if summation > 0 else 0 def train(self, training_inputs, labels, epochs): for _ in range(epochs): for inputs, label in zip(training_inputs, labels): prediction = self.predict(inputs) self.weights[1:] += self.learning_rate * (label - prediction) * inputs self.weights[0] += self.learning_rate * (label - prediction) # Example usage: if __name__ == "__main__": training_inputs = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) labels = np.array([0, 0, 0, 1]) perceptron = Perceptron(2) perceptron.train(training_inputs, labels, epochs=100) test_inputs = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) for inputs in test_inputs: print(f"Input: {inputs}, Predicted Output: {perceptron.predict(inputs)}")
Leave a Comment